LLM 故障切换设计指南:恢复请求,同时避免不安全重试
可靠的故障切换策略是一套封闭阶梯,由已批准线路、可重试错误和截止时间组成。它记录每次尝试,并在可靠性功能变成重复工具执行、失控费用或静默模型替换前停止。应用层与网关层必须一起设计,因为任何一层都无法自动知道另一层的副作用。
发布 2026-08-15 · 更新 2026-08-15 · KeepRouter Editorial · 10 分钟阅读

先给结论:故障切换只能恢复应用已经判断为可安全重复的失败。先建立已批准线路集合,再定义可重试错误、单次超时、总截止时间、流式规则、幂等性与费用证据。不要让通用重试策略悄悄切换模型或执行两次工具。
分开四种恢复动作
| 恢复动作 | 线路变化 | 适用情况 | 主要危险 |
|---|---|---|---|
| 重试同一线路 | 不变 | 临时网络或部分服务器错误可能恢复 | 重复 token 与更长截止时间 |
| 尝试另一供应商线路 | 供应商或 deployment 变化 | 等价线路通过相同验收套件 | 区域、版本、数据策略或缓存不同 |
| 回退到另一模型 | 公开模型或家族变化 | 产品明确批准不同模型行为 | 质量、工具、安全与价格变化 |
| 停止并返回错误 | 不再尝试 | 永久错误、时间耗尽或副作用不确定 | 完成率下降,但保护正确性 |
最后一种也是可靠策略的一部分。总要返回内容的系统,可能不如在破坏状态前停止的系统可靠。
用真实响应建立错误分类
收集准确端点与供应商的错误。认证失败、未知模型 ID、不支持字段和错误输入通常需要修复配置或代码,重复请求不会改变这些事实。
限流、连接重置、部分 5xx 和超时可能可以重试,但仍要检查供应商指南、Retry-After 与剩余产品截止时间。代码 Agent、自动补全和语音交互能接受的等待时间不同。
保留原始错误类型和之后的每次尝试。只返回最终 200 会让不稳定线路看起来健康,也隐藏恢复成本。
为完整阶梯分配时间
设置一个逻辑操作截止时间,再分配给各次尝试。如果客户端只允许 12 秒,两次独立的 10 秒上游超时就放不下。还要保留流式输出和返回有效错误的时间。
只有等待可能改善条件时才使用指数退避。永久 Schema 错误后的退避只会耗尽时间。多个 worker 可能在同一故障后一起重试时,应增加 jitter。
网关延迟指南说明如何分开报告首次尝试与获救请求。
流式需要状态机
第一个输出事件之前,另一次尝试可能对用户不可见;部分输出之后,重新播放会重复文本或产生冲突答案。应跟踪客户端是否已经收到响应头、内容、工具调用、用量和终止事件。
为部分流选择明确策略:停止并返回带标记的不完整响应;只在协议和供应商支持时恢复;或作为新的用户可见尝试重新开始。不要把不同模型输出拼接成一个响应。
在应用边界保护副作用
网关看到的是模型请求,通常不知道生成的工具调用是否已经发送邮件、扣款或修改数据库。应用必须分配稳定 operation ID、持久保存工具状态,并拒绝重复执行。
每个回退模型都必须通过相同工具 Schema 与授权测试。较弱模型即使使用同一兼容 API,如果参数格式不同,也不能视为等价线路。
核对所有尝试的成本
| 成本来源 | 为什么可能重复 |
|---|---|
| 输入 token | 每个供应商都会再次收到提示词 |
| 输出 token | 失败流可能已经生成内容 |
| 缓存输入 | 缓存 Key 与可用性会随线路变化 |
| 网关请求费 | 部分产品按请求或套餐用量收费 |
| 工具操作 | 外部系统可能执行付费或不可逆工作 |
把所有尝试归入同一个逻辑操作,同时保留逐次模型、用量、状态与费用。产品团队需要总数,平台团队需要线路明细。成本控制文章解释这种归属模型。
生产前运行失败矩阵
- 拒绝无效认证,并确认没有重试。
- 发送不支持参数,并确认策略停止。
- 模拟带与不带
Retry-After的限流。 - 让首字节超过单次超时。
- 在部分内容前后分别中断流。
- 在提出工具调用后和返回工具结果后分别失败。
- 耗尽总截止时间并检查客户端错误。
- 比较每次尝试的请求记录与计费证据。
- 禁用主线路并证明回滚控制。
先阅读什么是 LLM API 故障切换,再把最终策略写在路由配置旁边。策略是生产契约,不应只是隐藏的网关默认值。
常见问题
所有 5xx 都应该重试吗?
不是。应结合供应商指南、端点行为、剩余时间与副作用状态,部分服务器错误会持续存在。
故障切换可以更换模型吗?
只有产品明确允许,并且回退模型通过相同任务、工具、安全和成本检查时才可以。
多少次尝试是安全的?
没有通用次数,应由用户截止时间、可重试条件、副作用风险与总成本上限共同限制。
故障切换应记录什么?
记录一个逻辑 operation ID,以及每次尝试的线路、模型、错误、时间、用量、费用与最终状态。
参考的一手资料
本文最近复核 2026-08-15
- [1] Cloudflare AI Gateway request handling
- [2] Cloudflare AI Gateway dynamic routing
- [3] Vercel AI Gateway provider options
- [4] OpenRouter provider routing