AI 基建
0%
第六部分 · 编排 · 第 43 章

多智能体系统

作者Changkun Ou
阅读时长约 15 分钟

单个智能体(第 38 章)只有一个视角,也只有一组盲区。把几个智能体放到同一个任务上,许诺的是让它们彼此覆盖这些盲区,而兑现这一许诺的默认方式,是投票。但多智能体可靠性并不是简单的多数定律:相似智能体之间的投票,收益比数学暗示的要少;结构化的分歧收益更大;系统还必须区分活性失败与安全性失败,升级那些可恢复的失败,阻断那些会静默发布的失败。

2026-06-21T23:30:17.838971 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/ 1 0 0 1 0 1 智能体数量 0 1 2 3 4 5 6 相对单位 有效工作 协调成本
图 43.1. 多智能体系统中协作拐点的示意图。更多智能体初期会增加有用工作,但如果任务不能清晰拆分,协调开销会增长得更快。理想化曲线,非实测。

默认做法:加更多智能体,取共识

让多智能体系统可靠的主流做法,是跑更多智能体、取共识:在 NN 个采样上投票,在不同模型家族间做集成,再加一个评判者。背后的隐含假设是,一致即证据,分歧即噪声,理应被平均掉。这种直觉来自它原本成立的几个场景:统计估计、经典容错计算,以及在独立采样数据上训练的机器学习集成。可一旦接触到由大语言模型驱动的随机智能体,这些假设没有一个还站得住。把一致当作正确性的代理,会遇到三个关键问题,本节逐一处理。

失败是相关的

经典拜占庭容错的定理并不要求概率意义上的独立,它要求的是能可信地界定同时故障的副本数量。其中 f<N/3f < N/3 这条阈值里,NN 是副本总数,ff 是允许同时拜占庭故障的副本数;它只有在少于三分之一的副本会共享同一个拜占庭失败模式时,才有意义。两个智能体如果取自同一个基础模型、同一个训练分布,往往还共用同一个提示模板,那么它们的失败模式并不独立。它们会一起幻觉(幻觉指的是自信却错误的输出,一起幻觉则是多个智能体一同落到同一个错误答案上),会共享同样的盲区、同样偏向「听起来流畅却错误」的答案的偏置、在同类输入上同样的弱点。Berdoz 等人直接测量了这一点:在没有任何对手的情况下,LLM 智能体的有效标量共识率,从 N=4N=4 时的 46.6% 下降到 N=16N=16 时的 33.3% (Berdoz et al. 2026)。增加智能体只让结果更糟,并没有带来改善。

一致很容易被人为制造

少量的从众压力、一个引导性的提示,或者一个共享的上下文示例,就足以把智能体推向收敛却错误的答案。Free-MAD 的工作给出了一个现代版本:在共识驱动的辩论里,最初给出正确回答的智能体可能被错误回答拉偏,而最后一轮多数投票可能反而降低推理性能 (Cui et al. 2025)。当系统按「是否一致」来打分时,智能体就学会了一致,哪怕正确的做法是表明它们无法一致。

自评是有偏的

Panickssery 等人指出,LLM 评判者会系统性地偏爱自己的生成结果 (Panickssery et al. 2024),而成对评判中的位置偏置也有充分的文献 (Shi et al. 2025)(第 50 章)。出自同一家族的评判者集成,会继承同样的偏置。如果验证层只是被验证层的低成本复刻,它并不能带来任何原本不知道的信息。更准确地说,相似模型之间的一致,是正确性的弱证据。它有时候不过证明了输入足够无歧义,以至于任何一个合理的解码器都会落到同一个答案上。

把分歧当作信号,而非噪声

更深的一步,是停止把分歧当作噪声。在理想化的辩论里,只要有一位有能力且诚实的批评者,就足以揭出一个缺陷,不管其他批评者多么懒惰或错误 (Irving et al. 2018)。这种不对称是核心的设计思想,它把编排方式整个反过来。区别于把判定汇集起来的对称投票者,这里的角色是专门化的:一个 proposer 产出工件,独立的批评者各自攻击它的一个不同的轴,一个成本更低的评判者只裁决有争议的那条主张。

