失效模式:为什么智能体会失效
MASFT(Berkeley,2025)将 14 种多智能体失效模式归类为 3 个类别。微软的分类法记录了现有 AI 失效如何在智能体场景中被放大。行业一线数据则收敛到五种反复出现的模式:幻觉动作、范围蔓延、级联错误、上下文丢失、工具误用。
类型: 学习 + 构建 语言: Python(标准库) 先修要求: 第 14 阶段 · 05(Self-Refine 与 CRITIC),第 14 阶段 · 24(可观测性) 耗时: ~60 分钟
学习目标
- 说出 MASFT 的三个失效类别,以及每类至少四种具体模式。
- 解释为什么智能体失效会放大现有 AI 失效模式(偏见、幻觉)。
- 描述行业中反复出现的五种模式及其缓解方式。
- 实现一个标准库检测器,用失效模式标签标注智能体运行轨迹。
问题
团队发布的智能体在 90% 的运行轨迹上都能工作。剩下 10% 的失败并不是随机噪声——它们会落在少数几个反复出现的类别里。一旦你能给它们命名,你就能监控它们并修复它们。
概念
MASFT(Berkeley,arXiv:2503.13657)
多智能体系统失效分类法。14 种失效模式被聚类到 3 个类别中。标注者之间的一致性 Cohen's Kappa 为 0.88 —— 说明这些类别可以被可靠地区分。
核心主张:失效是多智能体系统中的基础设计缺陷,而不只是可以靠更好的基础模型修复的 LLM 局限。
微软的智能体式 AI 系统失效模式分类
- 现有 AI 失效(偏见、幻觉、数据泄漏)会在智能体场景中被放大。
- 由自主性引出的新失效会出现:大规模非预期动作、工具误用、任务漂移。
- 这篇白皮书就是智能体产品的风险登记表。
智能体式 AI 中的故障特征(arXiv:2603.06847)
- 失效源自编排、内部状态演化和环境交互。
- 不只是“代码写坏了”或“模型输出差”。
LLM 智能体幻觉综述(arXiv:2509.18970)
两种主要表现:
- 指令遵循偏差 —— 智能体没有遵循系统提示词。
- 长程上下文误用 —— 智能体遗忘了早先轮次中的上下文,或者错误使用了它。
子意图错误:遗漏、冗余、失序。
行业内反复出现的五种模式
Arize、Galileo、NimbleBrain 在 2024-2026 年的实地分析收敛到以下模式:
- 幻觉动作。 智能体调用了不存在的工具,或者臆造了参数。
- 范围蔓延。 智能体把任务扩展到了用户要求之外(创建额外拉取请求、发送额外邮件)。
- 级联错误。 一次错误调用触发连锁下游影响。一个虚构的 SKU 幻觉触发四次 API 调用——变成跨系统事故。
- 上下文丢失。 长时程任务忘记了早期轮次中的约束。
- 工具误用。 调用了对的工具却传错参数,或者干脆用了错误的工具。
级联错误是最致命的。智能体无法区分“我失败了”和“任务不可能完成”,并且经常会在收到 400 错误后仍幻觉出一条成功消息来闭环。
缓解方式:每一步都加门控
在推理链的每一步设置自动验证闸门,针对环境状态检查事实依据。具体来说:
- 逐步安全分类器(见第 21 课)。
- 工具调用参数校验(见第 06 课)。
- 将检索内容与已知事实交叉核对(见第 05 课,CRITIC)。
- 通过重新探测状态来检测成功幻觉(例如文件真的创建了吗?)。
失效监控通常会在哪些地方出错
- 只给崩溃打标签。 大多数智能体失败会产出看起来“像是正确的”输出。你需要内容级检查。
- 没有基线。 漂移检测需要一个“上次已知良好”基线;没有它,你就无法说“情况正在变差”。
- 过度告警。 每个失败都触发一次页面告警。应进行聚类并限流。
动手构建
code/main.py 实现了一个标准库失效模式标注器:
- 一个覆盖五种模式的合成运行轨迹数据集。
- 每种模式对应的检测函数(基于工具调用、输出、重复动作的特征模式)。
- 一个为每条运行轨迹打标签并报告模式分布的标注器。
运行它:
python3 code/main.py输出:每条运行轨迹的标签与聚合后的分布,这是对 Phoenix 运行轨迹聚类能力的一种低成本复现。
使用它
- Phoenix:用于生产环境中的漂移聚类(第 24 课)。
- Langfuse:用于会话回放与标注。
- 自定义:用于你的可观测性平台无法检测的领域特定特征。
交付它
outputs/skill-failure-detector.md 会生成适配你领域的失效模式检测器,并连接到运行轨迹存储。
练习
- 添加一个“成功幻觉”检测器:智能体返回成功,但目标状态没有变化。
- 给你构建过的某个产品中的 100 条真实运行轨迹打标签。哪种模式占主导?修复它的成本是多少?
- 实现一个“级联半径”指标:若第 N 步发生失败,它影响了多少后续步骤?
- 阅读 MASFT 的 14 种失效模式。选出三种适用于你产品的模式,并编写检测器。
- 把一个检测器接入 CI 任务:如果 >=5% 的运行轨迹被标注为某种模式,就让构建失败。
关键术语
| 术语 | 人们怎么说 | 实际含义 |
|---|---|---|
| MASFT | “多智能体失效分类法” | Berkeley 的 14 模式分类 |
| 级联错误 | “涟漪式失败” | 一个早期错误在 N 个步骤中传播 |
| 上下文丢失 | “忘了约束” | 长时程轮次中丢掉早先轮次的事实 |
| 工具误用 | “工具错了 / 参数错了” | 调用本身合法,但调用方式错误 |
| 成功幻觉 | “伪造完成” | 收到 400 仍声称成功;状态未变化 |
| 范围蔓延 | “越界扩张” | 智能体做了超出要求的事 |
| 指令遵循偏差 | “不听指令” | 忽略系统提示词或用户约束 |
| 子意图错误 | “计划缺陷” | 执行计划中的遗漏、冗余、失序 |
延伸阅读
- Cemri et al., MASFT (arXiv:2503.13657) — 14 种失效模式,3 个类别
- Microsoft, Taxonomy of Failure Mode in Agentic AI Systems — 风险登记表
- Arize Phoenix — 实践中的漂移聚类
- Anthropic, Building Effective Agents — 何时更简单的模式能完全避开这些失效模式