Agent Failure Modes 智能体失败模式

凌晨4点,你盯着Agent的错误日志发呆。它又把"取消订单"理解成了"查询订单",然后还不忘加了一句"操作成功"。——这就是失败模式的魅力。

Agent Debug VAKRA Benchmark IBM Research

什么是 Agent Failure Modes?

Agent Failure Modes(智能体失败模式)是指AI智能体在执行任务过程中,系统化出现的错误类型和失败原因。IBM在2026年4月发布的VAKRA基准测试中,系统性地分析了智能体在推理、工具调用、规划等环节的失败模式,为智能体开发提供了"故障诊断手册"。

一个成功的Agent背后,有一万个失败模式在排队等着它。认识它们,就是认识Agent的灵魂——虽然这灵魂偶尔会短路。

🎬 周星驰式理解

想象你雇了个外卖小哥(Agent),他要把你的饭送到目的地。失败模式就是他可能翻车的所有姿势:

  • 听错地址 → 意图识别错误
  • 走错路 → 规划失败
  • 敲门不开 → 工具调用失败
  • 把饭吃了 → 幻觉问题
  • 送到一半放弃 → 中断失败
  • 送错了还说"您慢用" → 自信幻觉

VAKRA就是一本"外卖小哥翻车大全",告诉你每种翻车的原因和怎么避免。

VAKRA 分类:五大失败模式

1. Intent Misclassification(意图识别错误)

智能体错误理解用户的真实意图,把"取消订单"理解为"查询订单",把"不要发送"理解为"发送"。

典型表现:

  • 语义相近的意图混淆("帮我"vs"帮我取消")
  • 否定词处理失败("不要"被忽略)
  • 多意图请求只识别一个
✅ 解决方案
意图确认机制、多轮澄清、否定词增强训练
2. Tool Selection Error(工具选择错误)

智能体选择了错误的工具来完成任务,或者在没有工具可用时强行调用。

典型表现:

  • 相似工具混淆(search_product vs get_product)
  • 幻觉调用不存在的工具
  • 工具参数类型错误
  • 过度使用某个"偏爱"的工具
✅ 解决方案
工具描述增强、参数校验、工具使用示例注入
3. Planning Failure(规划失败)

智能体制定的执行计划本身有问题,步骤遗漏、顺序错误、死循环。

典型表现:

  • 关键步骤遗漏(先查库存再下单,忘了查库存)
  • 依赖关系搞错(先创建订单再获取用户信息)
  • 无限循环(不断重试同一个失败操作)
  • 过早终止(任务没完成就宣布成功)
✅ 解决方案
计划验证、步骤依赖检查、循环检测机制
4. Reasoning Error(推理错误)

智能体在逻辑推理过程中出错,得出错误结论。

典型表现:

  • 逻辑跳跃("用户说没钱" → "用户是骗子")
  • 条件判断错误(库存>0 就一定能下单?)
  • 因果关系搞反("因为成功所以尝试" vs "因为尝试所以成功")
  • 数值推理错误("打8折"算成"减8元")
✅ 解决方案
推理链展示、中间结果验证、批判性思考注入
5. Context Loss(上下文丢失)

智能体在长对话中丢失关键信息,或无法正确引用之前的对话内容。

典型表现:

  • 遗忘用户之前说过的话
  • 重复询问已获取的信息
  • 多轮对话后"失忆"
  • 无法正确处理指代消解("它"指代什么)
✅ 解决方案
记忆增强、关键信息提取、上下文压缩

VAKRA 基准测试方法

VAKRA通过构建可验证的测试场景,系统评估智能体在各维度的表现:

// VAKRA 风格的失败模式测试用例 const vakraTestCase = { id: 'intent-misclassification-001', category: 'intent', // 测试输入 input: { userMessage: '不要帮我取消订单,我只是想问问怎么退款', context: { orderId: 'ORD-12345' } }, // 期望行为 expected: { intent: 'inquiry', // 应该是询问,不是取消 action: 'explain_refund_policy', shouldNotCall: ['cancel_order'] }, // 验证器 verifier: (agentResponse, expected) => { const calledTools = agentResponse.toolsCalled ?? []; const wrongCalls = expected.shouldNotCall.filter( t => calledTools.includes(t) ); return { passed: wrongCalls.length === 0, failureType: wrongCalls.length > 0 ? 'intent_misclassification' : null, details: { wrongCalls } }; } };

OpenClaw 中的失败模式防护

在OpenClaw中,你可以通过以下策略减少失败模式:

// OpenClaw 失败模式防护配置 const agentConfig = { // 意图确认 intentConfirmation: { enabled: true, threshold: 0.8, // 置信度低于0.8时确认 promptTemplate: `您是想{intent}吗?请确认。` }, // 工具选择验证 toolValidation: { // 调用前检查 preCall: true, // 参数校验 schemaValidation: true, // 相似工具提示 similarToolsWarning: true }, // 规划验证 planValidation: { // 检查步骤依赖 dependencyCheck: true, // 循环检测 loopDetection: true, maxSteps: 20, // 完成度验证 completionCheck: true }, // 推理链展示 chainOfThought: { enabled: true, // 强制展示推理过程 forceReveal: true }, // 上下文管理 contextManagement: { // 关键信息提取 keyInfoExtraction: true, // 上下文窗口 maxContextTurns: 10, // 压缩策略 compressionStrategy: 'summarize' } };

失败模式排查清单

当你的Agent表现异常时,按此清单排查: