MARL——MADDPG、QMIX、MAPPO


MARL——MADDPG、QMIX、MAPPO

本节摘要:多智能体协调的强化学习遗产,到 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)是带单调混合网络的值分解,使 argmax 干净地分布到各 Agent——在 StarCraft 多智能体挑战(SMAC)上占主导。MAPPO(Yu 等, NeurIPS 2022, arXiv:2103.01955)是带中心值函数的 PPO,在粒子世界、SMAC、Google Research Football、Hanabi 上「出奇地有效」,几乎不用调参。这三者撑起了「必须分布行动的 Agent 团队」的训练策略。MAPPO 是 2026 合作型 MARL 的默认基线。 本节从一个小型网格世界玩具搭出三者,在触碰完整 MARL 库之前把三个模式刻进肌肉记忆。

学习目标

阅读完本节,你应当能够:

  1. 说明「独立 RL 非平稳、中心 RL 不可扩展」的困境,以及 CTDE 如何两者兼得。
  2. 复述 MADDPG 的 CTDE 模式——训练时 critic 看全部状态与动作、执行时 actor 只看 o_i,并指出其随 N 不扩展的失败模式。
  3. 说明 QMIX 的单调值分解 Q_tot = f(Q_1,...,Q_n), df/dQ_i >= 0 为何保证 argmax 分布干净,及其在合作型任务上的契合点。
  4. 复述 MAPPO「带中心值函数的 PPO,在五大基准上匹敌或击败离策略 MARL」的结论,并解释为何它是 2026 默认基线。
  5. 把 CTDE 当作超越 RL 的设计模式应用——设计期假设全队可见、运行期强制分布执行,并指出其在 LLM-Agent 系统中的三处直接用途(路由训练、角色涌现、多智能体工具使用)。

一、问题与直觉

LLM-Agent 系统越来越多地为 Agent 间的协调训练策略:何时让步、何时行动、调用哪个同伴。告诉你「如何训练这类策略」的文献,是多智能体强化学习(MARL)——它早于 LLM 浪潮,有一小撮主导算法。

没有模式词汇去读 MARL 论文是痛苦的。CTDE、值分解、中心 critic 不是流行词——它们是对具体问题的具体回答:

  • 独立 RL(每个 Agent 各自学)从每个 Agent 视角看是非平稳的。坏。
  • 中心 RL(一个 Agent 控制全部)不可扩展,且违反执行约束。
  • CTDE 兼得两者之长:用全局信息训练,用局部策略部署。

论文用的三个环境

  • 粒子世界(多智能体粒子环境)。简单 2D 物理,含合作/竞争任务。MADDPG 的原始测试床。
  • StarCraft 多智能体挑战(SMAC)。合作型微操,部分可观。QMIX 的测试床。离散动作,连续状态。
  • Google Research Football、Hanabi、MPE。MAPPO 的基准。

不同环境有不同动作/观察类型,算法据此选择。

MADDPG(2017)——CTDE 模式

每个 Agent i 有一个 actor mu_i(o_i),把自己的观察映射到动作;还有一个 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) | a_i=mu_i(o_i)] critic 更新: 在 Q_i(x, a_1..n) 上做 TD,给下一状态的联合估计

为何 CTDE:训练时我们知道所有人的动作,用它降低每个 critic 的方差;部署时每个 Agent 只看 o_i 并调 mu_i(o_i)

失败模式:critic 输入随 N 个 Agent 增长(含全部动作),不过约 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 上赢:合作型 StarCraft 微操有同质 Agent、局部观察、全局奖励——值分解的完美契合。

失败模式:单调性约束强;有些任务的奖励结构不可单调分解(一个 Agent 为团队牺牲)。扩展(QTRAN、QPLEX)放松了它。

MAPPO(2022)——被低估的默认

