多 Agent 系统
多 Agent 系统会将一项任务分配给多个 Agent,而不是让一个 Agent 包办所有工作。在 Mastra 中,这通常意味着组合多个 Agent、Workflow,或同时使用两者,让系统的每个部分都有明确的职责。
其目标是为合适的组件分配合适的上下文、Tool 和职责。当这种拆分足够清晰时,相比让一个 Agent 承担冗长的提示词以及过多的 Tool 或职责,多 Agent 系统通常更容易理解和分析。
何时使用多 Agent 系统何时使用多 Agent 系统的直接链接
当单个 Agent 已经无法成为合适的工作边界时,请使用多 Agent 系统。
以下情况通常适合使用:
- 任务跨越不同类型的工作,例如研究、规划、写作或审查。
- 单个 Agent 需要过多上下文或 Tool。
- 任务的不同部分应该并行运行。
- 不同阶段需要不同的提示词、模型或防护措施。
- 你希望在路由、执行和综合之间建立清晰边界。
在可行的情况下,请从一个 Agent 开始。只有当新增结构能明显改善质量、速度或可靠性时,再增加更多 Agent。
当系统需要一种清晰方式,在多个组件之间划分上下文、决策和职责时,多 Agent 模式会很有用。在实践中,关键的设计问题是:随着任务推进,哪个组件始终掌握控制权。
HandoffHandoff的直接链接
Handoff 模式会把控制权从一个 Agent 转交给另一个 Agent。与 Supervisor 模式不同,第一个 Agent 不会在整个任务期间一直负责。相反,当前活跃的专业 Agent 会接手交互的下一部分。
当下一个专业 Agent 应直接继续交互,而不是通过中央协调者汇报时,请使用 Handoff。其代价是上下文管理会变得更加重要,因为系统必须决定下一个 Agent 继承哪些内容,以及哪些内容仍受原有范围限制。
在 Mastra 中,可以组合 Agent、Workflow 和 Memory 来实现此模式。Workflow 可以为任务进行路由,但这一模式的核心特征是职责会移交给下一个 Agent。
WorkflowWorkflow的直接链接
Workflow 模式会在代码中定义执行路径。你不必让 Agent 决定下一步做什么,而是通过步骤、分支、循环和并行区块来定义执行顺序。
当任务已经得到充分理解、执行路径也可以预先确定时,请使用 Workflow。它的主要优势是可预测性:明确的结构让系统更容易调试和审计。其代价是灵活性,因为当任务在执行过程中发生变化时,Workflow 的适应能力较弱。
在 Mastra 中,Workflow 可以实现 Handoff 和 Council 等协调模式。Workflow 的独特之处在于,无论它调用哪些 Agent,控制逻辑都位于 Workflow 本身。
SupervisorSupervisor的直接链接
Supervisor 模式会让一个主 Agent 在整个任务期间始终掌握控制权。Supervisor 决定何时委派、调用哪个专业 Agent、传递哪些上下文,以及如何组合结果。
当任务是开放式的、无法预先确定完整执行顺序时,请使用此模式。例如,研究任务可能需要根据前面步骤发现的内容,探索不同的研究方向。Supervisor 可以随着任务推进进行调整。 其代价是 Supervisor 会成为主要的协调中心。这让模式具备灵活性,但也意味着结果高度依赖良好的委派行为,以及清晰的子 Agent 边界。
在 Mastra 中,此模式直接对应 Supervisor Agent。Supervisor Agent 通过 agents 属性定义子 Agent,并使用 stream() 或 generate() 协调它们。Mastra 还提供委派钩子、消息过滤和 Memory 隔离,帮助控制此模式。
请按照 Supervisor Agent 教程中的步骤进行操作。
CouncilCouncil的直接链接
Council 模式会让多个 Agent 独立处理同一个问题,然后比较或综合它们的输出,形成一个最终答案。Supervisor 会把问题拆分成多个部分,而 Council 则让所有 Agent 共同处理同一问题,并为同一个问题引入多个视角。
当问题存在歧义、需要评估或风险较高,并且回答质量比速度更重要时,请使用此模式。其代价是成本,因为 Council 会有意重复工作,通常比其他模式耗时更长、使用更多 token。
Mastra 没有提供专用的 Council 原语。在 Mastra 中,可以使用 Agent 和 Workflow 实现此模式:并行运行多个 Agent 并收集它们的输出,然后添加最终的综合或审查步骤。.parallel() 等 Workflow 控制流方法可以为此模式提供结构。
选择模式选择模式的直接链接
这些模式的主要区别在于如何分配控制权:
| 模式 | 谁掌握控制权 | 适用场景 | 代价 | Mastra 实现方式 |
|---|---|---|---|---|
| Handoff | 当前专业 Agent | 职责应在专业 Agent 之间转移 | 上下文传递变得更加重要 | 结合 Workflow 和 Memory 的 Agent |
| Workflow | 执行图 | 路径可以预先确定 | 任务变化时适应能力较弱 | Workflow |
| Supervisor Agent | 一个主 Agent | 委派必须在执行期间动态调整 | 结果依赖良好的协调和清晰边界 | Supervisor Agent |
| Council | 最终综合步骤 | 任务需要多个独立视角 | 成本和延迟更高 | 具备 Workflow 并行能力的 Agent |
在实践中,通常会组合使用这些模式:
- 一个 Workflow 可以包含一个或多个由 Supervisor 驱动的步骤。
- Handoff 流程可以从一个路由 Workflow 开始。
- Council 可以在 Workflow 内运行,并将结果传入最终审批步骤。
- Supervisor 可以把具有固定内部结构的任务委派给 Workflow。
请根据协调问题选择模式,而不是根据任务标签来选择。