Agent Failure Triage
Agent 系统上线之后,真正麻烦的往往不是“它失败了”,而是:
它到底是在哪一层失败的。
看起来像同一个 bug,实际可能完全不是同一种问题:
- route 错了
- context 不够
- handoff 丢信息
- tool 失败
- approval 没接住
- state 污染
- specialist 自己判断错了
这篇文档讨论的就是故障分诊。
1. 先别急着改 prompt
很多 Agent 系统一出问题,第一反应就是改 prompt。
这一步经常太早。
因为同样一个坏结果,根因可能在完全不同的层:
- 输入层
- route 层
- state / memory 层
- tool 层
- coordination 层
- output 层
故障分诊的第一步,不是修,而是先归层。
2. 一张最小分诊图
这张图不是为了穷尽所有情况,而是为了避免一上来就把所有问题都归到模型身上。
3. 最常见的 6 类失败
3.1 Route / Triage 失败
表现通常是:
- specialist 明显接错任务
- 不该 handoff 却 handoff 了
- 该追问却直接执行了
- 高风险任务进了低风险路径
这类问题最适合先 查:
- triage prompt
- route policy
- specialist 边界
- route evals
3.2 Context / State 失败
表现通常是:
- 明明前面说过的信息,后面丢了
- summary 覆盖了关键条件
- memory 混进旧偏好
- handoff 后上下文缩水
这类问题最适合先查:
- 输入到模型的实际上下文
- state 序列化结果
- memory 写入策略
- handoff payload
3.3 Tool 失败
表现通常是:
- tool schema 对不上
- 参数缺失
- tool 调错了
- tool 返回值不稳定
- 工具成功了,但结果没有回注好
这类问题最适合先查:
- tool call 参数
- tool 成功率
- tool 输出格式
- tool result 注入位置
3.4 Coordination 失败
主要出现在多 Agent 场景里。
表现通常是:
- handoff 目标错
- payload 不完整
- 多个 Agent 做了重 复工作
- manager 和 worker 理解不一致
- A2A 返回了任务状态,但主控没处理好
这类问题最适合先查:
- handoff trace
- specialist 输入差异
- coordination payload
- 角色边界定义
3.5 Runtime / Reliability 失败
表现通常是:
- timeout
- retry 过多
- interrupt 后没 resume
- approval 卡死
- 运行成本飙升
这类问题最适合先查:
- 延迟分布
- retry / timeout 统计
- interrupt / resume 记录
- approval 队列状态
3.6 Reasoning / Output 失败
这才是大家最熟悉的一类。
表现通常是:
- 最终答案错
- 格式不对
- 漏步骤
- groundedness 不够
- specialist 本身判断失误
但这一层最好放在最后排查。
前面几层没查清,直接改 reasoning 往往会越改越乱。