跳转到正文

20.7 多智能体协作与 Agent Swarm

22.6 Code Interpreter RL 训练了单个 agent 在工具调用循环里完成编程任务。但当任务从"写一个函数"升级到"重构整个代码库 + 跑测试 + 写文档 + 提 PR",单个 agent 的上下文窗口、注意力带宽、错误恢复能力都会被压垮。多智能体协作(multi-agent collaboration)是 agentic RL 在 2025-2026 年的关键扩展:把一个复杂任务拆给多个 agent,每个 agent 专注一个子任务,通过显式通信协议协调。本节讲清楚三件事:(1) LLM-era 多智能体与经典 MARL 的根本差异;(2) 主流协作范式(Orchestrator-Worker、Debate、Swarm);(3) 多 agent 系统的 RL 训练方法。

从经典 MARL 到 LLM-era 多智能体

第 12 章 14.2 节讲过经典 MARL:CTDE 框架、MADDPG、MAPPO。这些算法处理的是同构 agent 在固定环境里学习纳什均衡——例如多个机器人追逃、多智能体 StarCraft 微操。LLM-era 多智能体完全不同:

维度经典 MARLLLM-era 多智能体
Agent 数量2-20 个2-10 个(受成本约束)
Agent 异构性同构(同一策略)高度异构(不同角色:planner/coder/tester)
通信方式通过环境状态隐式通信自然语言显式通信
任务类型零和博弈 / 合作博弈长程软件任务(PR、研究、运维)
训练目标纳什均衡 / 团队回报任务完成率(端到端可验证)
训练算法MAPPO / QMIXGRPO + 多轨迹奖励分配

最关键的差异是异构性显式通信。经典 MARL 里所有 agent 共享策略 ,只通过环境状态互相影响。LLM 多智能体里每个 agent 有不同的 system prompt("你是代码审查员"、"你是测试工程师"),通过自然语言消息互相协调。这让通信带宽爆炸式增长——一次协调可能消耗几千 token——但也让协作的语义丰富得多。

三种主流架构

Orchestrator-Worker 模式

最简单也最常用的协作范式。一个 Orchestrator agent(编排者)负责任务分解、子任务分发、结果聚合;多个 Worker agent(工作者)各自执行子任务。

[User: "修复 GitHub Issue #123"]


[Orchestrator]
    ├── 1. 读 issue → 调用 Worker-A: "定位 bug 文件"
    ├── 2. Worker-A 返回 file.py:42
    ├── 3. 调用 Worker-B: "在 file.py:42 写修复补丁"
    ├── 4. Worker-B 返回 patch.diff
    ├── 5. 调用 Worker-C: "跑测试 + 写 changelog"
    └── 6. 聚合 → 提交 PR

Anthropic 2025 年发布的内部研究测得:Orchestrator-Worker 模式相比单 agent 在 SWE-bench Verified 上加速 90.2%,成功率提升 18-32%。关键原因不是"两个 agent 比一个强",而是任务分解让每个 agent 的上下文窗口不被压垮——单 agent 处理整个 PR 流程时,注意力分散在"找文件 / 写代码 / 跑测试 / 写文档"四件事上;分解后每个 worker 只需关注一件事。

Orchestrator 的策略可以形式化为分层 MDP:

其中 是第 步派给哪个 worker, 是发给该 worker 的消息, 是历史交互。

Debate 模式

多个 agent 互相辩论以收敛到更可靠的答案。Anthropic 的 AI Safety via Debate(Irving et al. 2018)是这个范式的理论基础;DeepMind 2024 年的 Scaling Inference 论文验证了 LLM Debate 在数学题上的效果。

Debate 的 MDP:

个 agent 看到所有其他 agent 的历史发言,输出本轮回应 。最终答案由外部 judge(人或另一个 LLM)选择。

Debate 的训练目标是真理收敛:让诚实 agent 在多轮辩论后胜出。这比 Orchestrator-Worker 难训得多——需要对抗训练(adversarial training):故意训练一个"撒谎 agent",再训一个"诚实 agent"打败它。

Agent Swarm 模式

Kimi K2.5(2026.01)Step 3.7 Flash Advisor Mode 把多 agent 推到极致:几十个异构 agent 同时在线,由一个 meta-controller 动态调度。这本质上是 A2A(Agent-to-Agent)协议 + RL 调度器。

Swarm 的关键差异:

  • Agent 池而非固定 worker 集合:meta-controller 根据任务从池中动态选 agent
  • A2A 通信协议:agent 之间通过结构化协议(如 Anthropic A2A、OpenAI Function Calls)通信
  • 信用分配跨 agent:哪个 agent 贡献最大?需要 SHAP 或注意力归因

形式化:

其中

Swarm 的成本爆炸

