Agent 的身份和生命周期#

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

Agent ID#

Agent ID 唯一标识 agent 运行时中的 agent 实例——包括分布式运行时。它是 agent 实例接收消息的“地址”。它有两个组成部分:agent 类型和 agent 密钥。

注意

Agent ID = (Agent 类型, Agent 密钥)

agent 类型不是 agent 类。它将 agent 与特定的工厂函数关联起来,该工厂函数生成相同 agent 类型的 agent 实例。例如,不同的工厂函数可以生成相同的 agent 类,但构造函数参数不同。agent 密钥是给定 agent 类型的实例标识符。Agent ID 可以相互转换为字符串。此字符串的格式为

注意

Agent_Type/Agent_Key

如果类型和密钥只包含字母数字(a-z)和(0-9)或下划线(_),则它们被视为有效。有效的标识符不能以数字开头或包含任何空格。

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

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

Agent 生命周期#

当运行时根据 agent ID 将消息传递给 agent 实例时,它会获取实例,如果实例不存在则创建它。

Agent Lifecycle

运行时还负责“调入”或“调出”agent 实例,以节省资源并平衡多台机器上的负载。这尚未实现。