1. 为什么 Agent 会失败:故障模型与生产挑战
1.1 传统软件与 Agent 的可靠性差异
传统软件的故障大多是可枚举、可复现、可预期的:空指针、超时、连接池耗尽、磁盘写满。我们为这些故障建立了一套成熟的工程手段——单元测试、集成测试、熔断、限流、重试、监控告警。这套体系的有效性建立在一条隐含假设之上:程序的执行路径是确定的,失败模式是有限的。
大模型 Agent 打破了这个假设。一个典型的 ReAct Agent 在执行时需要经历「模型推理 → 工具调用 → 解析结果 → 再次推理 → 再次调用」的循环,每一步都可能引入新的不确定性:
因此,Agent 对健壮性的要求不是「少出故障」,而是在故障必然发生的假设下,系统仍然能够以可预期的方式运行——要么最终成功,要么在可控成本内失败并给出可解释的结果,而不是无限循环、静默卡死或产生更严重的副作用。