Swarm 模式的 token 消耗是单 agent 的 10-50 倍。Kimi K2.5 论文报告:处理一个 SWE-bench 任务平均消耗 280K token(单 agent baseline 是 18K)。这是为什么 2026 年工业落地仍以 Orchestrator-Worker 为主——成本可控,效果接近 Swarm。

多 agent 系统的 RL 训练

从团队回报到个体归因

多 agent RL 最棘手的问题是信用分配(credit assignment)。任务成功了,谁该得奖励?

方案 1:团队回报平均分配(team-average)

所有 agent 拿到相同奖励 是 agent 数):

简单但容易产生搭便车(free-rider)问题:某个 worker 偷懒,团队仍能成功,该 worker 同样拿到奖励。

方案 2:Shapley value 归因

博弈论里的 Shapley value 衡量每个 agent 的边际贡献:

其中 是子集 完成任务的成功率。 项需要反事实评估(counterfactual evaluation)——把 agent 从团队移除,看任务还能否完成。计算成本高,但归因最公平。

方案 3:Orchestrator 显式分配(heuristic)

Orchestrator 在最终回报里输出权重 ,agent 的奖励是

这是 Kimi K2.5 实际用的方案——便宜且可解释,但依赖 Orchestrator 的归因能力(本质上是 RL 训练 Orchestrator 学会归因)。

多轨迹 GRPO

标准 GRPO 对同一 prompt 采样 条轨迹,归一化优势:

多 agent 版本叫 Multi-Agent GRPO(MA-GRPO):每条轨迹不是单 agent 生成,而是整个团队协作生成 条轨迹 = 次团队协作。

关键工程实现:

python
def ma_grpo_step(prompts, team_size):
    # 对每个 prompt,采样 G 条团队协作轨迹
    trajectories = []
    for prompt in prompts:
        for g in range(G):
            # 1. Orchestrator 分解任务
            subtasks = orchestrator.decompose(prompt)
            # 2. Workers 并行执行
            worker_outputs = [workers[i](subtasks[i]) for i in range(team_size)]
            # 3. Orchestrator 聚合
            final_answer = orchestrator.aggregate(worker_outputs)
            # 4. 计算 reward
            r = verifier(prompt, final_answer)
            trajectories.append({
                'prompt': prompt,
                'final': final_answer,
                'reward': r,
                'orch_logp': orchestrator.logp(...),
                'worker_logp': [w.logp(...) for w in workers]
            })

    # GRPO 优势归一化
    rewards = [t['reward'] for t in trajectories]
    advantages = (rewards - mean(rewards)) / (std(rewards) + eps)

    # 分别对 orchestrator 和 workers 算 loss
    orch_loss = -mean(a * t['orch_logp'] for a, t in zip(advantages, trajectories))
    worker_losses = [-mean(a * lp for a, lp in zip(advantages, t['worker_logp']))
                     for t in trajectories]

    total_loss = orch_loss + sum(worker_losses)
    return total_loss

注意三个工程细节:

  1. Orchestrator 和 Workers 共享优势 ——团队成败是统一的信号
  2. 三者一起更新(joint update),而非交替更新——避免非平稳性问题
  3. 必须用 group-normalized 优势——否则某个 agent 学得快,其他 agent 的梯度被淹没

Kimi K2.5 与 Step 3.7

Kimi K2.5 的 Agent Swarm

Kimi K2.5(2026.01,arXiv:2602.02276)是首个公开 Swarm 模式训练细节的工业模型:

  • Agent 池:32 个异构 agent(coder、tester、planner、reviewer、debugger 等)
  • A2A 协议:基于 JSON Schema 的结构化消息
  • 训练数据:12M 条团队协作轨迹,覆盖 SWE / DeepResearch / Customer Service
  • 奖励:可验证任务用 RLVR,开放任务用 LLM-as-Judge
  • 调度 RL:meta-controller 用 PPO 训练,目标是最小化 token 消耗 + 最大化成功率

报告指标:

  • SWE-bench Verified:68.3%(单 agent baseline 49.1%)
  • BrowseComp:72.1%(单 agent 51.4%)
  • 平均 token 消耗:280K(baseline 18K,15.6×)

Step 3.7 Flash Advisor Mode

Step 3.7 Flash 的 Advisor Mode 走不同路线:保守的 Orchestrator-Worker,但加入Advisor agent专门做"反思与纠错"。

[Orchestrator] → [Worker-A: code] → [Advisor: review] → [Orchestrator] → [Worker-B: test]

Advisor 不直接执行任务,只对 Worker 输出做评论。Orchestrator 看到 Advisor 评论后决定是否返工。这种"哑铃式"协作成本只有 Swarm 的 1/5,但效果接近。

