Global Coherence:局部都对,团队仍错

发布于 2026年10月4日 作者 Remy

三个角色一起做 TeamBench 任务:Planner 写计划,Executor 跑命令,Verifier 验收,整队只有 20 次命令额度。每一次花费在局部都说得通——没人「乱点」;但额度属于队伍、不属于任何人,结果普通队伍在 5/5 跑里把共享预算花超。把实时计数塞进上下文,仍有 4/5 超支;把拒绝写进 commit,超支变成 0/5。Xin Heng(Tote AI)在 arXiv:2610.02036(Global Coherence: When Every Agent Is Right and the Team Is Still Wrong,2026-10-01)把这类现象收成一句硬命题:

local validity ⇏ global coherence
局部合法 推不出 全局一致。

这不是「模型不够聪明」的软抱怨。论文把它立成 agent 系统的一类独立失败:问题常在状态、可辨识性(identifiability)与 commit,而不在再堆一轮推理。九项研究里,frontier 模型在能看见决定性事件时 40/40;事件被藏起后,各推理/角色/投票/工具臂的精度与 1/3 随机猜相容;补一句权威事实回到 40/40。共享 20-call 预算、τ²-bench Telecom 上已提交变更被静默回滚、分裂视图下的本体对齐碰撞——同一条边界反复出现:决定合法性的区分若没人拥有,模型再强也补不齐。[1]

站内已经写过几层 harness 控制面:MoMHa 谈准确率/安全/token 三目标;Harness 控成本 谈路由与账单;默认硬预算帽 谈被部署服务的停机线;Exactly-Once 谈副作用契约;评测可靠性 谈榜上数字在支持哪类主张;早期还有 多智能体系统 总览。本篇补的是更上游的一刀:多智能体失败常常是「缺状态 / 缺主人」,不是「缺更大模型」。 规格写给两件事——context engineering(上下文里必须放下哪些区分)与 harness(运行时必须拥有并检查什么)。

两类失败:看不见,与拼不拢

论文把全局一致拆成两条失败路径,后面的实验分别打它们。

第一类是观测别名(observation aliasing)。 两个全局世界对每个参与者看起来一样,却要求不同合法动作。对 LLM agent,那「看起来一样」就是同一段 context。Observation-Aliasing Impossibility(观测别名不可能定理)说得很绝:策略能从观测保证挑出合法动作,当且仅当「与该观测相容的每个世界」共享至少一个合法动作。若两个世界观测相同、合法动作集却不相交,再多推理、角色拆解、消息往返、随机采样,都不能保证选对;(k) 个彼此不可区分、合法动作两两不相交的世界上,最优随机策略的最坏成功概率恰好是 (1/k)。一句话:更强模型在同一窗口里搜得更好;它看不见窗口外的区分。Context engineering 有用,当且仅当它把缺失区分塞进窗口;同一窗口上加长思考不算。[1]

第二类是「局部都过、全局拼不拢」。 信息其实都在,只是切成了碎片。三个人各自用本地合法、可逆的单位换算,三角形绕一圈却回不到原点;三个角色各自合法花钱,总和却捅破共享预算。错误不在任何一条边上,而在环或无人拥有的不变量上。两两核对在树状重叠上够用;环可以让两两都过、整体仍不可能;对任意固定局部检查规模,都能构造「任意 (k) 个约束可同时满足、全体却不可」的例子。[1]

两条失败由同一根绳拴着:不可能定理告诉 harness 必须保住哪些区分;第二类失败是那些区分在「切开视图 → 编码翻译 → 动作改写」路上被弄丢之后会发生什么。经理 agent 不是解药——它只是又一个带局部视图的提案者,受同一条定理约束。设计落点是:模型提案;harness 拥有区分,并在 commit 上做检查。[1]

Study I:看不见的事件,再强推理也像猜

Study I 把别名做成可构造的探针。任务是一份 60 事件修订日志:三个团队对同一参数 commit / revert / re-apply,agent 必须报出当前 head;服务器拒绝错误 parent。末事件三选一,决定三个不同 head。可辨识版里末事件可见;别名版里末事件被抹掉,于是三段真相共用同一段 prompt,机会水平是 (1/3)。[1]

