多 Agent 辩论与协作
Du 等人(ICML 2024,「Society of Minds」)跑 N 个模型实例,各自独立提出答案,然后在 R 轮里互相批判以收敛。改善事实性、规则遵循、推理能力。稀疏拓扑在 token 成本上胜过全连接网格。
类型: Learn + Build 语言: Python(标准库) 前置要求: 阶段 14 · 12(工作流模式)、阶段 14 · 05(Self-Refine 与 CRITIC) 预计时间: ~60 分钟
学习目标
- 解释辩论协议:N 个提议者、R 轮、收敛到一个共享答案。
- 描述为什么辩论能改善事实性、规则遵循和推理。
- 解释稀疏拓扑:不是每个辩论者都需要看到其他每一个。
- 用标准库针对一个脚本化 LLM 实现辩论,带全连接和稀疏变体;度量 token 成本 vs 准确率。
问题背景
Self-Refine(第 05 课)是一个模型批判自己 —— 有群体思维的风险。CRITIC(第 05 课)把批判锚定在外部工具上 —— 并非总能用得上。辩论引入第三种模式:多个实例、交叉批判、靠分歧来收敛。
核心概念
Society of Minds(Du 等人,ICML 2024)
- N 个模型实例对同一个问题各自独立提出答案。
- 在 R 轮里,每个模型读其他人的提议并批判它们。
- 模型基于批判更新自己的答案。
- R 轮之后,返回收敛的答案。
原始实验因成本用了 N=3、R=2。在难题上(MMLU、GSM8K、国际象棋走子合法性、传记生成),准确率随更多 agent 和更多轮数而提升。
跨模型组合胜过单模型辩论:ChatGPT + Bard 合在一起 > 任何单独一个。
稀疏拓扑
「Improving Multi-Agent Debate with Sparse Communication Topology」(arXiv:2406.11776,2024-2025)表明全连接辩论并非总是最优。稀疏拓扑(星形、环形、轴辐式)能在更低 token 成本下匹配准确率。每个辩论者只看到一部分同伴。
含义:
- 全连接 N=5、R=3 = 5 × 3 = 15 个提议,每个读 4 个同伴 = 60 次批判操作。
- 星形 N=5、R=3(一个 hub + 4 个 spoke)= 15 个提议,spoke 只读 hub = 12 次批判操作。
辩论什么时候有帮助
- 事实性。 N 个独立提议,交叉核对降低幻觉。
- 规则遵循。 国际象棋走子合法性 —— 一个模型漏了条规则,其他人抓到。
- 开放式推理。 多种框定收窄到正确答案上。
辩论什么时候有害
- 延迟敏感的 UX。 N × R 串行轮次是你可能没有的延迟。
- 成本敏感的规模。 每个问题 N × R 个 token。
- 简单的事实查找。 一次查找比五次辩论便宜。
2026 年的实际实例化
- Anthropic orchestrator-workers(第 12 课)—— 辩论的一个变体,带一个综合步骤。
- LangGraph supervisor(第 13 课)—— 中央路由器 + 专家 agent,可以把辩论实现为一个节点。
- OpenAI Agents SDK(第 16 课)—— agent 来回 handoff 做迭代批判。
- 多 agent 评估 —— 把辩论 + evaluator-optimizer 配对获得评估信号。
这个模式在哪里会出错
- 收敛崩塌。 所有 agent 收敛到第一个错误答案上。用强制分歧轮来缓解。
- hub 失效。 在星形拓扑里,一个坏 hub 污染所有人。轮换或用多个 hub。
- prompt 同质化。 所有 agent 用同样的 prompt;它们产出同样的答案。用多样的 prompt 和/或模型。
figure
debate-converge动手构建
code/main.py 用标准库实现辩论:
Debater类(脚本化 LLM,带每辩论者的观点漂移)。FullMeshDebate和SparseDebate运行器。- 三个问题:一个事实型、一个规则型、一个推理型。
- 指标:收敛答案、收敛所需轮数、批判操作总数。
运行它:
python3 code/main.py输出:每协议的准确率和成本;稀疏在 2/3 问题上以更低成本匹配全连接。
实际使用
- Anthropic orchestrator-workers 用于简单的 2-3 worker 辩论。
- LangGraph 用于带检查点的有状态多轮辩论。
- 自定义 用于研究或专门的正确性保证。
拿去用
outputs/skill-debate.md 脚手架出一个多 agent 辩论,拓扑、N、R 和收敛规则可配置。
练习
- 实现一条「强制分歧」规则:在第 1 轮,每个辩论者必须产出一个不同的提议。度量它对收敛速度的影响。
- 加一个置信度加权聚合:辩论者返回 (answer, confidence);聚合器按置信度加权。它有帮助吗?
- 把一个「agent」换成一个观点不同的不同脚本化 LLM。异质性能改善准确率吗?
- 在你的 3 个问题上度量全连接 vs 稀疏的 token 成本。画出成本 vs 准确率。
- 读 Society of Minds 论文。把你的玩具移植到 N=5、R=3。什么崩了?什么变好了?
关键术语
| 术语 | 大家怎么说 | 它实际是什么 |
|---|---|---|
| Debate | 「多 agent 批判」 | N 个提议者,R 轮交叉批判,收敛 |
| Full mesh | 「人人读人人」 | 每个辩论者每轮读每个同伴 |
| Sparse topology | 「受限的同伴视野」 | 辩论者只读一部分同伴 |
| Hub-and-spoke | 「星形拓扑」 | 一个中心辩论者,N-1 个 spoke 只读 hub |
| Convergence | 「达成一致」 | 辩论者收敛到一个共享答案 |
| Society of Minds | 「Du 等人辩论论文」 | ICML 2024 多 agent 辩论方法 |
延伸阅读
- Du et al., Society of Minds (arXiv:2305.14325) —— 标准的多 agent 辩论
- Sparse Communication Topology (arXiv:2406.11776) —— 稀疏拓扑结果
- Anthropic, Building Effective Agents —— 作为辩论变体的 orchestrator-workers
- Madaan et al., Self-Refine (arXiv:2303.17651) —— 单模型自我批判的对应物