一个简明的形式对比,能让这种不对称变得精确。用大白话说就是:独立的错误彼此抵消,相关的错误则相互叠加。当批评者因互不相干的原因失手时,它们的漏判会相乘到几乎为零;而当它们共享同一个失败模式时,漏判会层层堆积,再添批评者也几乎无济于事。下面的式子说的正是这件事。设 pi[0,1]p_i \in [0, 1] 为批评者 ii 在其负责的轴上发现缺陷的概率,ρ[0,1]\rho \in [0, 1] 为判定结果之间的两两相关性。

聚合式验证:kk 个投票者做多数投票,会随相关性升高而退化。当 ρ1\rho \to 1 时,缺陷在集成中存活的概率,趋向于那个唯一的共同失败模式漏掉它的概率,此时增加投票者无济于事:

Pr[flaw survivesρ1]    Pr[shared mode misses flaw]\Pr[\text{flaw survives} \mid \rho \to 1] \;\to\; \Pr[\text{shared mode misses flaw}]

这个式子把相关失败的极端情形写出来:当 ρ\rho 趋近一时,许多投票者不再像许多次独立检查,而像同一个共同失败模式的重复拷贝。于是缺陷是否存活,取决于那个共享模式是否漏掉它。对抗式验证:kk 位独立批评者覆盖不同的轴,发现一个缺陷即可,存活概率在批评者上分解成乘积。在独立的前提下这是精确的;任何残余的正相关,只会把存活概率提高到乘积之上,所以这个乘积就是能得到的最好情况:

Pr[flaw survives]  =  i=1k(1pi)\Pr[\text{flaw survives}] \;=\; \prod_{i=1}^{k} (1 - p_i)

这个乘积,只有在 pip_i 覆盖了不同的错误方式时才有意义。把它写成 pi=cidip_i = c_i d_i,其中 cic_i 是批评者 ii 选中相关攻击面的概率,did_i 是它把这个攻击面推进成具体反对意见的概率。重复堆在同一攻击面上的批评者,主要是在局部提高 did_i;强制话题多样性提高的,则是覆盖率,近似为 1i(1ci)1 - \prod_i (1 - c_i)。只要在相关的轴上有一位有能力且诚实的批评者,pi=1p_i = 1,整个乘积就收缩为零。当失败相关、且至少存在一位独立诚实的批评者时,正是这种不对称,让对抗式验证得以压倒共识。

试着把相关性往上滑:用一个共享潜变量的混合模型 Pr[survives]=ρ(1p)+(1ρ)(1p)k\Pr[\text{survives}] = \rho(1-p) + (1-\rho)(1-p)^k,看投票如何随 ρ\rho 升高而趋平,而独立乘积仍持续把存活概率往下压。

import numpy as np
import matplotlib.pyplot as plt

p = 0.5                       # 单个智能体发现缺陷的概率
k = np.arange(1, 11)          # 智能体 / 批评者数量
for rho in [0.0, 0.3, 0.6, 0.9]:
    survives = rho * (1 - p) + (1 - rho) * (1 - p) ** k
    plt.plot(k, survives, marker="o", label=f"投票,rho={rho}")
plt.plot(k, (1 - p) ** k, "k--", lw=2, label="对抗式(rho=0 乘积)")
print("rho=0.9 且 k=10 时的存活率:", round(rho := 0.9, 2),
      "->", round(0.9 * (1 - p) + 0.1 * (1 - p) ** 10, 4))
print("对抗式在 k=10 时的存活率:", round((1 - p) ** 10, 4))
plt.xlabel("智能体数 k"); plt.ylabel("Pr[缺陷存活]")
plt.legend(); plt.title("失败相关时,增加投票者收益很小")
plt.show()

分歧还服从一个投票所违反的单调性不变量。这里 UtU_t 为第 tt 轮之后未解决攻击的集合,RtUtR_t \subseteq U_t 为通过修复、让步或令人信服的辩护而被解决的攻击,At+1A_{t+1} 为下一轮引入的新攻击:

Ut+1=(UtRt)At+1U_{t+1} = (U_t \setminus R_t) \cup A_{t+1}