结果干净得几乎像演示:

  • 决定性事件可见时,各臂(低/中/高推理、Planner+Verifier、五票多数、工具)均为 40/40。
  • 事件隐藏时,测试过的推理 / 角色 / 投票 /「看不见事件」的工具臂观测精度约 12–17/40,无一显著高于 (1/3);与随机猜相容。
  • 加一句权威事实(「当前 head 是 (X)」)→ 40/40;能读到被抹事件的查询工具同样 40/40,只能读可见笔记的对照工具仍停在约 13/40。[1]

论文写明:有限面板支持预测对比,但不把「经验上等于机会」写成已证;一般不可能来自任务构造与定理,不来自四十题的零结果。模型在可见条件上全对,说明能力在;隐藏后仍像猜,说明瓶颈是可辨识性,不是「再多想一会儿」。对建造者:排障时先问「决定动作合法性的那一比特,是否进了 context」,再问「要不要换更贵的模型」。[1]

Study IV:共享预算——看见 ≠ 拥有

TeamBench 上的共享 20-call 预算是第二类失败的教科书。命题 3.3:共享预算不能靠各自独立的局部检查保住——每人花自己那份都合法,总和可以超。两种修法有效:commit 时由权威账本拒绝,或把预算拆成各角色 escrow 配额((\sum B_i = B))。[1]

预注册面板上的安全计数(LH2,五种子):

条件超支
普通队伍5/5
展示实时计数 / 可查询计数(信息不执法)4/5
commit 强制执行0/5
按角色 escrow 配额0/5

强制执行这一侧,观测到的平均任务进度在五跑对比里没有塌掉(面板太小,作者不声称非劣效)。信息臂把中位数调用从约 70 压到约 29,但仍有 4/5 超支——把数字塞进 prompt 不是所有权。这和站内 默认硬预算帽 同一分叉:告警 / 可见计数是观测;同步拒绝才是执法。也和 Harness 控成本 同层:帽必须落在能挡住下一次调用的路径上,而不是落在又一个「会看仪表盘的经理 agent」身上。[1]

第一轮面板还贡献了一条工程教训:guard、任务与 grader 若计量的不是同一变量,ledger「形同虚设」。对齐「权威单位 = 全队 shell run 调用次数之和、到 20 拒绝」之后,效果才出来。命题 2.4 的运行时说法:guard 只约束它拥有的状态。[1]

Study V:静默回滚——当前态检查也会别名

τ²-bench Telecom 里,用户与助手在不同权限下改同一环境。论文预注册 222 episode 面板里,有一类注入故障特别刺眼:已经 commit 的变更被静默撤销。只做普通策略 / 调用时检查的 agent,在基准自带 grader 上大约 0.07;带 coherence harness 的一侧 1.00——harness 发一条通知,agent 在 15/15 episode 里重做变更。当前态检查还会在过期报价上 commit(文中 10/10 episode);那是 Proposition 4.1 的 stale-read:提案依赖过的版本集合(read-set)必须在 commit 时仍成立,而 read-set 是「进过 context、影响过提案」的权威项,不只是最终工具调用摸到的字段。[1]

同一次研究里,当注入变更直接违反策略规则时,普通策略检查与 coherence harness 打平——理论预测的「已有工具拥有相关不变量 → 通用 harness 不应额外得分」。边界两边都要:只预测「我们总赢」的理论无法被证伪。[1]

Study IX:两两看不见的碰撞,网络级检查才拿得掉

本体对齐网络在显式 unique-name 诊断下,2018–2024 的公开 OAEI 输出里,23/45 张网带有「两两看不见、同本体身份碰撞」。Agent 拿到分裂视图后,在 9/40 次合并里复现这类隐藏碰撞;单人全视图 0/40;两两检查从不开火;网络级检查去掉全部九个。现行「发给所有人」的修复把平均 F1 从 0.796 降到 0.774——检出成功,修复路由仍开放。这就是「环上的 holonomy」:每条「same-as」边都像样,绕一圈却把两个不同类粘成一类。只做 handoff review 的流水线,会稳定地漏掉这类错误。[1]

框架五件套:用梁长与预算讲人话

形式记号是 (\mathfrak{X}=(H,\mathcal{C},\mathcal{G},\mathcal{F};D))。不必先吞范畴论;用论文里的梁例子就够干活。

