MARL —— MADDPG、QMIX、MAPPO
多 agent 协调的强化学习血脉,到 2026 年仍在影响 LLM-agent 系统。MADDPG(Lowe 等人,NeurIPS 2017,arXiv:1706.02275)引入了集中训练、分散执行(Centralized Training, Decentralized Execution,CTDE):训练时每个 critic 看到所有 agent 的状态和动作;测试时只跑本地 actor。适用于合作、竞争、混合场景。QMIX(Rashid 等人,ICML 2018,arXiv:1803.11485)是带单调混合网络的价值分解;每个 agent 的 Q 组合成联合 Q,所以
argmax能干净地分散——在星际争霸多 agent 挑战赛(SMAC)上占优。MAPPO(Yu 等人,NeurIPS 2022,arXiv:2103.01955)是带集中价值函数的 PPO;在 particle-world、SMAC、Google Research Football、Hanabi 上「出人意料地有效」,且几乎不用调参。这些支撑着「必须分散行动的 agent 团队」的策略训练。MAPPO 是 2026 年默认的合作式 MARL 基线。本课从一个小网格世界玩具构建每一个,让这三个想法在你碰 LLM-agent 训练之前就长进肌肉记忆里。
类型: Learn 语言: Python(标准库,不用 NumPy 的小实现) 前置要求: Phase 09(强化学习)、Phase 16 · 09(并行 Swarm 网络) 预计时间: ~90 分钟
问题背景
LLM-agent 系统越来越多地为 agent 间协调训练策略:何时退让、何时行动、调哪个同伴。告诉你如何训练这类策略的文献是多 agent 强化学习(Multi-Agent Reinforcement Learning,MARL),它早于 LLM 浪潮,有一小批占主导的算法。
不带这套模式词汇去读 MARL 论文很痛苦。集中训练分散执行(CTDE)、价值分解、集中 critic 不是流行词——它们是对具体问题的具体回答:
- 独立 RL(每个 agent 单独学)从每个 agent 视角看是非平稳的。糟糕。
- 集中 RL(一个 agent 控制全部)扩展不了,且违反执行约束。
- CTDE 取两者之长:用全局信息训练,用本地策略部署。
核心概念
论文用的三个环境
- Particle World(多 agent 粒子环境)。 简单 2D 物理,带合作/竞争任务。MADDPG 的原始试验台。
- 星际争霸多 agent 挑战赛(SMAC)。 合作式微操,部分可观测。QMIX 的试验台。离散动作、连续状态。
- Google Research Football、Hanabi、MPE。 MAPPO 的基线。
不同环境有不同的动作/观测类型。算法据此选择。
MADDPG(2017)—— CTDE 模式
每个 agent i 有一个 actor mu_i(o_i),把它自己的观测映射成动作。每个 agent 还有一个 critic Q_i(x, a_1, ..., a_n),训练时看到所有观测和所有动作。actor 用针对 critic 评估的策略梯度来更新。
actor 更新: grad_theta_i J = E[grad_theta mu_i(o_i) * grad_a_i Q_i(x, a_1..n) at a_i=mu_i(o_i)]
critic 更新: 在给定下一状态联合估计下,对 Q_i(x, a_1..n) 做 TD为什么 CTDE:训练时我们知道每个人的动作;用它来降低每个 critic 的方差。部署时每个 agent 只看到 o_i、调 mu_i(o_i)。
故障模式:critic 随 agent 数 N 增长(输入包含所有动作)。不做近似的话扩展不过约 10 个 agent。
QMIX(2018)—— 价值分解
仅合作。全局奖励是各 agent Q 值的一个单调函数:
Q_tot(tau, a) = f(Q_1(tau_1, a_1), ..., Q_n(tau_n, a_n)), df/dQ_i >= 0单调性保证 argmax_a Q_tot 可以由每个 agent 独立选 argmax_\{a_i\} Q_i 算出。这正是你需要的分散执行属性。训练时,一个混合网络从各 agent 的 Q 产出 Q_tot。
QMIX 为何在 SMAC 上赢:合作式星际微操有同质 agent、本地观测、全局奖励——和价值分解完美契合。
故障模式:单调性约束有限制性;有些任务的奖励结构不是单调可分解的(一个 agent 为团队牺牲)。扩展(QTRAN、QPLEX)放松了这点。
MAPPO(2022)—— 被忽视的默认
多 agent PPO:带集中价值函数的 PPO。每个 agent 有自己的策略;所有 agent 共享(或各自有)能看到完整状态的价值函数。Yu 等人 2022 年在五个基准上把 MAPPO 跟 MADDPG、QMIX 及它们的扩展做对比,发现:
- MAPPO 在 particle-world、SMAC、Google Research Football、Hanabi、MPE 上追平或打败 off-policy MARL 方法。
- 几乎不需要调超参。
- 训练稳定;跨种子可复现。
在这篇论文之前,社区低估了 on-policy MARL。2026 年,MAPPO 是合作式 MARL 的默认基线;任何新方法都得打败它。
LLM-agent 工程师为何该在意
三个直接用途:
- 路由器训练。 一个 meta-agent 选哪个子 agent 处理任务。这是一个 MARL 问题:N 个分散子 agent 加一个集中路由器。MAPPO 契合。
- 角色涌现。 在生成式 agent 仿真里,训练 agent 随时间采纳互补角色是一个伪装的 MARL 问题。QMIX 式的价值分解从构造上就强制互补。
- 多 agent 工具使用。 当 agent 共享工具、争抢预算时,用 CTDE 训练它们能产出尊重资源约束的、可部署的本地策略。
实际注意:2026 年,大多数生产 LLM-agent 系统用 prompt 而非训练来定它们的策略。当你有 (a) 大量交互数据、(b) 清晰的奖励信号、(c) 愿意投入训练基础设施时,MARL 才登场。
CTDE 作为超出 RL 的设计模式
即便不训练,CTDE 也是一个有用的架构模式:
- 设计时,假设全团队可见。
- 运行时,强制分散执行:每个 agent 只看到
o_i。
这个模式逼你把每个 agent 的状态显式保留下来,并在一开始就思考部分可观测性。许多生产多 agent 系统默默地到处假设共享状态——CTDE 纪律能防住这个。
非平稳性问题
当多个 agent 同时学习时,每个 agent 的环境(其中包含别人的策略)是非平稳的。经典单 agent RL 的证明就崩了。本课的 MARL 算法都应对这点:
- MADDPG:全局 critic 看到所有动作,所以它的价值估计是平稳的。
- QMIX:价值分解把学习挪到一个联合 Q 空间,最优性在那里有明确定义。
- MAPPO:集中价值函数抑制别人策略变化带来的方差。
在 LLM-agent 系统里,非平稳性表现为「我的 agent 上个月还好好的,现在上游那个 agent 改了,我的就出毛病了」。用 CTDE 训练 MARL 是有原则的修法;prompt 层面的修法更快但更不耐用。
本课不涵盖的内容
训练真实网络是 Phase 09 的话题。本课构建脚本化策略版本,在不做梯度更新的情况下演示 CTDE、价值分解、集中价值这三个模式。目标是在你拿起一个完整 MARL 库(PyMARL、MARLlib、RLlib multi-agent)之前先把模式内化。
sw-ctde动手构建
code/main.py 实现三个模式演示,都在一个微小的 2-agent 合作网格世界上:
- 环境:4x4 网格上的 2 个 agent,一个奖励颗粒。奖励 = 1,若任一 agent 到达颗粒;任务结束。
IndependentAgents—— 每个 agent 把别人当环境。基线。MADDPGStyle—— 集中 critic 计算一个联合价值;actor 策略据此更新。脚本化的策略改进。QMIXStyle—— 带单调混合器的价值分解。MAPPOStyle—— 集中价值函数;策略针对共享基线更新。
四个都跑同样的回合,报告平均到达目标步数。CTDE 变体收敛到比独立基线更短的路径。
运行:
python3 code/main.py预期输出:独立 agent 平均约 6 步;CTDE 变体收敛到约 3.5 步(4x4 网格的最优是 3)。尽管是脚本化策略,模式差异仍然显现。
实际使用
outputs/skill-marl-picker.md 是一个 skill,它为一个给定的多 agent 任务挑 MARL 算法:合作 vs 竞争、同质 vs 异质、动作空间类型、规模、奖励信号。
拿去用
MARL 在生产里很少见。当你确实要用时:
- 从 MAPPO 开始。 2022 年那篇论文把它确立为基线;先复现它能省下几周追逐花哨方法的时间。
- 记录每个 agent 的观测和动作流。 没有每 agent 轨迹去调 MARL 是没指望的。
- 把训练代码和执行代码分开。 CTDE 是一种纪律;让执行路径真的只看到
o_i。 - 奖励塑形警告。 MARL 对奖励设计极其敏感。塑形里一个协调 bug,agent 就学会利用它。跑对抗测试。
- 对 LLM agent,先考虑 prompt 层面的策略。只在交互数据 + 奖励信号 + 基础设施都齐备时才投入 MARL 训练。
练习
- 跑
code/main.py。测量独立 agent 和 MAPPO 式 agent 之间的到达目标步数差距。在 6x6 网格上这个差距是变大还是缩小? - 实现一个竞争变体:两个 agent、一个颗粒,只有先到的拿奖励。哪个模式干净地处理竞争?历史上是 MADDPG。
- 读 MADDPG(arXiv:1706.02275)第 3 节。用你自己的话把确切的 critic 更新规则以符号伪代码实现出来。
- 读 MAPPO(arXiv:2103.01955)。作者为什么主张「集中价值 + PPO」在他们的基准上打败 off-policy MARL?列出三个最有力的论断。
- 把 CTDE 作为设计模式应用到一个假想的 LLM-agent 系统(比如 research agent + summarizer + coder)。设计时可用、而运行时不可用的联合信息是什么?
关键术语
| 术语 | 大家嘴上怎么说 | 它实际是什么意思 |
|---|---|---|
| MARL | 「多 agent RL」 | 面向多 agent 系统的强化学习。 |
| CTDE | 「集中训练,分散执行」 | 用全局信息训练;用本地策略部署。 |
| MADDPG | 「多 agent DDPG」 | 带「每 agent critic 看到所有观测 + 动作」的 CTDE。 |
| QMIX | 「价值分解」 | 各 agent Q 的单调混合。合作。 |
| MAPPO | 「多 agent PPO」 | 带集中价值函数的 PPO。2026 年默认基线。 |
| Value decomposition | 「个体 Q 之和」 | 联合 Q 表示为各 agent Q 的一个单调函数。 |
| Non-stationarity | 「移动的靶子」 | 别人学习时每个 agent 的环境都在变。MARL 的核心问题。 |
| On-policy / off-policy | 「从当前学 / 回放学」 | PPO 是 on-policy(MAPPO);DDPG 和 Q-learning 是 off-policy。 |
| SMAC | 「星际争霸多 agent 挑战赛」 | 合作式微操基准;QMIX 的自家地盘。 |
延伸阅读
- Lowe et al. — Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments —— MADDPG;NeurIPS 2017
- Rashid et al. — QMIX: Monotonic Value Function Factorisation for Deep Multi-Agent Reinforcement Learning —— QMIX;ICML 2018
- Yu et al. — The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games —— MAPPO;NeurIPS 2022
- BAIR blog post on MAPPO —— 对 MAPPO 结果易读的解读
- SMAC repository —— 星际争霸多 agent 挑战赛