失败模式——MAST、群体思维、单一文化、级联错误 本节摘要:2026 的参考分类法是 MAST(Cemri 等, NeurIPS 2025, arXiv:2503.13657),源自 7 个开源 MAS 的 1642 条执行轨迹,显示 4186.7% 的失败率。三大根类:规格问题(41.77%)——角色歧义、任务定义不清;协调失败(36.94%)——通信中断、状态失步;验证缺口(21.30%)——缺失校验、无质量检查。群体思维(Groupthink)家族(arXiv:2508.05687)再加:单一文化崩溃(同基座 → 相关失败)、从众偏置(Agent 互相强化彼此的错误)、心智理论不足、混合动机动态、级联可靠性失败。
本节摘要:2026 的参考分类法是 MAST(Cemri 等, NeurIPS 2025, arXiv:2503.13657),源自 7 个开源 MAS 的 1642 条执行轨迹,显示 41~86.7% 的失败率。三大根类:规格问题(41.77%)——角色歧义、任务定义不清;协调失败(36.94%)——通信中断、状态失步;验证缺口(21.30%)——缺失校验、无质量检查。群体思维(Groupthink)家族(arXiv:2508.05687)再加:单一文化崩溃(同基座 → 相关失败)、从众偏置(Agent 互相强化彼此的错误)、心智理论不足、混合动机动态、级联可靠性失败。级联例:重试风暴——一次付款失败触发订单重试,触发库存重试,压垮库存服务(数秒内 10 倍负载,需熔断器)。记忆投毒:一个 Agent 的幻觉进入共享记忆,下游 Agent 当它事实,准确率缓慢衰减,根因诊断痛苦。STRATUS(NeurIPS 2025)报告用专用的检测/诊断/验证 Agent 把缓解成功率提升 1.5 倍。本节把失败模式当作一等工程目标。
阅读完本节,你应当能够:
多智能体系统在真实任务上 41~86.7% 的时间在失败(Cemri 等 2025 在 7 个开源 MAS 上测的)。这靠「再加几个 Agent」调试不了。失败有结构性原因,MAST 分类法给你类别。本节把每个类别映射到一个具体的检测、诊断、缓解模式,让数字不再显得随机。
2026 的生产实践是把失败模式当设计输入。 你的架构不算「够好」,直到你能指着每个 MAST 类别说出你部署了哪个缓解。
规格问题(占失败 41.77%)。 Agent 的任务定义得不够紧。示例:角色歧义(两个 Agent 都以为自己是评审者);任务欠规格(用户想要特定角度,却说「总结这个」);成功标准隐式(Agent 不知道自己是否成功了)。
缓解:写显式的角色契约(每个 Agent 的提示说明它做什么以及不做什么);每任务一个验收测试(开工前定义「完成长这样」);起飞前规格检查(独立 Agent 在派发前审任务定义)。
协调失败(36.94%)。 通信或状态崩溃。示例:两 Agent 无同步地更新共享状态;消息在 Agent 间丢失(队列故障、超时);状态漂移(A 以为任务完成,B 还在执行)。
缓解:带乐观并发的版本化共享状态;关键消息的显式确认(未确认则重试);周期性状态同步检查点,早检测漂移。
验证缺口(21.30%)。 输出无独立检查。示例:一个 Agent 宣称成功,没人验证;Agent 链各自信任前者的输出;涌现的组合行为缺测试覆盖。
缓解:独立验证者 Agent(第 13 节,只读、独立来源访问);显式交接契约(「A 的输出必须过检查器 C,B 才开工」);事后分析的结局日志。
Agent 同质化或互相模仿时的五种相关失败:
一个经典的 2026 事故模式:
付款服务 10% 请求失败 ↓ 订单 Agent 重试付款(朴素指数退避) ↓ 每次重试是一次新的订单-库存检查 ↓ 库存服务看到 2 倍正常负载 ↓ 库存服务开始超时 ↓ 每个订单都重试库存检查 ↓ 库存服务看到 10 倍正常负载 ↓ 集群宕机
修复是经典的:熔断器(circuit breaker)。当下游错误率超阈值,用缓存或默认结果短路。外加每请求的封顶重试预算。熔断器是少数你能直接从分布式系统无修改借用的多智能体失败缓解。
来自第 13 节:一个 Agent 的幻觉变成共享记忆事实,下游 Agent 在投毒事实上推理。用 MAST 的话说,这是共享记忆层的验证缺口。症状是渐进的准确率衰减——你得不到崩溃,得到的是难根因的缓慢漂移。缓解在第 13 节已讲:只追加日志、溯源、不可写验证者。
STRATUS(NeurIPS 2025)报告,部署以下三角色可获 1.5 倍缓解成功率提升:
这是 SRE 式事故响应,用到 Agent 系统上。三角色都可是带专用提示的 LLM Agent。
⚠️ 这是「协调难点在失败」的集中体现——多智能体系统的高失败率(41~86.7%)不是「模型不够强」,而是结构性的规格模糊、协调失步、验证缺失。最危险的是静默的正确性失败:崩溃可监控,「看起来对但错」的输出靠异常日志抓不到——这正是验证缺口按次数只占 21.30%、按代价却最贵的原因。
2026 的最佳实践是季度(或每个主版本)做一次失败模式审计:采约 1000 条真实执行轨迹;对每条失败的轨迹映射到 MAST + 群体思维类别;算各类别失败率,看哪类主导;排名缓解(哪个修复能消除最多失败);挑 2~3 个缓解实现,下季度再审。纪律比具体选择更重要——不做审计,失败就混进噪声,永不被系统处理。
最危险的失败类别是静默的正确性失败。大声失败的系统(崩溃、异常、告警)可被监控;产出「看起来对但错」的系统靠异常日志检测不到。这就是验证缺口按次数虽只 21.30%,每失败的代价却最高的原因。投资:基于抽样的人工评审;金标准数据集回归测试;重要输出的跨 Agent 交叉检查。
有些失败是即时的(超时、schema 不匹配、鉴权错),检测便宜。有些是慢的(记忆投毒、单一文化漂移、角色歧义),检测与预防昂贵。2026 的工程动作:给慢失败代理量埋点,在它变成可见错误前抓住漂移。一致率、重试率、输出长度分布、连续 Agent 版本间的编辑距离,都是有用的代理量。
code/main.py 实现:
FailureTaxonomy——把模拟事故归入 MAST + 群体思维类别。CircuitBreaker——经典模式,错误率超阈值时打开。RetryStormSimulator——展示级联失败,可开关熔断器。DetectionAgent——脚本化的 STRATUS 式症状匹配器。class CircuitBreaker: def __init__(self, threshold=0.1, window=100): self.errors, self.total = 0, 0; self.open = False def record(self, ok): self.total += 1; self.errors += (0 if ok else 1) if self.total >= window and self.errors / self.total > threshold: self.open = True # 短路,返回降级结果,不再打下游 def allow(self): return not self.open def order_agent(payment_svc, inventory_svc, cb_pay, cb_inv): if not cb_pay.allow(): return degraded("payment circuit open") if not payment_svc.pay(): # 付款失败 return retry_with_budget(cb_pay) # 封顶重试,不放大负载 if not cb_inv.allow(): return degraded("inventory circuit open") return inventory_svc.check()
设计要点:熔断器的承重性质是「失败快」——错误率超阈值就停止打下游、返回降级结果,把级联放大的正反馈环切断。没有它,「付款失败 → 重试 → 库存检查翻倍 → 库存超时 → 全部重试 → 库存 10 倍负载」的雪崩在数秒内发生。
retry_with_budget的封顶是第二道闸,防止单请求的重试次数本身成为负载放大器。
运行 python3 code/main.py,期望输出:无熔断器时库存错误爆炸(模拟);有熔断器时封顶在阈值、降级响应被服务;检测 Agent 标出该模式并点名 MAST 类别。
| 失败类别 | 占比 | 核心缓解 | 借用自 |
|---|---|---|---|
| 规格问题 | 41.77% | 显式角色契约 + 验收测试 + 起飞前规格检查 | 软件工程(契约) |
| 协调失败 | 36.94% | 版本化共享态 + 显式确认 + 周期同步 | 分布式系统 |
| 验证缺口 | 21.30% | 独立只读验证者 + 交接契约 | 软件测试 |
| 重试风暴(级联) | — | 熔断器 + 重试预算 | 分布式系统(可直接借用) |
| 群体思维五家族 | — | 异构 + 有界轮 + ToM + 独立验证者 | 多智能体特有 |
💡 心法:多数多智能体失败缓解都是从分布式系统/软件工程借的——熔断器、乐观并发、发件箱、独立验证。 LLM 特有的是群体思维五家族(单一文化、从众等),需异构集成 + 有界轮数 + 心智理论来对付。把「这是新领域,老办法不适用」当借口跳过经典缓解,是失败率居高不下的主因。
outputs/skill-mast-auditor.md:对一个多智能体系统跑 MAST 式失败模式审计——轨迹 → 分类 → 缓解排名。
code/main.py,确认熔断器封顶重试风暴。调失败阈值,观察权衡。下一节,我们用五大基准(MARBLE、COMMA、MedAgentBoard、AgentArch、SWE-bench Pro)给「协调」一个客观量尺,并学会带着怀疑读基准宣称——尤其「过了 SWE-bench Verified」已不再是泛化能力的证据。