想象 Design、Fabrication、Cost 三个 agent 共享一根梁,各自用米 / 毫米 / 英寸记账。

  1. (H)(拓扑 / 谁与谁重叠)
    记录作用域在何处相交、共享哪块状态。三人共持梁长 → 三角形。重叠是树时,两两对齐往往够;是环时,两两可以通过、整体仍矛盾。Hub-and-spoke 常常好用,因为 hub 持有共享字段时,重叠变成星形——一种树。代价目标是交互图的宽度,不是 agent 个数:一百个流水线上的人可以很便宜;五个密耦合的人可以很贵。[1]

  2. (\mathcal{G})(群胚 / 只是换写法)
    (1,\mathrm{m})、(1000,\mathrm{mm})、(39.37,\mathrm{in}) 是同一根梁的编码;箭头是可逆换算。关键检查:沿任意环组合翻译,应回到恒等。某个边写错成 (\div 25) 而不是 (\div 25.4),单边仍「像真的」,绕一圈 (1,\mathrm{m}) 变成 (1.016,\mathrm{m})。保留翻译本身,而不只保留「等价」标签;生成树(spanning forest)可在线性时间证明一致性,最小代价修复却可以是 NP-hard——所以优先在 commit 前检出,而不是事后猜该改谁。[1]

  3. (\mathcal{F})(粘合 / 是否来自同一个世界)
    三段本地数据在重叠上一致,是否对应恰好一根梁?「每个 agent 都对、队伍仍错」在这里变成 harness 可检查的条件:拒绝「两两匹配却不来自任何全局状态」的组合。[1]

  4. (\mathcal{C})(范畴 / 真正改世界的动作)
    把梁改成 (1.2,\mathrm{m})、再下单买 $720 钢材——这是状态变更,多数不可逆,顺序有意义。换单位是 (\mathcal{G});改长度是 (\mathcal{C})。只有变更需要 commit 检查;纯重表达在翻译一致时自动保持全局一致。[1]

  5. (D)(历史态 / 还影响未来合法性的那一点记忆)
    harness 不必留全日志。留下「还剩多少预算」和「每个 agent 上次读到的版本」就够拒绝:Cost 用 v3 报价下单,梁已在 v4 改尺寸 → commit 拒。过期派生、已提交后被静默撤销,都活在 (D) 上;只看「当前数值」会把新鲜与过期别名成同一个观测。[1]

工程对照:版本检查、依赖引擎、ledger、escrow 配额,都是同一需求在不同域的实现。已有工具拥有相关状态时,通用 harness 应打平(Study III/VI);缺主人时,才显出差距(I/IV/V/IX)。[1]

规格:Context 与 Harness 各管什么

论文把日常手艺写成规格。

Context engineering(给每个决策窗口):
上下文充分,当且仅当它从不把「合法动作集不同」的两个世界糊成同一观测。最小充分字段集的选取是 NP-hard——实践中贪心选、用失败案例反推缺哪一比特。角色 (i) 的决策边界是 (\Omega_i) 与它收到的消息,不是全队视图的并集;多角色协议若不引入外部新观测,也造不出缺失信息(Corollary 2.2)。[1]

Harness(提案之外的权威运行时):
模型从 context 采样提案;harness 对照权威语义状态 (z=\phi(x)) 做 accept / repair / reject;只有接受的变更进入世界。它要:拥有改变合法性的区分;在局部检查不够处做全局一致;在状态变更的 commit 上核对 read-set / 预算 / 粘合。经理 agent 若只拿摘要,仍是又一个 (\Omega_i)。真正的「牵头」是:谁权威持有约束的完整作用域,并控制 commit。[1]

与站内其它文的接缝:Exactly-Once 问副作用落在哪一层契约;本文问合法性区分落在哪一层状态。MoMHa 优化 harness 配置的多目标;本文规定「什么样的状态义务 harness 必须先承担」——搜配置之前,先承认义务。评测可靠性 提醒榜分支持哪类主张;本文提醒:把能力、可辨识性、commit 正确性糊成一个分数,会系统性高估「再换模型」的边际收益。

为什么「把上下文全塞给每个人」仍不够

不可能定理看起来有个廉价逃逸:大家都看见全部信息,不就没事了?论文列了五条为什么全局一致原则上仍难——对脚手架作者比口号有用。

