应用技术栈#
AutoGen core 被设计为一个无预设倾向的框架,可用于构建多种多样的多Agent应用。它不与任何特定的Agent抽象或多Agent模式绑定。
下图展示了应用技术栈的组成:
技术栈的底层是基础消息传递和路由设施,这些设施使得Agents能够相互通信。这些功能由Agent运行时管理,对于大多数应用而言,开发者只需与运行时提供的高级API交互即可(参见Agent与Agent运行时)。
在技术栈的顶层,开发者需要定义Agents之间交换的消息类型。这组消息类型构成了Agents必须遵守的行为契约,而契约的实现决定了Agents如何处理消息。行为契约有时也被称为消息协议。实现行为契约是开发者的责任。多Agent模式正是从这些行为契约中涌现出来的(参见多Agent设计模式)。
示例应用#
考虑一个用于代码生成的多Agent应用的具体示例。该应用由三个Agent组成: 编码器Agent(Coder Agent)、执行器Agent(Executor Agent)和评审器Agent(Reviewer Agent)。 下图展示了Agent之间的数据流以及它们交换的消息类型。
在本示例中,行为契约包含以下内容:
从应用程序发送给编码器Agent的
CodingTaskMsg
消息从编码器Agent发送给执行器Agent的
CodeGenMsg
从执行器Agent发送给评审器Agent的
ExecutionResultMsg
从评审器Agent发送给编码器Agent的
ReviewMsg
从评审器Agent发送给应用程序的
CodingResultMsg
行为契约通过Agent对这些消息的处理来实现。例如,评审器Agent监听 ExecutionResultMsg
,
评估代码执行结果以决定是否批准或拒绝。如果批准,则向应用程序发送 CodingResultMsg
;
否则,向编码器Agent发送 ReviewMsg
以进行新一轮的代码生成。
这种行为契约是多Agent模式中称为_反射_的一个案例,其中生成结果通过另一轮生成进行评审, 以提高整体质量。