应用技术栈#

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模式中称为_反射_的一个案例,其中生成结果通过另一轮生成进行评审, 以提高整体质量。