共享一切常常不可行,共享最少又难。 窗口、带宽、隐私、权限都会卡视野。真正的问题是「共享什么」:去掉别名,就要暴露每个会改变合法动作集的区分。找最小充分观测集是 NP-hard;贪心近似在多项式时间里几乎是最好的一类。更关键的是:队伍里每次决策发生在行动者自己的信息集上,不是全员视图的并集——把全库塞进某个旁观者的 prompt,并不能自动让执行角色「看见」。[1]

局部一致不必加总。 重叠成 join tree 时,两两即可;环可以打败两两;对无限制约束语义,没有万能的固定局部阶。一般有限域上精确全局检查对交互宽度指数敏感——所以设计目标是降低耦合宽度,而不是盲目减少人数。[1]

发现错误便宜,最优修复可以很贵。 表示之间是否一致,生成树可线性证明;改最少几条标签才能修好,可以是 Max-Cut-hard。生产启示:拦在 commit 前,别把「事后找替罪羊」当默认流程。[1]

共享约束要协调。 各花各的都合法,合并可以非法。出路是 commit 协调,或改写成 escrow 一类局部约束——各有代价(灵活度 vs 简单本地检查)。[1]

时间自己再加一层条件。 重表达保持粘合;改状态不保持。长跑进程必须携带「仍影响未来合法性」的历史;commit 安全仅当读过的一切仍新。Study V 的过期报价与静默回滚,就是把「当前值检查」当成充分条件时的别名失败。[1]

这五条加在一起,解释了为什么论文把规格写成 context + harness,而不是「再买一个更大的上下文窗口」。窗口解决的是第一类失败里「缺比特」的子集;第二类失败里「有比特却无主人 / 有边无环检 / 有当前值无版本」——扩窗口帮不上,甚至会制造虚假安全感:人人都「看见过」预算,于是没人再去实现拒绝。

和站内主线怎么咬合

把 Global Coherence 嵌进已经写过的控制面,避免读成又一篇抽象综述。

  • 成本与硬停: Harness 控成本 管 agent 自己的模型路由;默认硬预算帽 管部署出去的服务计费路径。Study IV 是同一逻辑在「团队共享 tool-call 额度」上的多智能体版:可见计数 ≈ 软告警;commit 拒绝 ≈ 硬帽;escrow ≈ 把共享帽拆成可本地执行的子帽。三篇文章共用一句验收:执法点必须在下一次消费发生之前同步挡住。
  • 副作用契约: Exactly-Once 问超时后「写没写上」落在模型、harness 还是工具契约。本文的 commit / read-set 是亲兄弟:都拒绝「只信 agent 自报成功 / 只信当前快照」。幂等键管的是重复写;版本核管的是过期读——两条都要,漏一条都会在故障注入里穿帮。
  • 多目标 harness 搜索: MoMHa 在准确率、行为安全、token 上搜配置。Global Coherence 提醒:若搜索空间里根本没有「共享预算的权威 ledger」「环检查」「read-set 原子提交」这些旋钮,联合奖励再漂亮也搜不出所有权。先承认状态义务,再优化配置。
  • 评测主张: 评测可靠性 拆系统排序 vs 模型排序。本文再拆一刀能力 / 可辨识性 / commit。榜上「全队 + 强模型」变高,可能只是把规格从受限单人搬到了信息更全的编排——Study II 的描述性重分析就警告过 attestation 口径会扭曲「团队是否真赢单人」。读榜时问:提升来自更强推理,还是来自有人终于看见了决定性字段?
  • 多智能体总览: 多智能体系统 谈架构与评估清单;本稿把其中「交互与约束」那一层收成可证伪的失败类与检查项,便于在设计评审里直接勾选。

排障剧本:一次交付炸了怎么问

