应用堆栈#

AutoGen 核心设计为一个无偏见的框架,可用于构建各种多代理应用程序。它不绑定任何特定的代理抽象或多代理模式。

下图展示了应用堆栈。

Application Stack

堆栈的底部是基础的消息传递和路由设施,这些设施使得代理能够相互通信。这些设施由代理运行时管理,对于大多数应用程序,开发者只需与运行时提供的高级API进行交互(参见代理和代理运行时)。

在技术栈的顶层,开发者需要定义代理之间交换的消息类型。这组消息类型形成了代理必须遵守的行为契约,而契约的实现决定了代理如何处理消息。行为契约有时也被称为消息协议。实现行为契约是开发者的责任。多代理模式从这些行为契约中涌现出来(参见多代理设计模式)。

示例应用程序#

考虑一个用于代码生成的多代理应用的具体例子。该应用由三个代理组成:编码代理、执行代理和评审代理。下图展示了代理之间的数据流以及它们之间交换的消息类型。

Code Generation Example

在这个例子中,行为合同包括以下内容:

  • CodingTaskMsg 从应用程序发送到Coder Agent的消息

  • CodeGenMsg 从Coder Agent发送到Executor Agent

  • ExecutionResultMsg 从 Executor Agent 到 Reviewer Agent

  • ReviewMsg 从 Reviewer Agent 到 Coder Agent

  • CodingResultMsg从评审员代理到应用程序

行为契约通过代理处理这些消息来实现。例如,Reviewer Agent监听着ExecutionResultMsg 并评估代码执行结果以决定是否批准或拒绝, 如果批准,它会发送一个CodingResultMsg到应用程序, 否则,它会发送一个ReviewMsg到Coder Agent以进行另一轮 代码生成。

这种行为合约是多代理模式中的一个案例,称为反思,其中生成结果通过另一轮生成进行审查,以提高整体质量。