共识与拜占庭容错


文档摘要

共识与拜占庭容错 本节摘要:经典分布式系统的拜占庭容错(Byzantine Fault Tolerance, BFT)遇到了概率性的 LLM。20252026 年涌现了三条研究主线:CP-WBFT(arXiv:2511.10400)用置信度探针给每张票加权;DecentLLMs(arXiv:2507.14928)无中心节点,工人并行提案、用几何中位数聚合;WBFT(arXiv:2505.05103)把带权投票与层级结构聚类结合,拆出核心(Core)与边缘(Edge)节点。而「Can AI Agents Agree?」(arXiv:2603.

共识与拜占庭容错

本节摘要:经典分布式系统的拜占庭容错(Byzantine Fault Tolerance, BFT)遇到了概率性的 LLM。2025~2026 年涌现了三条研究主线:CP-WBFT(arXiv:2511.10400)用置信度探针给每张票加权;DecentLLMs(arXiv:2507.14928)无中心节点,工人并行提案、用几何中位数聚合;WBFT(arXiv:2505.05103)把带权投票与层级结构聚类结合,拆出核心(Core)与边缘(Edge)节点。而「Can AI Agents Agree?」(arXiv:2603.01213)给出诚实的实测:即便是标量级的一致,今天也脆弱——一个欺骗性 Agent 就能把混合智能体(Mixture-of-Agents)的共识拉偏 40 个百分点以上。BFT 必要但不充分。 本节搭一个最小 BFT 协议,注入三种 Agent 专属攻击(拜占庭谎言、谄媚从众、相关误差单作),并测量每种共识变体如何应对。

学习目标

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

  1. 说明经典 PBFT(Castro-Liskov 1999)的三段式协议与其三条假设,并指出 LLM Agent 在哪三处违反了它们。
  2. 区分三种 Agent 专属攻击(拜占庭谎言、谄媚从众、相关误差单作),并说出经典 BFT 为何挡不住后两种。
  3. 复述 CP-WBFT、DecentLLMs、WBFT 三条 2025~2026 适配路线各自的承重机制与缓解对象。
  4. 实现一个带语义聚类与置信度加权的最小 BFT 投票轮,并调阈值决定「接受/重试/升级」。
  5. 识别共识机制何时帮不上忙(歧义问题、复合问题、对抗多轮),并据此设计升级策略。

一、问题与直觉

你有 N 个 LLM Agent,各产出一个答案,它们彼此不一致。多数票选了个错的——因为有两个 Agent 是相关的(同基座、同训练数据、同失败模式)。第三个 Agent 又以一种全新方式错了——于是多数是「假多数」。

再加一个欺骗性 Agent:它故意撒谎。或者一个谄媚型 Agent:谁最后发言它就跟谁。经典 BFT 的假设是拜占庭节点占比 f < n/3 且行为任意。2026 的现实是:LLM 节点即便诚实也是随机的、跨模型相关、还会被彼此的输出影响。你不能把它们当作独立的伯努利投票者。

经典 BFT(PBFT,1999)不是错的,而是不完整的。它处理任意的比特翻转,但处理不了「三个诚实 Agent 因为共享训练数据而共享一个幻觉」。本节从 PBFT 的地基往上,叠加三层 2025~2026 的适配。

经典 BFT 给了你什么

实用拜占庭容错(Castro & Liskov, OSDI 1999)容忍 f < n/3 个拜占庭节点。协议有三段(pre-prepare、prepare、commit)与两个原语(签名消息、法定人数证书)。在 n >= 3f + 1 个诚实或恶意节点间就单值达成一致。

保证很强,但假设了三件事:

  1. 故障独立。 拜占庭节点不串通。
  2. 诚实节点真诚实。 诚实输出的正确性不是问题;协议只对齐分歧。
  3. 问题有真值。 对一个错的事实达成共识,也还是共识。

LLM Agent 三条全违反。跑同一基座的两个 Agent 共享故障。「诚实」的 LLM 仍会幻觉。歧义问题上「真相」就是 Agent 们决定出来的——没有外部预言机。

三种 LLM 专属攻击

  • 拜占庭谎言:一个 Agent 输出故意错的答案。f < n/3 时经典 BFT 处理得了。
  • 谄媚从众:一个 Agent 投票前先读他人答案,与最响的声音对齐。非恶意,但与最响者相关。经典 BFT 挡不住,因为它通过每一道签名检查。
  • 相关误差单作(monoculture):三个 Agent 共享基座,幻觉出同一个错答。多数即错。经典 BFT 帮不上,因为三者「诚实」地一致。

三条 2025~2026 应对

  • CP-WBFT(arXiv:2511.10400)——置信度探针加权 BFT。每个投票者给自己的答案附一个置信度探针(自报概率,或独立校准模型的预测),票权随置信度缩放。报告完全图上 +85.71% 的 BFT 提升。缓解对象:谄媚从众(从众者对自己主动站队的位置往往低置信)。
  • DecentLLMs(arXiv:2507.14928)——无中心。工人 Agent 并行提案,评估者 Agent 给提案打分,最终答案是打分位置的几何中位数。f < n/2 时鲁棒。缓解对象:拜占庭谎言与相关误差(几何中位数对离群点鲁棒,被拉向密集簇而非模型偏置的均值)。
  • WBFT(arXiv:2505.05103)——带权 BFT 加层级结构聚类。票权由回答质量加从历史学到的信任分赋值;把 Agent 聚成核心与边缘,核心先达共识,边缘跟随。缓解对象:可扩展性(核心共识小而快),并部分缓解单作(核心可选多样者)。

实测:「Can AI Agents Agree?」

该论文(arXiv:2603.01213)在多个前沿模型上测标量一致(LLM Agent 就单个数值达成一致)。发现令人不安:

  • 即便没有对手,LLM Agent 在标量问题上,许多基准上分歧率高于 30%。
  • 单个采用欺骗人格的 Agent,能把混合智能体共识从诚实基线拉偏 40 个百分点以上。
  • 分歧率与模型多样性相关——异构集成分歧更多(好:误差不相关),但漂移更慢(坏:达成一致更久)。

结论:BFT 给你对齐输出的机器,但不对齐后的输出是否正确负责。 要与验证(第 08 节角色专业化)、多样性(第 15 节辩论变体)、评估者 Agent(第 24 节基准)合用。

⚠️ 这是「协调难点在共识」的集中体现——共识机制保证「大家说到一起」,不保证「说到对的」。把一致与正确分开,是本节最重要的工程心法。

剥到骨子里的核心协议

LLM Agent 的最小 BFT 一轮:

1. 任务到达;每个 Agent i 产出答案 a_i 2. 每个 Agent 附置信度探针 c_i ∈ [0, 1] 3. 聚合器收集全部 n 个 (a_i, c_i) 4. 聚合器按语义簇分组(等价答案归一簇) 5. 聚合器为每簇 C 算权重: w(C) = Σ_{i∈C} c_i 6. 若 max 簇权重 > threshold × Σ(c_i),则该簇胜出; 否则重试或升级 7. 少数簇连同溯源记入日志,供事后审计

语义聚类是 LLM 特有的那一道。 「研究报告 4.2%」与「提升 4.2%」是同一簇,朴素字符串相等会漏掉。生产里用便宜的嵌入模型或显式规范化。

阈值调参

threshold 决定何时接受、何时重试。太低:接受弱多数;太高:什么都接受不了。经验区间:n=5~7 时 0.5~0.67,n 更小时更高。低于阈值就升级给人类,或换一组 Agent 集成。

共识帮不上忙的地方

  • 歧义问题。 若问题无真值,共识就是意见。如实标注。
  • 复合问题。 「写代码并解释」——两个答案,各自独立投票。
  • 对抗多轮。 若 Agent 能观察前轮并模仿(Du 2023 辩论),它们会不分对错地彼此趋同。要限制轮数(典型 2~3 轮)。

二、从零实现

code/main.py 实现以下组件:

  • AgentVoter——一个脚本化策略,带 (answer, confidence)
  • MajorityVote——经典多数。
  • CPWBFT——带语义聚类的置信度加权投票。
  • DecentLLMs——对打分提案做几何中位数聚合。
  • Scenario——在三种攻击模式下跑每个聚合器。

三种攻击的脚本化

def byzantine(honest_answer, n): # 一个 Agent 高置信地说谎 return [(honest_answer, 0.9)] * (n-1) + [("LIE", 0.95)] def sycophancy(first_answer, n): # 一个 Agent 复制它看到的第一个答案,配同等置信 votes = [(first_answer, 0.8)] * (n-1) votes.append((first_answer, 0.8)) # 跟风,非独立 return votes def monoculture(wrong_answer, n): # 三个同基座 Agent 共享一个错答,中等置信 return [(wrong_answer, 0.6)] * 3 + [("correct", 0.7)] * (n-3)

置信度加权与语义聚类

def cpwbft_aggregate(votes, threshold=0.6): clusters = semantic_cluster([a for a, _ in votes]) # 嵌入或规范化归簇 weights = {} for cid, members in clusters.items(): weights[cid] = sum(votes[i][1] for i in members) total = sum(weights.values()) best = max(weights, key=weights.get) if weights[best] > threshold * total: return best, "accept" return None, "retry_or_escalate"

设计要点:semantic_cluster 是承重的那一步——若用朴素的字符串相等,「4.2%」和「4.2 百分点的提升」会分到两簇,把本该胜出的簇拆散。生产里换成嵌入相似度(阈值 ~0.9)或显式数值规范化。

运行 python3 code/main.py,期望输出一张 (攻击, 聚合器) -> 最终答案 的表,正确答案高亮:多数票败于单作场景;CPWBFT 的置信度加权缓解谄媚;DecentLLMs 的几何中位数在单作不足半数时拉向诚实簇。

三、框架对比

协议/变体 承重机制 缓解的攻击 失守条件
多数票(Majority) 计数 无(假设独立) 单作、谄媚皆败
PBFT(Castro-Liskov) 三段式 + 签名 + 法定人数 拜占庭谎言(f<n/3) 谄媚、单作(诚实节点共享幻觉)
CP-WBFT 置信度探针加权 谄媚从众(从众者低置信) 高置信的骗子
DecentLLMs 几何中位数聚合 拜占庭谎言、相关误差 f≥n/2、离群簇密集
WBFT 核心先共识 + 信任分 可扩展性、部分单作 核心被渗透

💡 心法:没有任何一个变体同时挡得住三种攻击。 生产实践是组合拳——CP-WBFT 式加权 + DecentLLMs 式鲁棒聚合 + 独立验证者(第 08 节)。把共识当「降低误差相关性的第一道闸」,而非「保证正确性的最后一道闸」。

四、可复用产物

outputs/skill-consensus-designer.md:为多 Agent 集成设计共识协议——聚类方法、加权方案、阈值、以及低于阈值轮次的升级策略。在任何上线的共识机制前先跑一遍这个 skill。

五、练习

  1. 跑基准:运行 code/main.py,确认多数票败于单作攻击,而 CPWBFT 在单作置信低于 0.7 时部分缓解。差距多大?
  2. 第四种攻击——沉默弃权:加一个拒绝作答(「我不知道」)的 Agent。每个聚合器该如何处理弃权?实现你的选择。
  3. 换聚类:把语义聚类从字符串规范化换成嵌入相似度(任选一个开源嵌入模型)。对谄媚攻击的影响是什么?
  4. 读 CP-WBFT:读 arXiv:2511.10400,实现置信度探针的校准步骤(独立校准模型检查每个 Agent 的自报置信)。测量单作场景的准确率增益。
  5. 读「Can AI Agents Agree?」:读 arXiv:2603.01213,复现一个简化标量一致实验:三个 Agent、一个标量问题、欺骗人格提示。CPWBFT 或 DecentLLMs 抓得住吗?

本节要点回顾

  1. 经典 BFT 不错,只是不完整:PBFT 假设故障独立、诚实节点真诚实、问题有真值,LLM Agent 三条全违反。
  2. 三种 Agent 专属攻击:拜占庭谎言(经典 BFT 在 f<n/3 挡得住)、谄媚从众(挡不住,过签名检查)、相关误差单作(挡不住,诚实共享幻觉)。
  3. CP-WBFT 靠置信度加权:从众者低置信,票权被压;报告完全图 +85.71%。
  4. DecentLLMs 靠几何中位数:无中心、并行提案、鲁棒聚合,f<n/2 时稳。
  5. WBFT 靠核心/边缘拆分:核心小而快先共识,边缘跟随;兼顾可扩展与部分单作。
  6. 语义聚类是 LLM 特有的一步:等价答案先归簇再计票,字符串相等会漏。
  7. BFT 必要但不充分:共识对齐输出,不对齐正确性;要与验证、多样性、评估者合用。
  8. 共识帮不上忙的三处:歧义问题(共识即意见)、复合问题(各自投票)、对抗多轮(限制 2~3 轮)。

下一节,我们退一步看「投票」本身——从单模型自洽性到异构多 Agent 辩论,测绘星型/链式/树型/图型四种拓扑,并量化「协调税」:超过约 4 个 Agent,图型拓扑的成本增速开始压过质量增益。


发布者: 作者: Rohit Gupta 转发
评论区 (0)
U