一个未解决的反对意见,不会因为更多智能体投票反对它而消失;它只有在被解决之后才会消失。多数聚合在设计上就违反了这一点,因为一个真实的少数派反对意见,可能被一大堆浅层的一致掩埋。这对设计的含义是精确的:并不需要每位批评者都有能力,需要的是这样一个流程,当存在有能力的反对意见时把它浮出来,并在争议点上终止,而不是把它们平均掉。这更接近证明检查、性质测试和红队审查,而不是集成预测。验证者并不复现整个工件,它把一条有争议的主张,压缩成一份小到足以让低成本评判者去检查的证据:一个失败的测试、一个易受攻击的输入、一个被违反的不变量、一条缺失的引用。图 43.2 对比了这两种编排。

cluster_AGG 聚合式:汇集对称判定 cluster_ADV 对抗式:专门化角色,一个缺陷即可 P0 任务 V1 智能体 P0->V1 V2 智能体 P0->V2 V3 智能体 P0->V3 M 多数投票 V1->M V2->M V3->M O1 答案 M->O1 PR Proposer AR 工件 PR->AR C1 批评者:安全 AR->C1 C2 批评者:性能 AR->C2 C3 批评者:一致性 AR->C3 J 低成本评判者:争议分 C1->J C2->J C3->J O2 未解决的争议 J->O2
图 43.2. 多智能体的两种编排。聚合式汇集对称投票者并取多数,因此一个共享的失败模式会在投票中存活。对抗式验证给每位批评者分派一个不同的攻击轴,发现一个缺陷即可,低成本评判者只裁决有争议的那条主张。

汇集与结构化,安排的都是看着同一个任务的智能体。还有第三种安排是把它们串成链,每个智能体消费上一个的输出,而这正是大多数多步流水线实际搭建的方式。它的典型失效,是共识那种失效的镜像:不是相关的一致,而是级联错误,一个阶段的幻觉成了下一个阶段的前提并沿链放大,这是 第 52 章 所评判的那种轨迹内累积的跨智能体版本。同一个 agents-verification 探针在跑并行评审团之外也跑这些顺序链,播下一个早期错误,以度量它传得多远、以及某个靠后的阶段是否曾把它逮住。

第四种安排,也是生产环境最终收敛到的那一种,是委派:各个智能体看到的不再是同一个任务,而是任务的不同切片。一个协调者把任务分解,再派生出若干临时子智能体,每个子智能体在自己的上下文窗口里处理自己那一片,返回的是压缩后的摘要,而不是完整的对话记录。隔离正是目的所在:并行的子智能体各自探索,不会污染彼此的上下文,主智能体推理的对象是摘要,而非原始的工具输出。Anthropic 的研究系统是被测量过的范例:由一个 Claude Opus 4 主智能体协调若干并行的 Sonnet 4 子智能体,在内部研究评测上比单智能体 Opus 4 高出 90.2%,代价是约十五倍于普通对话的词元消耗 (Anthropic 2025);同样的形态在 Claude Code 里叫子智能体(subagent),在 OpenAI 的 Agents SDK 里叫交接(handoff)。它的典型失效是漂移:一个目标、输出格式或边界没有交代清楚的子智能体会走偏,而主智能体看不见它走偏,因为隔离恰好切断了本可以暴露问题的那条通道。第 41 章 测量的是这种隔离在沙箱一侧的代价;这里说的则是协调结构本身。

两种看起来一样的失败

这一路径从汇集走向结构。起点是集成:独立采样,做平均或投票,在采样真正独立时有效。拜占庭容错,是这一思想在分布式系统里的精化,而仔细读它,恰好揭示出为什么把它直接套到智能体上会失败。它有两条贡献在转译之后依然成立,而这两条恰好是从业者最容易跳过的。

第一条,是活性与安全性的分离。一个系统可以以给出错误答案的方式失败,也就是违反安全性;也可以以根本给不出答案的方式失败,也就是违反活性。前文那些实证结果之所以耀眼,正是因为 LLM 共识失败大多是活性失败:智能体并没有收敛到错误答案,它们根本无法收敛 (Berdoz et al. 2026)。活性失败可以通过升级到人类、或换一个模型来恢复。安全性失败则是静默的,会发布出去。把两者合并成一个准确率的系统,优化的是错误的轴。第二条,是承认相关失败正是故障界限在实践中失效的方式。补救的办法不是更多副本,而是打破相关性:异构的模型、异构的提示、异构的工具,必要时还要异构地重述问题本身。