多智能体 PPO:带中心值函数的 PPO。每个 Agent 有自己的策略;所有 Agent 共享(或有各自的)看到全状态的值函数。Yu 等 2022 在五个基准上把 MAPPO 与 MADDPG、QMIX 及其扩展对比,发现:

  • MAPPO 在粒子世界、SMAC、Google Research Football、Hanabi、MPE 上匹敌或击败离策略 MARL。
  • 几乎不需调超参。
  • 训练稳定,跨种子可复现。

社区直到这篇才正眼看在策略 MARL。2026 年,MAPPO 是合作型 MARL 的默认基线;任何新方法都得先打败它。

LLM-Agent 工程师为何要在意

三处直接用途:

  1. 路由训练。 一个元 Agent 选哪个子 Agent 处理任务。这是个 N 个分布子 Agent + 一个中心路由器的 MARL 问题,MAPPO 契合。
  2. 角色涌现。 在生成式 Agent 仿真里,训练 Agent 随时间采纳互补角色,是伪装的 MARL 问题。QMIX 式值分解靠构造强制互补。
  3. 多智能体工具使用。 当 Agent 共享工具、竞争预算时,用 CTDE 训练能产出尊重资源约束的可部署局部策略。

实践警告:2026 多数生产 LLM-Agent 系统是提示其策略而非训练。MARL 在你同时有(a)大量交互数据、(b)清晰奖励信号、(c)愿投入训练基建时才进场。

CTDE 作为超越 RL 的设计模式

即便不训练,CTDE 也是有用的架构模式:设计期假设全队可见;运行期强制分布执行(每个 Agent 只看 o_i)。这个模式逼你把逐 Agent 状态写显式,并预先思考部分可观性。许多生产多智能体系统默默假设处处共享状态——CTDE 纪律阻止这一点。

⚠️ 这是「协调难点在平稳性」的集中体现——多 Agent 同时学习时,每个 Agent 的环境(含他人策略)都在变,经典单 Agent RL 的证明全垮。CTDE 不是炫技,而是对付非平稳性的工程答案:训练时用全局信息把他人策略「冻结」掉。

非平稳性问题

多个 Agent 同时学习时,每个 Agent 的环境(含他人策略)非平稳,经典单 Agent RL 证明失效。本节三个算法都对付它:MADDPG 的全局 critic 看到全部动作,值估计平稳;QMIX 把学习移到联合 Q 空间,最优性定义良好;MAPPO 的中心值函数抑制他人策略变化带来的方差。

在 LLM-Agent 系统里,非平稳性表现为「我的 Agent 上个月好好的,现在上游那个 Agent 变了,我的就出问题」。用 CTDE 训练 MARL 是原则性修复;提示级修复更快但不持久。

本节不覆盖的

训练真实网络是第 09 章(强化学习)的主题。本节搭脚本化策略版本,演示 CTDE、值分解、中心值函数三个模式,不做梯度更新。目标是在你拿起完整 MARL 库(PyMARL、MARLlib、RLlib multi-agent)前把模式内化。

二、从零实现

code/main.py 实现三个模式演示,都在一个微型 2 Agent 合作网格世界上:

  • 环境:4×4 网格上 2 个 Agent、一个奖励丸;任一 Agent 到达即得奖励 1,任务结束。
  • IndependentAgents——每个 Agent 把他者当环境。基线。
  • MADDPGStyle——中心 critic 算联合值,actor 策略据此更新。脚本化策略改进。
  • QMIXStyle——带单调混合器的值分解。
  • MAPPOStyle——中心值函数,策略对共享基线更新。

四者跑相同回合,报告平均到目标步数。CTDE 变体收敛到更短路径。

def maddpg_critic_update(critic, batch): # critic 输入含全部 Agent 的 (obs, action) s_joint = concat(batch.obs_1, batch.obs_2, batch.act_1, batch.act_2) q = critic(s_joint) target = batch.reward + gamma * critic_next(s_joint_next) loss = mse(q, target.detach()) return loss def maddpg_actor_step(actor_i, critic, obs_i): # actor 只用自己的 obs,但梯度穿过看到全局的 critic a_i = actor_i(obs_i) q = critic(obs_joint, a_1, ..., a_i, ..., a_n) (-q).backward() # 最大化 Q

