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

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

来源: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 官方文档整理,保留原文核心内容,仅做中文化处理和必要结构调整。如需深入了解,建议阅读原文。

相关推荐
2601_957884843 小时前
深度拆解:大模型RAG架构下,GEO优化的技术实现路径
人工智能·架构
Curvatureflight5 小时前
【架构实战】生产级大模型 API 接入指南:流式响应(Streaming)异常处理与监控闭环
python·架构
这是谁的博客?5 小时前
微服务架构设计模式深度解析:从拆分策略到容灾机制
微服务·设计模式·云原生·架构·架构设计·后端开发·分布式系统
oo哦哦7 小时前
企业级矩阵管理中台:从“人海战术“到“AI智能增长“的架构演进与实践解析
人工智能·矩阵·架构·轻量化中台
heimeiyingwang8 小时前
【架构实战】分库分表ShardingSphere:突破数据库瓶颈
架构
梦梦代码精8 小时前
以前比功能,现在比“不崩溃”——LikeShop如何用工程化架构终结商城维护噩梦
架构·开源·代码规范
该昵称用户已存在8 小时前
双碳背景下的能源数据变现:MyEMS 开源架构的资产化设计思路
架构·开源·能源
百珏8 小时前
海量人群包存储优化:基于 RoaringBitmap 交换格式与 Redis 分片 Bitmap 的实践
java·后端·架构
还有多久拿退休金8 小时前
我在自家页面嵌了个 iframe,结果对方说"你不配"——跨域和 CSP 的那些坑
前端·架构
heimeiyingwang8 小时前
【架构实战】安全性设计:让系统固若金汤
架构