Agent身份标识与生命周期#

Agent运行时负责管理agents的身份标识和生命周期。应用程序并不直接创建agents,而是通过注册agent类型及其对应的工厂函数来生成agent实例。本节将解释运行时如何标识和创建agents。

Agent ID#

Agent ID在agent运行时(包括分布式运行时)内唯一标识一个agent实例,是agent实例接收消息的"地址"。它由两个组成部分构成:agent类型和agent键。

备注

Agent ID = (Agent类型, Agent键)

Agent类型并非agent类,而是将agent与特定的工厂函数相关联,该工厂函数用于生成相同agent类型的实例。例如,不同的工厂函数可以生成相同的agent类但使用不同的构造参数。Agent键则是给定agent类型的实例标识符。

Agent ID可与字符串相互转换,其字符串格式为:

备注

Agent类型/Agent键

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

在多agent应用程序中,agent类型通常由应用程序直接定义(即在应用代码中定义),而agent键则通常根据传递给agents的消息生成(即由应用数据定义)。

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

Agent 生命周期#

当运行时(runtime)根据ID向某个agent实例传递消息时,它会先获取该实例,如果实例不存在则创建新实例。

Agent生命周期

运行时还负责对agent实例进行"换入"或"换出"操作,以节省资源并在多台机器间平衡负载。该功能目前尚未实现。