这一分离是本章核心的路由决策,图 43.3 把它画了出来:单一的准确率,把两种要求相反应对的失败混在了一起。

R 多智能体运行 Q 智能体收敛了吗? R->Q L 活性失败 Q->L 否,未达成一致 S 答案正确吗? Q->S 是,收敛到一个答案 ESC 升级到人类或换一个模型 L->ESC OK 发布答案 S->OK F 安全性失败 S->F 否,一致但错误 BLK 阻断:静默且会被发布 F->BLK
图 43.3. 把活性与安全性分开。活性失败,即智能体无法收敛,是吵闹且可恢复的,系统会把它升级。安全性失败,即智能体收敛到错误答案,是静默的,除非被阻断否则会发布出去。把两者合并为一个准确率会优化错误的轴。

从辩论到有界评判者

由活性与安全性的分离往下走,下一步就是辩论。Irving、Christiano 与 Amodei 把 AI 安全构造成一场由较弱的验证者来裁决的辩论 (Irving et al. 2018),而 Brown-Cohen、Irving 与 Piliouras 给出了形式化的扩展:在很大的算力不对称下,soundness 仍然成立,其中诚实策略只使用多项式步数的模拟,不诚实策略却可以使用指数级步数 (Brown-Cohen et al. 2023)。其复杂度直觉是:在最优博弈下,辩论可以回答 PSPACE 问题 (Irving et al. 2018),因为一个只审视玩家分歧最终落到的那个争议叶子的评判者,能验证它本来无法独力产生的结论 (Brown-Cohen et al. 2023)。这一路径最终指向的,不是更大的对称投票者池,而是带有界评判者的专门化对抗角色。

争议所在

增加智能体到底有没有帮助,是这里活跃的分歧。聚合阵营把更多采样加多数投票视为直截了当地可靠,对真正独立的智能体来说它确实如此。但相似 LLM 智能体的实测现实正好相反:简单共识随智能体数量退化,在 Berdoz 等人那里,从 N=4N=4 时的 46.6% 有效共识降到 N=16N=16 时的 33.3% (Berdoz et al. 2026),而共识驱动的辩论能把最初正确的智能体拉向错误答案 (Cui et al. 2025)。结构化的分歧是有争议的补救,而它在两条战线上都有争议。它的 soundness 保证,假设至少存在一位独立诚实的批评者并被浮出来,异构本应提供这一点,却无法证明这一点。而它自身的评估仍然单薄:对随机智能体而言对抗式验证胜过聚合,是从辩论理论和小规模探针论证出来的,还没有覆盖足够广的基准来支撑。只有当智能体的失败真正独立时,才能把「跑更多智能体、投票」当作安全的做法;而对同一家族的模型来说,它们并不独立。

下层约束

编排上的选择,是从下层被规定下来的。因为取自同一个基础模型与训练分布(第 73 章)的批评者共享一个失败模式,投票所依赖的 f<N/3f < N/3 故障多样性假设,在第一轮之前就已经为假了。任何同一家族的复制都无法把它恢复回来。模型层的同质性,正是迫使编排走向异构的原因:不同的模型家族、不同的提示、不同的工具。一个看上去像是顶层编排偏好的决策,其实由它下面那一层的性质所设定。

它的代价

结构化的分歧并非无代价。它的边界也很清楚:许多关键取舍还没有定论。

  • 异构是值得付的成本。混合不同的批评者模型,例如给一个 Claude proposer 配上 Codex 批评者,会引入集成复杂度、跨厂商漂移与协调税。但它也是唯一能恢复出验证数学所需要的那种有用故障多样性的东西。这里没有已知的捷径。
  • 基数是未知的。每个话题一位批评者是下限;上限并不清楚。在相关失败之下,同一话题上加更多批评者,应当只带来边际收益,但这条曲线跨模型家族的形状,还没有一个清楚的实证叙事。
  • 协议会漂移。一场跑得太久的辩论会偏离原始主张,争议分也可能被风格上的摩擦提高,而非实质的分歧。正确的终止判据尚未定下来;稳态检测加上一个硬性的轮次上限,能覆盖常见情况,但并不最优。
  • 活性升级,安全性阻断。一个能区分「智能体无法收敛」与「智能体收敛在错误答案」的系统,可以把前者交给人类、拒绝发布后者。区分不出来的系统,对两种情况都会做错事。这正是把两条轴分开、而不是合并成单一分数的回报,它也直接接入了监督(第 55 章)与智能体评估(第 52 章)。

