前置知识: AI Agent

心智社会与多Agent辩论

10 minIntermediate

Minsky 1986 年的前提——智能是专家的社会——每十年被重新发现一次。2023 年 Du 等人将其转化为具体算法:多个 LLM 实例提出答案、阅读彼此的答案、批评并更新。经过 N 轮,它们收敛于一个共识,在六个推理和事实性任务上击败零样本 CoT 和反思。两个发现很重要:多个 Agen...

心智社会与多 Agent 辩论

Minsky 1986 年的前提——智能是专家的社会——每十年被重新发现一次。2023 年 Du 等人将其转化为具体算法:多个 LLM 实例提出答案、阅读彼此的答案、批评并更新。经过 N 轮,它们收敛于一个共识,在六个推理和事实性任务上击败零样本 CoT 和反思。两个发现很重要:多个 Agent多轮独立贡献。社会击败单 Agent 独白;多轮交换击败一次性投票。

类型: 学习 + 构建 语言: Python (stdlib) 前置条件: Phase 16 · 04 (原语模型) 时间: ~60 分钟

问题

自一致性——对一个模型采样多次并取多数答案——是你可以添加的最便宜的推理改进。它有效,但很快饱和。你可以将样本翻倍却看不到另一个有意义的提升。

辩论打破了饱和。不是从一个模型取 N 个独立样本,而是 N 个 Agent 阅读彼此的推理并修订。样本之间的相关性下降(它们不再是 i.i.d.),收敛点通常是正确的,而 i.i.d. 投票则自信地错了。

概念

Du 等人 2023 算法

来自 arXiv:2305.14325 (ICML 2024):

  1. N 个 Agent 各自产生对问题的初始答案。
  2. 对于轮次 r = 2..R:每个 Agent 看到其他 Agent 的第 r-1 轮答案,并被要求”考虑这些,给出你更新的答案。”
  3. R 轮后,对最终答案进行多数投票。

论文在 MMLU、GSM8K、传记、MATH 和事实性基准上测试。辩论始终击败 CoT 和自我反思。

两个独立旋钮

同一论文的消融实验:

  • 仅 Agent 数量(1 轮,N 的多数投票)在大多数任务上击败单 Agent,但会饱和。
  • 仅轮次数量(1 个 Agent 看到自己先前的推理)几乎没有帮助——反思的已知弱点。
  • 两者结合产生大幅提升。多个 Agent 之间的多轮交换驱动了增益。

为什么有效

两个机制:

  1. 暴露于分歧。 当一个 Agent 看到另一个 Agent 带有不同结论的推理链时,它必须证明或更新。无论哪种方式,第 r+1 轮的上下文都比第 r 轮更丰富。
  2. 相关错误减少。 在自一致性中,所有样本来自同一模型,所以错误相关——你平均到一个自信的错误答案。不同模型或不同种子去相关。不同的辩论观点进一步去相关。

异构辩论

A-HMAD 和相关后续工作为不同 Agent 使用不同基础模型。Llama + Claude + GPT 辩论减少了单一文化崩溃 (Lesson 26),因为一个模型族的相关错误不被其他族共享。

缺点:弱模型参与辩论可能将共识拖向其错误答案(参见 “Should we be going MAD?”, arXiv:2311.17371)。

NLSOM — 129 Agent 扩展

Zhuge 等人 (“Mindstorms in Natural Language-Based Societies of Mind,” arXiv:2305.17066) 将此想法扩展到 129 成员社会。结果:专业化和自组织随规模涌现,系统在视觉问答等任务上超越单 Agent。

失败模式

  • 谄媚级联。 所有 Agent 服从听起来最自信的 Agent。辩论崩溃为最大声的声音。提示对抗性角色(“一个 Agent 必须论证反方立场”)有帮助。
  • 主题漂移。 多轮辩论偏离原始问题。缓解:每轮重新注入问题。
  • 计算爆炸。 N 个 Agent × R 轮 = N·R 次 LLM 调用,每次的上下文都在增长。5 Agent、5 轮辩论是 25 次调用,上下文不断增长。每个问题的成本可能超过单次 CoT 调用的 10 倍。

构建它

code/main.py 在一个数学问题上运行 3 Agent × 3 轮辩论,每个 Agent 从不同(可能错误)的答案开始。Agent 是脚本化的——每个”更新”通过按脚本化置信度加权平均邻居的答案。收敛在逐轮日志中可见。

演示展示两个关键效果:

  • 单轮交换将 Agent 推向正确答案。
  • 第 2 轮之后的额外轮次显示收益递减(匹配 Du 等人的平台期)。

运行:

python3 code/main.py

使用它

outputs/skill-debate-configurator.md 为新任务配置辩论:Agent 数量、轮次数量、异构性(相同模型 vs 混合)、角色分配(对称 vs 一个对抗性)。它还在运行前估算 token 成本。

发布它

如果你发布辩论:

  • 轮次上限 3。 Du 等人显示 3 轮捕获了大部分增益。更多是成本,不是质量。
  • Agent 上限 5。 超过 5,上下文膨胀和成本占主导。
  • 默认异构。 池中至少两个不同基础模型。
  • 对抗性槽位。 一个 Agent 被提示无论如何都要反对。打破谄媚。
  • 记录每轮。 隐藏中间轮的辩论系统无法调试或审计。

练习

  1. 运行 code/main.py,然后将轮次设为 5,观察收益递减。在哪一轮额外收敛停止?
  2. 添加第四个具有对抗性角色的 Agent:始终反对当前多数。这破坏还是改善收敛?
  3. 绘制(打印)每轮的一致性分数(多数答案上的 Agent 比例)。何时达到 1.0,这是否等同于”正确”?
  4. 阅读 Du 等人第 4 节消融实验。使用此代码复现”仅 Agent” vs “仅轮次” vs “两者”的结果。
  5. 阅读 “Should we be going MAD?” (arXiv:2311.17371) 并列出轮询之外的两种辩论变体——例如,法官主导、辩论链、对抗性。

关键术语

术语人们怎么说实际含义
心智社会”Minsky 的想法”智能作为交互的专家;1986 年的框架现在通过 LLM 辩论操作化。
多 Agent 辩论”Agent 们争论”N 个 Agent 提议、互相批评、经 R 轮修订、多数投票。
共识”他们同意”不是认识论真理——只是多数答案上的比例。可能自信地错误。
轮次”交换步骤”一轮 = 每个 Agent 阅读其他 Agent 并更新一次。
异构辩论”混合模型族”使用不同基础模型来去相关错误。
谄媚级联”每个人都同意那个大声的”辩论失败,Agent 服从最自信的 Agent 而不论正确性。
NLSOM”129 Agent 社会”自然语言心智社会;Zhuge 等人的规模化版本。
相关错误”相同模型,相同 bug”自一致性饱和的原因;跨不同观点的辩论去相关。

延伸阅读