应用堆栈#
AutoGen 核心被设计为一个不带偏见的框架,可用于构建各种多 Agent 应用。它不与任何特定的 Agent 抽象或多 Agent 模式相关联。
下图显示了应用堆栈。
堆栈的底部是基础消息传递和路由设施,使 Agent 能够相互通信。 这些由 Agent 运行时管理,对于大多数应用,开发人员只需要与运行时提供的高级 API 交互(请参阅 Agent 和 Agent 运行时)。
在堆栈的顶部,开发人员需要定义 Agent 交换的消息类型。 这组消息类型形成 Agent 必须遵守的行为契约,并且契约的实现决定了 Agent 如何处理消息。 行为契约有时也称为消息协议。 实现行为契约是开发人员的责任。 多 Agent 模式从此类行为契约中产生(请参阅 多 Agent 设计模式)。
示例应用#
考虑一个用于代码生成的多 Agent 应用的具体示例。 该应用由三个 Agent 组成:Coder Agent、Executor Agent 和 Reviewer Agent。 下图显示了 Agent 之间的数据流以及它们之间交换的消息类型。
在此示例中,行为契约包含以下内容
从应用到 Coder Agent 的
CodingTaskMsg
消息从 Coder Agent 到 Executor Agent 的
CodeGenMsg
从 Executor Agent 到 Reviewer Agent 的
ExecutionResultMsg
从 Reviewer Agent 到 Coder Agent 的
ReviewMsg
从 Reviewer Agent 到应用的
CodingResultMsg
行为契约由 Agent 对这些消息的处理来实现。 例如,Reviewer Agent 侦听 ExecutionResultMsg
并评估代码执行结果以决定是批准还是拒绝,如果获得批准,它会将 CodingResultMsg
发送到应用,否则,它会将 ReviewMsg
发送到 Coder Agent 以进行另一轮代码生成。
此行为契约是称为 *反思* 的多 Agent 模式的一个案例,其中生成结果通过另一轮生成进行审查,以提高整体质量。