假设并行改同一仓库的三个 agent 又交了一份「局部 diff 都过 CI、合并后却不可能」的结果。按论文顺序问,而不是先开模型比价会:

  1. 别名? 合并前,是否存在两个世界(例如两种 head / 两种 schema 版本)在每个 agent 的 context 里长得一样,却要求不同动作?若是,补区分或补能拆开纤维的工具;加长 chain-of-thought 排在后面。
  2. 无主不变量? 是否存在预算、唯一命名、互斥资源、全局计数——每人局部合法、总和可爆?给 ledger 或拆配额;不要只加「请注意剩余次数」的系统提示。
  3. 环? 单位、ID、same-as、接口断言是否形成环?两两 review 全绿时,跑一次网络级 / 生成树余边检查。
  4. 时间? 提案的 read-set 是否在 commit 时仍成立?已提交变更是否可能被环境静默打回?若检查器只看「现在的值」,它对新鲜与过期是别名的——把检查器自己也套进 Theorem 2.1。
  5. 编排幻觉? 多出来的经理角色是否权威持有上述状态,还是只是多一路摘要?若是后者,它受 Corollary 2.2 约束,不能创造信息。

这套剧本的价值是排序:大多数团队习惯从第 0 步「换模型 / 加角色」开始;论文证据表明,在注入的别名与无主预算上,那一步几乎不动安全计数。

建造者清单

收成可执行的检查项(对应论文 §4.5 与九项证据):

  1. 先问缺哪一区分,再问要不要更大模型。 失败复盘第一句:决定合法动作的那一比特,当时在谁的 context / harness 状态里?Study I:一句事实 > 加长推理。
  2. 共享不变量必须有主人。 预算、配额、唯一性、互斥锁——展示计数不够;commit 拒绝或 escrow 拆分。对照 Study IV 与站内硬预算帽文。
  3. 决定性区分写进 context,并尽量由 harness 权威持有。 窗口里「提过」≠ harness「拥有」;可见臂仍超支。
  4. 检查环,不只检查边。 两两 handoff 在环上会漏;翻译网络用生成树 + 余边检查;本体 / schema / 单位换算同构。
  5. Commit 带版本与 read-set。 提案依赖过的权威项(含五轮前读过的报价)一并记录;原子核对后才写。防 Study V 的过期报价与静默回滚。
  6. 别指望经理 agent 魔法补状态。 Planner+Verifier 在可见计数下仍超支;编排有用,是因为 hub 持有共享字段,把重叠收成树——不是因为多了一个会说话的角色。
  7. 检出优先于最优修复。 一致证明可线性;最小修复可难。生产路径:拦在 commit,再谈谁改哪段输出。
  8. 已有领域工具拥有状态时,不要重复造轮。 依赖闭包、耦合求解器在其主场应与通用 harness 打平;把工程时间花在「还没有主人」的边界上。
  9. 并行 / 串行看读写集。 (W_i) 与 (R_j) 不相交可并行;相交则在「加锁排序 / 乐观 commit 重跑 / 用 (D) 做出处失效」三条里选代价。
  10. 评测拆开三问。 能力(提案是否有用)、可辨识性(状态是否够判合法)、commit(局部接受是否保持全局)。只刷第一问的榜,会漏掉本文整类失败。

局限与读法

作者写明:agent 证据来自一个模型族、适度面板;别名探针是合成的;τ² 故障是注入的;TeamBench 安全计数常是五种子。理论边界清楚,频率外推是下一步。对建造者,有用的不是「你的产线一定 5/5 超支」,而是诊断顺序:缺区分 → 缺主人 → 环上漏检 → 过期 read-set,每一项都有对应补丁,且补丁多半不在权重里。[1]

结语

Global Coherence 把一句工程直觉钉成规格:局部合法推不出全局一致。 看不见的区分,推理补不回来;看得见却无人拥有的不变量,prompt 里的实时数字也拦不住;两两都过的流水线,仍可能在环上破产;只盯当前值的检查,会把过期与新鲜糊成同一个世界。九项研究画的边界也很诚实:harness 在「缺状态 / 无主人」处赢,在「传统工具已拥有状态」处打平——这不是贬低模型,而是把模型从它不该独自扛的义务里解放出来。

模型继续负责提案:意图、规划、选工具、起草变更。Harness 负责拥有区分、装配 context、在 commit 上执法。脚手架与产品默认值里,不妨把「共享不变量的主人」「环检查」「read-set」写成和模型路由同级的一等字段——缺字段的模板,等于默认签发一张「局部看起来都对」的通行证。下一回多智能体又「每个人都没错、交付却炸了」,先别加第三个评审角色——先问:哪一条区分,到现在还没有主人?

参考

[1] Xin Heng. Global Coherence: When Every Agent Is Right and the Team Is Still Wrong. arXiv:2610.02036, 2026-10-01. abs · HTML.