多智能体失败模式:那些单智能体里没有对应物的 bug。
多智能体系统会以任何单个智能体都不可能的方式失败,而 2025 年的文献对此直言不讳:大规模轨迹研究(MAST 分类法,Cemri 等人,发表于 NeurIPS 2025)编录了十几种横跨规约、协调与验证的系统级失败模式——没有一种能靠看单个智能体察觉。本文是生产中咬得最狠的五种的现场指南:错误传播、群体思维、死锁/活锁、成本爆炸,以及把前四者藏起来的可观测性鸿沟。
单智能体可靠性不会组合;系统在接缝处失败。
"每个智能体 95% 可靠,所以系统大体没问题"这个直觉恰恰是错的。重要的不是每个智能体的错误率,而是错误如何沿耦合结构传播。一条由各自单独都很强的智能体组成的流水线,仍可能系统性地失败,因为失败活在交接和协调里——在关节,而非零件。别再孤立地评估智能体,开始评估接线。
错误传播:一个软性错误变成所有人的事实基础。
多智能体的标志性失败。一个智能体产出一个略微出错的输出——一个幻觉事实、一处误读的需求、一份过于自信的摘要。因为没有异常、只有看似合理的文字,每个下游智能体都把它当作事实并在其上构建。错误不会崩溃;它静默地叠加,没有堆栈追踪也没有告警,直到最终答案自信地错了,而原因被埋在五跳之前。防御是结构性的:在边界处加入显式校验边(一个检查者智能体或一个确定性校验器)、把不确定性向前传递而非把它洗成干净的散文,并且永远不让工作者的摘要抹掉它自己的注意事项。
错误传播最危险的性质是,它对逐组件健康检查不可见。每个智能体都报告成功;每个接口都返回格式良好的数据;系统却自信地、可追溯地错着。如果你的监控是逐智能体的二元通过/失败,你根本看不见这种失败。
群体思维:智能体靠彼此同意而非靠正确而趋同。
当智能体读到彼此的输出时,它们倾向于趋同。一个自信的早期答案锚定了其余;异议被修订掉;系统达成的共识看起来像严谨,实际是回声。2026 年关于多智能体委员会的工作把这量化为表征坍缩——智能体的推理变得近乎一致,于是委员会承载的是一个智能体的信息,却付了许多个的成本。用设计出的多样性(不同模型/提示词)、不对称角色(一个职责就是唱反调的指定批评者),以及按校准置信度加权而非清点从众票的聚合来对抗它(见 agent-debate-and-ensembles)。
死锁与活锁:系统停住,或永远运行却无进展。
任何带环的拓扑都可能卡死。死锁:智能体 A 等 B 而 B 等 A,或两个智能体各持对方所需的资源——运行挂起且无错误。活锁:智能体不断行动、发消息,却毫无前进进展——一对互相回应着无尽修订、一个不断重新规划同一步的规划者、一场永不收敛的辩论。活锁更阴险,因为它看起来很忙、在烧预算,而死锁至少会停。防御:一个全局进度监控(K 步内无可测进展 → 中止)、轮次/回合上限、每个等待上的超时,以及任务允许处尽量用无环拓扑。
# livelock guard: kill runs that spin without progress if steps_since_progress > K: abort(run, reason="livelock: no progress") # budget != progress
成本爆炸:扇出没有天然的背压。
多智能体的 token 使用是乘性的,不是加性的。Anthropic 报告其多智能体研究系统使用的 token 量约为单次对话的 15 倍量级;一个在每一层都扇出的递归规划者是指数级的,不是线性的。模型里没有任何东西能阻止一个规划者认定自己需要 200 个子智能体,而对失败运行的重试会放大开销而非解决它。把成本当作一项安全属性:对扇出系数和递归深度设硬上限(运行期限制,而非模型可以无视的提示请求)、一个由子代扣减的共享单一预算(而非各自一份新预算),以及当联合开销越过上限时的急停开关——无论任务"感觉"是否快完成。
元失败:跨智能体看不见的东西,你就调试不了。
上述每一种失败对单智能体工具都不可见。逐智能体日志显示局部成功,而系统在接缝处失败;跨越消息边界没有堆栈追踪;分布式事件的顺序必须被重建。不可妥协的埋点:一条贯穿每个智能体和每次交接的关联追踪、把失败传播深度(单个故障波及了多少下游智能体)与端到端成功并列作为一等指标,以及按运行归集的联合成本——再加上检查点,使被污染的运行能续跑而非重启。多智能体税不只是 token——它是一类全新的静默系统级失败,而唯一能让它们可以幸存的,是跨越智能体边界的可观测性。先把它建起来,否则就别上多智能体。