多智能体协同模式:五种核心架构详解

多智能体协同模式:五种核心架构详解

来源:Anthropic 官方多智能体协同指南,宝玉(@dotey) 推荐。原文探讨了五种经过生产验证的多智能体协调模式,本文基于原文中英文对照整理,方便读者理解每种模式的机制、适用场景和失败模式。


前言

多智能体系统的核心问题是:多个 LLM 实例在独立对话上下文下运行,如何通过代码实现协调?

在这篇官方指南中,Anthropic 梳理了五种经过生产验证的多智能体协调模式:

  1. Generator-verifier(生成-验证者)
  2. Orchestrator-subagent(调度-子智能体)
  3. Agent teams(智能体团队)
  4. Message bus(消息总线)
  5. Shared state(共享状态)

模式一:Generator-verifier(生成-验证者)

机制

一个 Agent 负责生成输出,另一个 Agent 负责根据明确标准评估输出质量。

典型案例:代码生成场景 --- 一个 Agent 写代码,另一个 Agent 运行测试。

何时有效

当验证标准可以明确界定时,此模式效果显著。Generator 产出内容,Verifier 用独立视角审查,不依赖生成过程的理解。

失败模式

Anthropic 特别警告:

如果团队在实现循环时没有明确定义"验证"的含义,就会制造"虚假的质量控制"------看起来有评估环节,实际上没有实质把关。

另一个常见失败:Verifier 跑了一两个测试看到通过就宣布成功。必须要求完整测试套件运行并制定明确的综合检查标准。

适用场景

  • 质量保证(运行测试套件、lint 代码、按 schema 验证输出)
  • 合规检查(验证文档是否符合政策要求)
  • 输出验证(确认生成内容符合规格再交付)
  • 事实核查(由独立 Agent 验证生成内容中的论断或引用)

模式二:Orchestrator-subagent(调度-子智能体)

机制

一种层级结构:Lead Agent(调度者)负责任务分解,将边界清晰的子任务分配给专门的 Subagents。Claude Code 已采用此模式:主 Agent 在处理主要工作的同时,派发后台 Subagents 搜索大型代码库。

核心实现

python 复制代码
# Lead Agent 分解问题为独立子任务
facets = await lead_agent.decompose_query(query)

# 并行派发 Subagents 研究每个子任务
tasks = [research_subagent(facet) for facet in facets]
results = await asyncio.gather(*tasks)

# Lead Agent 综合各 Subagent 的发现
return await lead_agent.synthesize(results)

何时有效

  • 上下文保护:子任务产生的上下文量大(超过 1000 tokens)但大部分与主任务无关时,Subagent 提供隔离
  • 并行化:任务可自然拆分为独立部分(跨多来源的研究、跨多组件的测试)
  • 专业化:不同任务需要不同的工具集、系统提示或专业知识

失败模式

Anthropic 指出:

Orchestrator-Subagent 会产生信息瓶颈------关键细节在通过中心协调者路由时经常丢失。

另一个陷阱:按问题类型而非上下文边界分解任务("一个 Agent 写功能,另一个写测试,第三个做审查"),会产生大量协调开销,每个交接都会损失上下文。

适用场景

适合大多数需要多智能体协同的场景,是新团队的最佳起点,协调开销最低,能处理最广泛的问题类型。


模式三:Agent teams(智能体团队)

机制

多个命名 Agent 组成团队,通过消息路由实现持续协作。每个 Agent 有明确角色,通过消息传递进行通信和协调。Claude Code Agent Teams 正是基于此模式:多个 AI Agent 并行工作,分别处理不同任务部分,同时中心协调者追踪进度并综合结果。

关键协调方式

  • 通过共享文件系统传递结果
  • 通过工具调用结果共享信息
  • 通过顺序检查点同步进度
  • 不是通过 Agent 间直接通信

主要优势

优势 说明
并行性 多个任务同时执行
更大有效上下文 团队总体上下文大于任何单个 Agent
专业化 不同 Agent 可专注不同任务部分

何时有效

任务足够大、多面,或需要真正并行执行时,Agent teams 的协调开销才能被收益覆盖。对于小型任务,Agent teams 反而增加不必要的复杂度。

失败模式

  • 上下文隔离问题:Agent 之间共享上下文的方式如果不清晰,会导致信息丢失或重复
  • 合并冲突:当多个 Agent 同时修改相关资源时,冲突处理成本高昂
  • Token 密集度:Agent teams 通常比单一 Agent 消耗更多 token

模式四:Message bus(消息总线)

机制

多个 Agent 通过一个共享消息总线进行通信和协调。消息总线作为所有 Agent 之间的中央通信层,Agent 发布消息到总线,并从总线订阅它们需要处理的消息。

与 Orchestrator-subagent 的区别

维度 Message bus Orchestrator-subagent
通信模式 发布/订阅 点对点任务分配
协调中心 无单一协调者 Lead Agent 主导
耦合度 松散耦合 层级耦合
适用场景 事件驱动、工作流自动化 任务分解、结果综合

何时有效

  • 事件驱动的工作流场景
  • 需要多个 Agent 对同一事件作出反应
  • 工作流步骤之间的依赖关系复杂但清晰

失败模式

  • 消息路由复杂时,调试困难
  • 需要额外的消息队列基础设施
  • 消息格式不匹配导致 Agent 间通信失败

模式五:Shared state(共享状态)

机制

彻底移除中心协调者。Agent 直接从持久化存储中读写,实时建立在彼此的发现之上。

