Agent 失败时:不会无限循环的恢复模式
- Sam Wilson
- 可靠性 , Agent
- 12 May, 2026
Agent 的失败不抛异常。它们产出看起来合理但错误的输出,或者用稍微不同的方式悄悄重试同一个坏方法。把 Agent 包在 try/catch 里是错误的心智模型——Agent 没崩,它只是继续往一个没用的方向走。恢复必须设计进去,而不是事后贴上去。
需要不同恢复方式的失效模式
工具失败——API 报错或超时——是最简单的情况:Agent 应该看到错误,尝试不同方式。推理失败——Agent 自信地搞错了下一步该做什么——更难,因为 Agent 不知道自己错了。循环失败——Agent 一遍又一遍重试同一种方法——是最糟的,因为每次迭代孤立看起来都有进展。
经得起现实接触的恢复模式
迭代次数永远要设上限。检测动作历史里的重复——如果 Agent 用相似参数连续三次调用同一个工具,就升级或中止。对推理失败,由小模型在动作日志上周期性运行的独立”当前计划是否仍然正确?”检查能抓住最坏情况。这些都不漂亮,每个 Agent 第一版里它们都被砍掉,因为感觉多虑——直到它第一次真的触发。
Agent 失败恢复是系统里那个让小失败不变成大灾难的部分。跳过它,就是你发现”agentic”和”autonomous”不是同一个词的方式。