多 Agent 系统(Multi-Agent System)

multi_agent_system2026-09-09 13:34:13

多 Agent 系统(Multi-Agent System)是由多个 Agent 通过分工、通信、协调或竞争共同运行的系统。每个 Agent 可以拥有自己的模型、指令、上下文、工具、状态和运行循环,系统还需要规定它们怎样交换信息、共享资源、判断完成以及处理失败。

使用多个 Agent 不会自动产生更高质量的结果。多 Agent 架构的价值通常来自并行探索、不同信息来源、独立上下文、专业工具或外部验证;如果多个 Agent 只针对同一段信息重复生成相似意见,收益可能不足以抵消额外的 Token、延迟和协调成本。

与相邻架构的区别

架构 核心特征
单 Agent 一个 Agent 在自己的上下文和循环中持续推进任务
固定工作流 程序预先规定主要步骤、分支和执行顺序,模型只处理局部节点
多 Agent 系统 多个 Agent 分别决策,并通过明确的拓扑和通信机制协调
多次模型调用 同一程序调用模型多次,但每次调用未必拥有独立目标、状态或行动能力

多 Agent 系统也可以运行在工作流内。例如程序固定“规划、执行、审核”三个阶段,每个阶段由独立 Agent 完成;此时工作流负责整体控制,Agent 负责各自阶段中的动态决策。

子 Agent 与多 Agent 系统

主 Agent 创建具有独立上下文和运行循环的子 Agent,并接收其结果时,已经形成一种中心化多 Agent 架构,通常称为管理者—执行者(Orchestrator-Worker)或 Manager-Worker 模式。子 Agent 不必是长期服务,也不必使用不同模型;关键在于它拥有相对独立的任务边界和执行状态。

如果系统只在同一上下文中让一个模型依次扮演“研究者、作者、审核者”,没有独立状态和信息边界,更接近角色提示或串行工作流。角色名称本身不能证明系统包含多个 Agent。

两个基本设计维度

上下文是否共享

  • 共享或继承上下文:后续 Agent 可以看到前序完整轨迹,信息交接简单,但上下文会持续膨胀,也容易继承前序角色的假设和错误;
  • 隔离上下文:每个 Agent 只接收任务包和必要资料,更利于并行、权限隔离和独立判断,但必须设计可靠的交接格式,避免遗漏关键约束和证据。

上下文隔离不等于信息隔绝。系统可以通过结构化消息、共享文件或受控查询传递事实和产物,同时避免把另一 Agent 的全部中间轨迹无条件装入当前上下文。Agent 上下文管理进一步说明上下文筛选、压缩和子 Agent 隔离。

协作拓扑

拓扑 工作方式 适合场景 主要风险
对等协作 少量 Agent 轮流提出、检查或改进结果 提议者—审核者、生成—验证循环 反复讨论、过早停止或没有新证据
管理者编排 中心 Agent 分解任务、启动执行者并整合结果 可并行研究、专业分工、受控委派 分解错误、重复劳动、管理者成为瓶颈
去中心化 Agent 根据能力和状态互相移交或协商 动态服务网络、跨团队协作 状态不一致、移交成环、责任不清

中心化与去中心化不是优劣关系。任务边界清楚、需要统一验收时,管理者模式通常更容易控制;成员动态出现、能力分散且无法共享内部实现时,去中心化移交更灵活,但需要更严格的身份、状态和信任机制。

通信、数据平面与控制平面

Agent 间通信可以归纳为两类:通过共享存储交换状态,或通过消息传递交换信息。具体实现常见为:

  • 在创建子 Agent 时通过工具参数传递任务包;
  • 通过共享工作区交换大文件、代码、报告和其他产物;
  • 通过点对点消息或消息总线发送任务、状态、结果和终止信号;
  • 通过受控 API 查询另一 Agent 的能力、任务状态或公开产物。

共享工作区属于数据平面,承载可持续读取的产物;任务分配、状态更新、取消、超时和资源调度属于控制平面。消息应使用稳定信封,至少包含发送者、接收者、消息类型、任务 ID 和结构化负载。大体积产物宜传递受权限控制的路径或引用,而不是复制进每条消息。

生命周期与资源管理

管理者创建子 Agent 时应明确:

  • 任务目标、范围、输入和期望输出;
  • 可用工具、数据来源和权限;
  • Token、步骤、时间和并发预算;
  • 成功、失败、需要输入和取消等状态;
  • 结果验证方式,以及任务结束后产物放在哪里。

取消应沿创建关系向下传播,避免主任务结束后留下无人管理的子 Agent。系统宜先请求 Agent 在安全点停止并释放资源,超时后再强制终止。长任务、事件和恢复机制参见 Agent 异步与事件驱动执行。

什么时候值得使用多 Agent

适合引入多 Agent 的情况包括:

  • 可以分成多个依赖较少、能够并行执行的子任务;
  • 需要从不同系统、专业领域或工具获得互补信息;
  • 单个上下文无法容纳全部探索过程,但子 Agent 可以压缩后交付结论和证据;
  • 需要独立验证者读取原始证据,检查生成者的产物;
  • 搜索空间开放,多个探索方向可以提高覆盖率。