何时有效

  • 研究综合系统:一个 Agent 的发现立即影响另一个 Agent 的调查方向
  • Agent 之间需要频繁共享状态但不需要严格的消息传递
  • 任务可以自然地分解为"读-处理-写"循环

优势

  • 消除中心协调者带来的瓶颈
  • 更高的并行度
  • 更自然的团队协作模式

失败模式

  • 状态一致性挑战:多个 Agent 同时写入可能产生冲突
  • 调试困难:状态变化链路不直观
  • 缺乏中央视图:难以追踪整体进度

模式选择决策框架

按任务独立性选择

任务特征 推荐模式
独立子任务,无交叉依赖 Parallelization(并行处理)
任务有明确分工,需要协调者 Orchestrator-subagent
任务需要持续协作和消息传递 Agent teams / Message bus
任务需要共享上下文和实时协作 Shared state

按验证需求选择

验证需求 推荐模式
需要明确的生成-验证循环 Generator-verifier
需要黑盒验证(不依赖生成上下文) Generator-verifier
需要持续验证每个步骤 Evaluator-optimizer

Anthropic 建议

对于大多数应用,Anthropic 推荐从 Orchestrator-subagent 开始。它以最小的协调开销处理最广泛的问题类型。

生产系统通常会组合使用多种模式------比如整体工作流用 Orchestrator-subagent,子任务中需要紧密协作的部分用 Shared state。


各模式的失败模式汇总

模式 主要失败模式
Generator-verifier 无限循环(Generator 无法响应反馈);过早宣布通过(未运行完整验证)
Orchestrator-subagent 信息瓶颈(关键细节在协调者处丢失);按问题类型而非上下文分解
Agent teams 上下文隔离不清;合并冲突;Token 消耗过高
Message bus 消息路由复杂;基础设施开销大
Shared state 状态一致性冲突;调试困难;缺乏全局视图

实战建议

1. 从单一 Agent 开始

一个设计良好的单一 Agent + 适当的工具,往往比多智能体系统完成更多工作。多智能体系统引入开销:每个额外 Agent 都代表一个新的潜在故障点、额外需要维护的 Prompts,以及意外行为的另一个来源。

2. 只有当以下情况才使用多智能体

  • 上下文污染降低性能时:当子任务的上下文累积影响后续任务质量时
  • 任务可以并行运行时:当任务可自然分解为独立部分时
  • 专业化能改进工具选择或任务专注度时:当不同任务需要不兼容的工具集或专业领域时

3. 按上下文分解,而非按问题类型

问题类型分解(通常适得其反):按工作类型划分(一个 Agent 写功能,另一个写测试,第三个审查),会产生持续的协调开销。

上下文分解(通常有效):按上下文边界分解------处理一个功能的 Agent 也应该处理它的测试,因为它已经拥有必要的上下文。

4. 设置明确的验证检查点

无论选择哪种模式,都要确保有清晰的验证点,让 Subagents 可以在不需要完整上下文的情况下验证工作。


总结对比

模式 协调复杂度 适用场景 代表应用
Generator-verifier 需要明确验证标准的任务 代码生成+测试、合规检查
Orchestrator-subagent ⭐⭐ 需要任务分解和结果综合 研究调研、代码审查
Agent teams ⭐⭐⭐ 需要多角色持续协作 复杂软件开发、商业策划
Message bus ⭐⭐⭐ 事件驱动、松散耦合的工作流 自动化工作流、事件处理
Shared state ⭐⭐ 需要实时共享发现的研究任务 研究综合、协作式探索

参考来源

  1. Anthropic 官方博客 :《When to use multi-agent systems (and when not to)》 www.claude.com/blog/buildi...

  2. Anthropic 工程博客 :《How we built our multi-agent research system》 www.anthropic.com/engineering...

  3. 宝玉(@dotey) X 转发x.com/dotey/statu...

  4. Claude Code Agent Teamswww.mindstudio.ai/blog/what-i...

  5. Multi-agent Coordination Patterns (daily.dev 整理): app.daily.dev/posts/multi...


本文基于 Anthropic 官方文档整理,保留原文核心内容,仅做中文化处理和必要结构调整。如需深入了解,建议阅读原文。

相关推荐
IT枫斗者6 小时前
构建具有执行功能的 AI Agent:基于工作记忆的任务规划与元认知监控架构
android·前端·vue.js·spring boot·后端·架构
迷藏4946 小时前
**发散创新:基于角色与属性的混合权限模型在微服务架构中的实战落地**在现代分布式系统中,
java·python·微服务·云原生·架构
WindrunnerMax6 小时前
从零实现富文本编辑器#13-React非编辑节点的内容渲染
前端·架构·github
ssshooter6 小时前
Tauri 应用苹果签名踩坑实录
前端·架构·全栈
前进的李工7 小时前
智能Agent实战指南:从入门到精通(工具)
开发语言·人工智能·架构·langchain·agent·tool·agentexecutor
小凡同志7 小时前
从 Vibe Coding 到 Spec-Driven:AI 编程范式的下一次进化
前端·人工智能·架构
TechMasterPlus7 小时前
FilAPP 技术深度解析:基于 Filecoin 的去中心化文件存储应用架构
架构·去中心化·区块链
不懂的浪漫7 小时前
mqtt-plus 架构解析(七):动态订阅与重连恢复,为什么能走同一条协调路径
java·物联网·mqtt·架构
William_cl7 小时前
C# ASP.NET 分层架构实战:BLL (Service) 业务层从入门到封神(规范 + 避坑)
架构·c#·asp.net