代理身份和生命周期#

代理运行时管理代理的身份和生命周期。应用程序不直接创建代理,而是使用工厂函数为代理实例注册代理类型。在本节中,我们将解释运行时如何识别和创建代理。

Agent ID#

Agent ID 在代理运行时(包括分布式运行时)中唯一标识代理实例。它是代理实例接收消息的"地址"。它有两个组成部分:代理类型和代理密钥。

备注

Agent ID = (Agent Type, Agent Key)

代理类型不是代理类。它将代理与特定的工厂函数关联,该工厂函数生成相同代理类型的代理实例。例如,不同的工厂函数可以生成相同的代理类,但具有不同的构造函数参数。Agent Key是给定代理类型的实例标识符。

代理 ID 可以与字符串相互转换。字符串的格式是:

备注

Agent_Type/Agent_Key

Types和Keys只有在仅包含字母数字字符(a-z)和(0-9)或下划线(_)时才被视为有效。有效标识符不能以数字开头,也不能包含任何空格。

在多代理应用中,代理类型通常由应用程序直接定义,即它们在应用程序代码中定义。另一方面,代理密钥通常根据传递给代理的消息生成,即它们由应用程序数据定义。

例如,运行时已注册了代理类型 "code_reviewer",其工厂函数生成执行代码审查的代理实例。每个代码审查请求都有一个唯一的 ID review_request_id 来标记专用会话。在这种情况下,每个请求都可以由一个新实例处理,该实例的代理 ID 为 ("code_reviewer", review_request_id)

代理生命周期#

当运行时根据 ID 向代理实例传递消息时,它要么获取实例,要么在实例不存在时创建它。

Agent Lifecycle

运行时还负责"分页调入"或"调出"代理实例,以节省资源并在多台机器之间平衡负载。 这项功能尚未实现。