通常不适合的情况包括:

  • 任务很短,协调成本高于执行成本;
  • 各步骤强依赖同一份完整上下文,难以形成清楚的交接边界;
  • 子任务无法独立验收,管理者也无法可靠整合;
  • 只是希望多个相同模型互相认同,却没有新数据、工具结果或独立证据;
  • 成本、并发和截止时间不允许扩展多条执行轨迹。

Anthropic 的多 Agent 研究系统采用管理者—执行者架构,让独立子 Agent 并行搜索不同方向,再由主 Agent整合结果。该案例同时指出,多 Agent 更适合高价值、可并行、需要大量独立探索的任务,并会显著增加 Token 消耗。

生成、审核与辩论

提议者—审核者将产出与判断交给不同 Agent。审核者应尽量直接读取原始要求、实际产物和外部验证结果,而不是只阅读提议者的推理摘要。只有引入独立证据或不同信息边界,审核才真正降低共因错误。

辩论模式让多个 Agent 从不同立场分析问题,适合暴露假设、风险和证据缺口,但不保证在等量计算预算下优于单 Agent。系统仍需要外部事实、明确评价标准和终止条件,不能把讨论轮数当作答案质量。

跨组织协作与 A2A

Agent2Agent(A2A)协议面向彼此独立、内部实现可能不透明的 Agent 系统,定义能力发现、消息与任务、产物、状态和跨系统交互方式。它让协作者无需访问对方的内部记忆、工具或推理过程。

A2A 与 Model Context Protocol(MCP)解决的接口边界不同:MCP 主要连接 AI 应用与工具、数据源,A2A 主要连接能够独立承担任务的 Agent。一个多 Agent 系统可以同时使用两者,让每个 Agent 通过 MCP 使用工具,再通过 A2A 与外部 Agent 协作。

主要失败模式

  • 任务分解不完整:子任务重叠、遗漏,或输出无法组合;
  • 错误级联:上游错误被下游当成事实,沿协作链放大;
  • 同质趋同:多个相同模型和相似上下文独立产生同一种错误;
  • 信息丢失:交接包省略关键约束、来源或失败路径;
  • 状态不一致:成员对当前版本、完成条件或资源所有权理解不同;
  • 共享写入冲突:并发覆盖同一文件,或不同文件的修改在语义上互相矛盾;
  • 循环失控:Agent 反复移交、无限审核或创建过多子 Agent;
  • 权限扩散:子 Agent 继承了超出任务需要的凭据和写入能力;
  • 成本失控:额外 Token、工具调用和等待时间没有产生相应价值;
  • 理解债:人类或管理者只接受汇总结论,逐渐无法解释系统为何作出决定。

《Why Do Multi-Agent LLM Systems Fail?》对多个 LLM 多 Agent 框架的执行轨迹进行了人工分析,将常见问题归为系统设计、Agent 间不一致以及任务验证与终止等类别。它说明增加角色描述或简单编排规则,不能自动消除多 Agent 的结构性失败。

验证与可观测性

多 Agent 评估既要检查最终任务结果,也要检查协作过程:

  • 任务覆盖是否完整,是否存在重复探索;
  • 子 Agent 的结论能否回到原始证据和工具结果;
  • 管理者是否正确采用、拒绝或请求补充结果;
  • 消息、状态、取消和资源预算是否按协议运行;
  • 与单 Agent 基线相比,质量提升是否值得新增成本和延迟;
  • 隔离上下文、不同模型或不同信息源是否真正提供独立性。

系统应为每次运行记录统一任务 ID、成员与模型版本、拓扑、消息、工具调用、共享产物版本、停止原因、成本和验证结果。完整方法参见 Agent 评估。

Agent Swarm 与 Agent 社会

“Agent Swarm”通常泛指较大规模的 Agent 集群,可能采用管理者并行调度,也可能采用去中心化移交;名称本身不能说明实际拓扑。判断系统时仍应检查谁创建成员、信息怎样传递、谁决定终止以及资源如何分配。

当多个 Agent 长期在共享环境中互动,并形成关系、规范、市场或竞争行为时,可以称为 Agent 社会。它既可以用于社会模拟,也可以产生新的协调、安全和治理问题。涌现行为不等于系统目标已经实现,还需要由外部环境和独立评价方法验证。

设计检查清单

  1. 单 Agent 是否已经无法以合理成本完成任务;
  2. 每个 Agent 能获得什么独特信息、工具或上下文容量;
  3. 子任务是否有清楚边界和独立验收标准;
  4. 使用共享上下文还是隔离上下文,交接时必须保留什么;
  5. 谁负责调度、整合、验证、取消和冲突裁决;
  6. 共享资源如何隔离、加锁、版本化和恢复;
  7. 如何限制成员数量、Token、并发和任务时长;
  8. 如何与单 Agent 基线比较质量、成本、延迟和失败率。

相关词条

参考资料

本页目录