设计要点:CTDE 的承重分离是 critic 与 actor 的「信息不对称」——critic 训练时贪婪地吃全局信息以降方差,actor 部署时却被刻意饿着只给 o_i。这一道不对称是「训练用全局、执行用局部」的全部秘密:把两者信息源弄成一样(都给全局或都给局部),要么不可部署,要么学不动。

运行 python3 code/main.py,期望输出:独立 Agent 平均约 6 步;CTDE 变体收敛向约 3.5 步(4×4 网格最优是 3)。尽管是脚本化策略,模式差异仍显现。

三、框架对比

算法 模式 合作/竞争 扩展性 2026 定位
MADDPG CTDE + 逐 Agent 全局 critic 合作、竞争、混合 ~10 Agent 后需近似 混合场景的参考
QMIX 单调值分解 仅合作 中(SMAC 主导) 合作同质团队
MAPPO 中心值函数 + PPO 合作(可扩展竞争) 默认基线
QTRAN/QPLEX 放松单调性 合作 QMIX 失守时

💡 心法:2026 年先用 MAPPO。 Yu 等 2022 把它立成基线,先复现它,能省下数周追 fancier 方法的时间。任何新 MARL 法都得先过 MAPPO 这关才有说服力。

四、可复用产物

outputs/skill-marl-picker.md:为给定多智能体任务挑 MARL 算法——合作 vs 竞争、同质 vs 异质、动作空间类型、规模、奖励信号。

五、练习

  1. 测步数差:运行 code/main.py,测独立与 MAPPO 式 Agent 的到目标步数差。在 6×6 网格上差变大还是变小?
  2. 竞争变体:实现竞争——两 Agent 一丸,先到者得奖励。哪个模式干净处理竞争?(历史上 MADDPG。)
  3. 读 MADDPG:读 arXiv:1706.02275 第 3 节,用你自己的话把精确 critic 更新规则符号化成伪代码。
  4. 读 MAPPO:读 arXiv:2103.01955,作者为何论证中心值 + PPO 在其基准上击败离策略 MARL?列三条最强论断。
  5. CTDE 当设计模式:对一个假想 LLM-Agent 系统(研究 Agent + 摘要者 + 编码者)应用 CTDE。设计期可得、运行期不可得的联合信息是什么?

本节要点回顾

  1. CTDE 是核心答案:独立 RL 非平稳、中心 RL 不可扩展,CTDE 用全局训、局部执兼得两者。
  2. MADDPG:逐 Agent critic 训练时看全部状态与动作,actor 执行只看 o_i;失败模式是 critic 随 N 增长、~10 Agent 后不扩展。
  3. QMIX 单调值分解:Q_tot = f(Q_1,...,Q_n),df/dQ_i>=0 保证 argmax 分布干净;合作同质团队的完美契合。
  4. MAPPO 是默认基线:带中心值函数的 PPO,五大基准匹敌或击败离策略法,几乎不调参、稳定可复现。
  5. 非平稳性是核心 MARL 难题:多 Agent 同时学则环境非平稳,CTDE 用全局信息「冻结」他人策略。
  6. LLM-Agent 三处用途:路由训练、角色涌现、多智能体工具使用——但前提是数据 + 奖励 + 基建齐备。
  7. CTDE 超越 RL:设计期全队可见、运行期强制分布执行,逼逐 Agent 状态写显式。
  8. 2026 先用 MAPPO:先复现基线再追新法,任何新 MARL 都得过 MAPPO 关。

下一节,我们把「协调」推向「交易」——Agent 经济、token 激励与声誉:看五层栈(DePIN → 身份 → 认知 → 结算 → 治理)、Shapley 值的公平功劳归属、以及二价 token 拍卖如何让博弈论机器具体落地。


作者与出处
原作者: Rohit Gupta
来源:rohitg00
许可证:MIT
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: Rohit Gupta 转发
评论区 (0)
U