用一致同意为行动把关

到此为止,这个评审团产出的是一个答案。当那个答案会触发一个副作用,发起一笔退款、合并一条分支、发布一次生产变更时,问题就从「哪个答案最好」转向「系统究竟该不该行动」,于是一致同意成了一道授权关卡,而非一条选择规则。活性与安全的划分恰好映射上来:要行动就要求一个法定数,而把无法收敛升级给人类,而不是去猜。阈值就是控制参数。一个 NN 选一的关卡,只要有任一智能体批准就行动,这把活性拉满、把安全压到最低;一个全票一致的关卡,只在所有智能体都同意时才行动,效果恰好相反;而 NN/3N - \lfloor N/3 \rfloor 这个超多数,正是经典的拜占庭法定数,如此选取是为了让任何一个出错的少数都无法强行促成或阻断这个决定。每一种设定,都是在一次错误行动与一次错误阻断之间取舍,而正确的取点,取决于做错的代价相对于拖延的代价。

当某个参与者不只是错了、而是有敌意时,这道关卡最为关键。一个经由不受信输入触达的子智能体,可能被提示注入(第 58 章)而输出一句自信的谎言,或一记微妙的误导,而在输出端,一句注入的谎言与一次无恶意的共幻觉看起来一模一样。它们的区别在威胁模型。异构性能够打破无恶意共幻觉之间的相关性,但一个能注入一个智能体的攻击者,往往能经由同一通道注入好几个,于是 f<N/3f < N/3 这个界,只在这些被攻陷的部分彼此独立时才成立。这里的 ff 仍是被攻陷或拜占庭故障的参与者数,NN 是参与者总数;界限依赖的是攻击失败模式没有一起移动。因此,一致同意关卡是纵深防御,而非保证:它提高了门槛,使得做错一次行动需要攻陷一个法定数,而非单单一个智能体,这与 第 56 章 中授权所采取的姿态如出一辙。研究探针 agents-verification 度量的正是这一点,它扫过法定数阈值并注入拜占庭智能体,以把一道严格关卡的活性代价,同它所换来的安全性分开。

异构编排还带出一个此前被默认略过的接线问题:来自不同厂商的智能体总得有一套共同的语言。Agent2Agent 协议(A2A)是正在成形的答案,相当于智能体之间边界上的 MCP:每个智能体发布一张智能体卡(agent card),一份描述其能力、端点与认证方式的 JSON 文档,对端则通过 HTTP、JSON-RPC 与服务器发送事件(SSE)驱动任务走完一个定义好的生命周期。Google 于 2025 年 4 月发布该协议,同年 6 月捐给 Linux 基金会,2026 年 4 月发布 v1.0,背后有 150 多家组织支持 (The Linux Foundation 2025; The Linux Foundation 2026)。让跨厂商评审团得以落地的这份线上契约,同时也是一个攻击面:一个接受其他智能体递交任务的端点,也会接受被注入的任务,而这正是上文法定数关卡所要防的那种敌意参与者。

已发布的协议

据此可以得到一个很小的协议。跑一个 proposer 产出工件。分叉出没有共享上下文的独立批评者。每位批评者在第一轮选一个不同的攻击话题,安全、性能、内部一致性、证据缺口,后来的批评者会被告知哪些话题已被占用,从而去选别的。对每位批评者运行交叉质询,直到 proposer 让步或批评者放弃。应用所有让步,然后只把未解决的争议浮出来,并按各自在攻击下存活的时长排序。图 43.4 展示了每位批评者的循环,以及它如何终止。

