回退路径萎缩:你的降级方案在三个月前就失效了
你在九个月前编写的回退路径(fallback path)——那个用于捕获模型超时、切换到更便宜的供应商、并在两者都宕机时返回模板化消息的路径——实际上在过去的十二周里从未在生产环境中运行过。它仅在最初发布时被执行过一次,集成测试仍然能通过,操作指南(runbook)也仍在使用它。但这并不意味着它还能工作。第六周的一次重构改变了上游上下文对象的形状。第九周的一次依赖库升级悄悄移动了一个配置键。代码仍然可以编译。测试仍然能通过,因为它们是针对与代码相同的陈旧 Fixture 编写的。下次当你的主路径出现 504 错误时,你的“优雅降级”将会把一个 NullPointerException 甩在用户脸上,而复盘报告将会指出——这已经是今年第三次了——在上游契约变更后,回退路径从未被重新测试过。
这是 AI 系统韧性工程中一种隐性的失败模式。回退路径是你应用程序中专门为了被忽视而存在的部分。在一百天里,有九十九天生产流量都会绕过它。CI 从不执行它,因为没有任何测试与之关联。负责它的团队在两次事故之间会忘记它的存在。然后在第一百天,当主模型供应商出现区域性故障,你终于需要它时,这段代码却在付费客户面前发生了代码腐烂(bit-rots)。