报告指标:

  • SWE-bench Verified:62.4%(介于单 agent 和 Swarm 之间)
  • 平均 token 消耗:52K(约 Swarm 的 1/5)

第 30 章 自我博弈 的呼应

多智能体协作有一个特殊形态:多个 agent 是同一个 policy 的不同实例,互相博弈。这就是 AlphaGo / AlphaZero / Constitutional AI Self-Critique 的核心思想。详见 第 30 章 自我博弈

关键区别:

  • 多智能体协作:异构 agent,显式通信,团队任务
  • 自我博弈:同构 agent(同一 policy),通过环境交互,零和或合作博弈

两者在 LLM 时代开始融合——例如 Constitutional AI 的 Self-Critique 可以看作"两个 agent 协作(一个生成、一个批评),但用同一个 policy"。

多智能体协作的失败模式

理论讲完,回到工程——多智能体系统在生产环境的几种典型失败模式。

通信放大错误

单 agent 出错只影响自己;多 agent 系统里,一个 agent 的错误输出会成为其他 agent 的输入,错误被指数放大。

Worker-A (误) → 输出 "bug 在 file_X.py:42"

Orchestrator 派 Worker-B 修复 file_X.py:42

Worker-B 修复了一个不存在的 bug,引入新 bug

Orchestrator 派 Worker-C 测试,发现新 bug

...无限循环...

Anthropic 内部数据:多 agent 系统的"连锁错误率"是单 agent 的 2.7 倍。

对策:每个 agent 输出时附带置信度;低置信度输出触发 Orchestrator 的二次核验。

群体思维

多个 agent 互相影响后,可能收敛到错误共识——尤其在 Debate 模式下。如果一个 agent 用了错误的前提,其他 agent 可能基于"礼貌"或"从众"接受这个前提。

对策:引入"魔鬼代言人"(Devil's Advocate)agent——专门反驳主流观点。Anthropic 的 Debate 系统强制至少一个 agent 持反对立场。

搭便车(Free Rider)

团队回报平均分配时,某个 worker 学会"做最小贡献"——只输出看似合理但无实质内容的回应,团队仍能成功。

对策

  • Shapley value 归因(计算成本高)
  • Orchestrator 显式打分(依赖 Orchestrator 能力)
  • 测试时单独评估每个 worker(最严格但最贵)

上下文重复

多 agent 系统里,每个 worker 都需要"了解全局"才能工作。但全局信息(任务描述、已有进展)在每个 worker 的 prompt 里都重复一遍——token 成本爆炸。

任务: "修复 GitHub Issue #123"
上下文(每个 worker 都看到):
  - Issue 完整描述: 500 token
  - 相关代码文件: 2000 token
  - 已有 worker 的进展: 1500 token
合计: 4000 token × 5 workers = 20K token 仅上下文

对策:分层上下文——Orchestrator 维护完整上下文,worker 只看精简摘要。

开源框架与工具

复现多智能体 RL 训练,有以下开源工具:

框架来源特点
AutoGenMicrosoft多 agent 对话框架,支持多种协作模式
CrewAICrewAI Inc.角色化 agent(planner/researcher/writer)
MetaGPTDeepWisdomSOP(标准作业流程)驱动的多 agent
LangGraphLangChain基于状态图的多 agent 编排
Agency SwarmVRSEN字面意义的"agent swarm"开源实现

但这些框架大多是推理时(inference-time)工具——它们定义 agent 之间怎么对话,不涉及 RL 训练。真正能用 RL 训练多 agent 系统的开源框架极少,主要是:

  • OpenRLHF(字节系):支持多 agent 的 PPO/GRPO,可自定义 reward 分配
  • verl(字节系):分布式 RL 框架,支持异构 agent 联合训练
  • OpenResearcher:Deep Research 专用,含简单的 Orchestrator-Worker

工业级 Swarm 训练(如 Kimi K2.5)目前没有完整开源实现——这仍是中国/美国头部 lab 的核心壁垒。

本节总结

范式通信方式训练目标代表系统成本
单 agentN/A任务完成率baseline
Orchestrator-Worker单向派发团队回报Anthropic 内部3-5×
Debate双向辩论真理收敛Anthropic / DeepMind5-10×
Agent Swarm全连接 A2A团队 + 个体归因Kimi K2.515-30×

LLM-era 多智能体的 RL 训练核心挑战:信用分配token 成本。前者决定训练能否收敛,后者决定能否商业化。2026 年主流是 Orchestrator-Worker + 显式归因,Swarm 仍处于研究阶段。

下一章 第 21 章 代码智能体强化学习 把这套协作框架用在 SWE 任务上——你会看到 SWE-Agent 如何用 Orchestrator-Worker 训练单 agent 代码智能体,DeepSWE 如何用 self-play 训练多 agent 协作开发。

现代强化学习实战课程