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通过构建可验证的测试场景,系统评估智能体在各维度的表现:
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中,你可以通过以下策略减少失败模式:
const agentConfig = {
intentConfirmation: {
enabled: true,
threshold: 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表现异常时,按此清单排查:
- ☑️ 意图识别是否正确?(检查用户输入理解)
- ☑️ 工具选择是否正确?(检查调用日志)
- ☑️ 计划步骤是否完整?(检查执行轨迹)
- ☑️ 推理逻辑是否合理?(检查中间结论)
- ☑️ 上下文是否保留?(检查对话历史)
- ☑️ 是否有幻觉输出?(检查输出与事实对比)
- ☑️ 是否过早终止?(检查任务完成标准)