应用程序栈#

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

下图显示了应用程序栈。

Application Stack

在栈的底层是基础消息传递和路由设施,使代理能够相互通信。这些由代理运行时管理,对于大多数应用程序来说,开发人员只需要与运行时提供的高级 API 交互。 (见 Agent and Agent Runtime).

在栈的顶层,开发人员需要定义代理交换的消息类型。这组消息类型形成了代理必须遵守的行为契约,而契约的实现决定了代理如何处理消息。行为契约有时也被称为消息协议。实现行为契约是开发人员的责任。多代理模式从这些行为契约中产生。 (见 Multi-Agent Design Patterns).

示例应用#

让我们考虑一个用于代码生成的多代理应用程序的具体示例。该应用程序由三个代理组成: 编码代理(Coder Agent)、执行代理(Executor Agent)和审查代理(Reviewer Agent)。 下图显示了代理之间的数据流和它们之间交换的消息类型。

Code Generation Example

在这个例子中,行为契约包含以下内容:

  • 从应用程序到编码代理的 CodingTaskMsg 消息

  • 从编码代理到执行代理的 CodeGenMsg

  • 从执行代理到审查代理的 ExecutionResultMsg

  • 从审查代理到编码代理的 ReviewMsg

  • 从审查代理到应用程序的 CodingResultMsg

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

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