多智能体系统的"最后一公里"几乎都是同一件事——把若干 Agent 的输出收敛成一个决策。看似稳的"多数投票"恰恰是最贵的错觉:当前沿模型在相似语料上训练、错误高度相关时,投票面板常常打出 3:0,不是因为答案对,而是因为三个 Agent 同源同错。Kaesberg 等人在 ACL 2025 Findings(arXiv:2502.19130)的七协议实测里给出关键分水岭——投票协议在推理任务上 +13.2%,而共识辩论在知识任务上 +12%;但在有争议题上,纯多数投票的失效率逼近 24%。本文沿"多数投票→辩论收敛→仲裁裁判→置信加权→推理审计→少数哨兵"六式拆解共识税,给出每式的成本、失效边界与框架落地。
经典分布式共识(Raft、Paxos、PBFT)的全部数学前提,是节点要么正确、要么崩溃(crash fault),少数坏节点被多数票淹没即可。多智能体系统恰恰相反:节点几乎不崩溃,却会集体给出同一个错答案。一篇被广泛引用的综述(tianpan.co, 2026-04)把它概括为"drunk nodes"问题——Raft 假设至多 f 个拜占庭节点,但 LLM Agent 的错误是系统性相关的,f 可以是全部。
这正是 Correlated Errors in LLMs(arXiv:2506.07962)量化的结论:在一个排行榜数据集上,不同模型的答案一致性高达约 60%,且这种相关性来自共享训练语料——"每个前沿模型大致都吃同一份数据"。结果是:投票所需的"独立性假设"在多智能体里默认不成立,多数票的置信度被系统性高估。所谓"共识税",就是为这个被高估的置信度反复买单:要么在简单题上白烧调用预算,要么在难题上被同源错误统一收割。
| 共识式 | 收敛机制 | 复杂度/成本 | 失效边界 | 实测增益 | 框架原生支持 |
|---|---|---|---|---|---|
| ① 多数投票 / Self-Consistency | 计票取众数 | 低(N 次并行) | 同源相关错误 | 推理 +13.2% | 需手写聚合节点 |
| ② 辩论收敛(MAD) | 多轮批判迭代 | 高(多轮×N) | 说服漂移、群体思维 | 知识 +12% | AutoGen GroupChat |
| ③ 仲裁裁判(LLM-as-Judge) | 单裁判裁决 | 中(N+1) | 裁判与被裁判同偏 | 弱于多数投票 | 需手写 |
| ④ 置信度加权 + EMS 早停 | 加权计票/提前终止 | 中(自适应) | 置信度自报失真 | 调用数显著下降 | 需手写 |
| ⑤ 推理审计(AgentAuditor) | 推理树路径搜索 | 高 | 树构造成本 | 超越多数投票与裁判 | 研究原型 |
| ⑥ 少数哨兵(Minority Sentinel) | 元分类器翻盘 | 低(叠加层) | 哨兵误判 | 挽回争议题 | 需手写 |
多数投票(Majority Voting)与 Self-Consistency(Wang et al.)是多智能体共识的事实基线:让 N 个 Agent(或 N 条采样路径)独立作答,取众数。Kaesberg 等人在推理任务上测得 投票协议带来 +13.2% 的稳定增益——这是因为独立采样能平均掉单条路径的随机噪声。关键代码极其朴素:
from collections import Counter
answers = [run_agent(task, seed=s) for s in range(N)]
final, _ = Counter(answers).most_common(1)[0]
陷阱在于"独立"二字。当 N 个 Agent 来自同一家前沿模型、同一份系统提示,它们的错误正相关,众数只是把同一个错答案放大成"压倒性共识"。arXiv:2506.07962 在排行榜数据集上测得模型间一致性约 60%——意味着多数票里有相当比例是"同源同错"而非"独立佐证"。实战后果:在容易题上多数投票稳赚,在有争议题上失效率逼近 24%(tianpan.co, 2026-04),而争议题恰恰是部署后真正会咬人的长尾。变现层面,多数投票最适合做"低成本门槛闸"——简单分流、低风险判别;但要明确写进训练营话术:它不是正确性保证,而是噪声滤波器。
Multi-Agent Debate(MAD)让 Agent 互相批判、迭代修订,常被当成多数投票的升级版。NeurIPS 2025 的 Debate or Vote(arXiv:2508.17536)给出反直觉结论:辩论在知识密集型任务上优于投票(共识式 +12%),但在纯推理任务上未必跑赢简单投票——因为辩论引入了新的失效模式。两条最致命:
第一是群体思维(groupthink)。Demystifying Multi-Agent Debate(ACL 2026 Findings)把辩论增益归因于两个变量——置信度与多样性;一旦多样性塌缩,辩论就退化成"互相背书"。第二是说服漂移。Nature Scientific Reports(s41598-026-42705-7)在受控实验里证明,Agent 可被一个自信但错误的同伴"说服"到集体改错——合作诚实假设在对抗场景下直接破产。
# AutoGen 风格:GroupChat 本身只管轮转,收敛语义要自己加
from autogen import GroupChat, GroupChatManager
gc = GroupChat(agents=[a1, a2, a3], messages=[],
speaker_selection_method="round_robin", max_round=3)
# 警告:max_round 越大,说服漂移与 token 成本同步飙升
manager = GroupChatManager(groupchat=gc)
辩论的甜区是有外部可验证信号的知识任务(事实核查、检索增强问答),苦区是无 ground-truth 的开放推理——后者越辩越贵、越漂越远。
为省去多轮辩论,很多团队改用单裁判模式:N 个 Agent 出方案,一个更强的 Judge 模型裁决。这条路在 AgentAuditor(arXiv:2602.09341)的对照里全面输给多数投票,原因有二。其一,Judge 与被裁判模型往往同源,裁判偏见与错误同向——同源相关性不只污染投票,也污染仲裁。其二,单点 Judge 把多智能体"分布式中立性"丢光,共识退化为单点推理,多 Agent 的去相关价值被一笔勾销。
proposals = [agent.propose(task) for agent in panel]
winner = judge.decide(task, proposals) # 若 judge 与 agent 同源,≈ 单模型自评
仲裁不是不能用,而是Judge 必须来自不同模型家族、不同提示模板,最好叠加规则校验,否则它只是把共识税换了个收据名目。变现上,单裁判适合需要"可解释裁决日志"的合规场景(给出选择理由),但要把"换模型族"写进工程红线。
多数投票与辩论都是"烧满 N 次/满轮"的固定预算。两类优化在 2026 年成为标配:置信度加权(用 Agent 自报或校准后的置信度加权计票)与早停(一旦某答案达到法定多数就停)。Efficient Majority-then-Stopping(arXiv:2604.02863,EMS)把二者合成自适应框架,在不损精度的前提下显著下调 Agent 调用数——直接把共识税从"按人头付"改成"按需付"。
def weighted_early_stop(agents, task, quorum=0.6, budget=8):
tally = {}
for a in agents[:budget]:
ans, conf = a(task) # ans: 答案, conf: 校准置信度
tally[ans] = tally.get(ans, 0) + conf
if tally[ans] / sum(tally.values()) >= quorum:
return ans # 法定多数达成,停手
return max(tally, key=tally.get)
代价是两个新失真源:自报置信度失真(模型倾向高估自身)与早停触发偏置(前几个 Agent 偶然同向就提前锁死)。对策是用历史表现校准置信度,并把法定阈值与题目难度挂钩——简单题低阈值快停,难题高阈值逼足 N 票。EMS 式是最具产品化潜力的:它直接把成本曲线写进卖点,适合按调用计费的 SaaS 包装。
最激进的一式直接废除投票。USC 团队的 AgentAuditor(arXiv:2602.09341)把多个 Agent 的推理链汇成一棵 Reasoning Tree,用路径搜索取代计票:审计每条分支的证据有效性,剪掉无效分支,再沿有效路径收敛。它在基准上同时超越多数投票与 LLM-as-Judge,因为它的核心机制正面对冲了"错误相关性"——就算 N 个 Agent 都走错,只要错误分支能被审计证据识别并剪除,多数就压不住少数对的那条。
tree = build_reasoning_tree([agent.trace(task) for agent in panel])
for branch in tree.nodes:
if not evidence_audit(branch): # 证据审计:剪掉站不住的分支
tree.prune(branch)
final = tree.search_best_path() # 在幸存路径里选最优
代价是审计本身要消耗算力,且审计器的质量决定上限——审计器若也同源同错,剪枝就是帮倒忙。AgentAuditor 适合高价值、低频次的决策(医疗二诊、法律要式审查、安全放行),在这些场景里"对一次"的价值远超多花几倍调用费。训练营化时,它是"从投票到审计"这条认知升级线的旗舰案例。
并非所有团队都负担得起推翻投票改走推理树。Minority Sentinel(arXiv:2606.29270)走的是轻量叠加路线:训练一个元分类器,从辩论中抽取多维特征(分歧度、置信度分布、论证强度),输出一个信号——这一次该不该推翻多数票、改采少数意见。它不替换投票,只在"判定为争议题"时介入翻盘,专门啃那 24% 的失效长尾。
vote = majority(panel) # 先按常规计票
features = extract_debate_features(panel)
if sentinel.should_overturn(features): # 哨兵判定为争议题
vote = minority_with_evidence(panel) # 改采有证据支撑的少数意见
它的工程哲学值得记一笔:与其追求一个万能共识算法,不如在多数投票之上叠一个"争议检测器"。哨兵的判错成本是误翻盘,因此阈值要偏保守(宁可放过、不可错杀),并用线上回流持续校准。这是性价比最高的"共识补丁",几乎可以无侵入地加进任何已有投票管线。
把六式落到框架,会发现一个尴尬事实——主流多智能体框架默认都不提供稳健共识。AutoGen 的 GroupChat 只管"谁来发言"(speaker_selection_method:round_robin/auto/manual),收敛靠你外加 summarizer/voter Agent;LangGraph 把共识表达为 StateGraph 里的聚合节点(aggregator / voter node),投票语义全靠手写;CrewAI 的 Process.hierarchical 用一个 manager 分派任务,本质是仲裁式而非投票式;OpenAI Agents SDK 走 handoff,根本没有多对一收敛原语。
# LangGraph:共识 = 一个手写的聚合节点
from langgraph.graph import StateGraph
graph = StateGraph(state_schema)
graph.add_node("panel", run_panel) # N 个 Agent 并行作答
graph.add_node("voter", majority_vote) # 共识语义在此,框架不帮你
graph.add_edge("panel", "voter")
这意味着共识税几乎全靠应用层自己扛:选型时不要把"框架内置多 Agent"等同于"框架内置好共识"。真正的决策点是——你的场景吃的是哪一式(推理 vs 知识、高频 vs 高价值、可验证 vs 开放),再决定在哪个框架的手写聚合节点里塞哪一式。
flowchart TD
Q[任务进入] --> Diff{分歧度评估}
Diff -->|低分歧·简单题| MV[多数投票]
Diff -->|中分歧·知识题| MAD[辩论收敛]
Diff -->|高分歧·争议题| Audit[推理审计/少数哨兵]
MV --> EMS{置信度+EMS早停}
EMS -->|达法定多数| OUT[输出]
EMS -->|未达| MAD
MAD --> Judge{需可解释裁决?}
Judge -->|是| ARB[跨模型族仲裁]
Judge -->|否| MV2[计票]
Audit --> PRUNE[证据剪枝]
PRUNE --> OUT
ARB --> OUT
MV2 --> OUT
OUT --> Sink{线上回流}
Sink -->|校准置信度/哨兵| Diff
classDef fail fill:#ffd6d6,stroke:#c0392b
class MV,MV2 fail
红色标注的多数投票节点,是整条链路里最被高估的一环——它的失效不是偶发,而是在高分歧争议题上结构性必然(同源相关错误)。共识设计的核心动作,就是用上游的分歧度评估,把流量从红节点引导到审计/哨兵分支。
%%{init: {'themeVariables': {'xyChart': {'backgroundColor':'#fafafa'}}}}%%
xychart-beta
title "共识调用成本 vs 任务分歧度"
x-axis "分歧度(低 → 高)" ["L1","L2","L3","L4","L5"]
y-axis "归一化调用成本" 0 --> 10
bar "多数投票" [2, 2.5, 3, 4, 5]
bar "辩论收敛" [3, 4.5, 6, 8, 9]
bar "推理审计" [5, 6, 7, 8.5, 10]
line "EMS早停节省" [1.8, 2.0, 2.2, 2.5, 2.8]
成本曲线的潜台词:分歧度越高,共识越贵,但也越不能省。EMS 早停(虚线)在低分歧区省得最多,到高分歧区几乎省不动——因为争议题逼着你跑满 N 票甚至上审计。这是"共识税"随规模与难度双重飙升的几何体现,也解释了为何在高价值低频场景,宁可直接上推理审计而非反复投票。
voter 节点。选型的真正问题从来不是"用哪个框架做多 Agent",而是"你的流量分布落在分歧度坐标的哪一段"——分歧度定式,式定成本,成本定能不能商业化。
本文由 AI 智能体实战分析系列出品。关注「51学通信」与站长爱卫生(微信:gprshome201101),获取每周多智能体协议实测与选型拆解。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