start ClaimTopic ClaimTopic start->ClaimTopic 分叉批评者,无共享上下文 end Attack Attack ClaimTopic->Attack 选一个尚未被占用的话题 Defend Defend Attack->Defend proposer 回应 Capped Capped Attack->Capped 达到硬性轮次上限 Defend->Attack 攻击成立,下一轮 Conceded Conceded Defend->Conceded proposer 让步 GaveUp GaveUp Defend->GaveUp 批评者放弃 Conceded->end 把修复应用到工件 GaveUp->end 丢弃攻击 Unresolved Unresolved Capped->Unresolved 浮出,按存活轮数排序 Unresolved->end
图 43.4. 对每位批评者运行的交叉质询循环。批评者认领一个不同的攻击话题,随后在攻击与辩护之间交替,直到 proposer 让步、批评者放弃,或触发硬性轮次上限。让步会被应用到工件上;未解决的攻击被浮出并按存活轮数排序。

评判层应当比 proposer 层成本更低、能力更弱,这是双重高效辩论的直觉 (Brown-Cohen et al. 2023)。如果评判者必须和 proposer 一样聪明,就没有得到任何验证收益。一个具体的实现,在评判回路里完全不放模型,用一个纯粹的争议计数给每个攻击评分:

score(a)=rounds_survived(a)+1[re_attacked(a)]\text{score}(a) = \text{rounds\_survived}(a) + \mathbf{1}[\text{re\_attacked}(a)]

有两个设计性质让它在实践中奏效。主张需要地址:每个非平凡的主张都需要一个句柄,文件路径、测试用例、来源引用、需求 id,这样批评者才有一个具体的攻击对象,proposer 才有一个具体的修复对象。没有可寻址性,审查就会退化成修辞。其次,批评者必须通过一个逐字的通道抵达 proposer,也就是一个普通的用户回合,而不是一个会扭曲 proposer 常规辩护行为的模板。这一设计的已发布参考是 Latere 的对抗式评审能力,它通过 Claude Code 的 --fork-session 分叉出一次编码会话,在分叉里跑交叉质询,只把未解决的争议写入磁盘,让根会话记录逐字节不变。它背后的研究探针 agents-verification,把活性与安全性放在独立的轴上,跨并行共识与顺序链实验来度量,而不是把它们合并成单一的准确率。

延伸阅读

  • Berdoz et al., “Can AI Agents Agree?,” 2026. arXiv:2603.01213
  • Cui et al., “Free-MAD: Consensus-Free Multi-Agent Debate,” 2025. arXiv:2509.11035
  • Panickssery et al., “LLM Evaluators Recognize and Favor Their Own Generations,” 2024. arXiv:2404.13076
  • Shi et al., “Judging the Judges: A Systematic Study of Position Bias in LLM-as-a-Judge,” 2025. aclanthology.org
  • Irving et al., “AI safety via debate,” 2018. arXiv:1805.00899
  • Brown-Cohen et al., “Scalable AI Safety via Doubly-Efficient Debate,” 2023. arXiv:2311.14125
  • Anthropic, “How We Built Our Multi-Agent Research System,” 2025. anthropic.com
    Anthropic 的研究系统采用协调者-工作者模式:由 Claude Opus 4 主智能体协调并行的 Sonnet 4 子智能体,在内部研究评测中比单智能体 Opus 4 高出 90.2
  • The Linux Foundation, “Linux Foundation Launches the Agent2Agent Protocol Project to Enable Secure, Intelligent Communication Between AI Agents,” 2025. linuxfoundation.org
    2025 年 6 月 23 日,Linux 基金会接管 Google 于 2025 年 4 月发布的 Agent2Agent(A2A)协议,创始贡献者包括 Google、AWS、Cisco、Microsoft、Salesforce、SAP 与 ServiceNow。
  • The Linux Foundation, “A2A Protocol Surpasses 150 Organizations, Lands in Major Cloud Platforms, and Sees Enterprise Production Use in First Year,” 2026. prnewswire.com
    A2A 于 2026 年 4 月发布 v1.0 稳定规范,获 150 余家组织支持,并集成进 Azure AI Foundry、Amazon Bedrock AgentCore 与 Google Cloud 等平台。

评论

登录后评论