# 什么是 LLM API 故障切换？

> LLM API 故障切换是指首次线路失败、超时或不可用后，通过另一条已批准服务线路完成请求的受控尝试。它不是无限重试，也不应悄悄选择未经评估的模型。安全的故障切换会明确合格线路、可重试条件、超时预算、副作用保护，并为每次尝试留下证据。

_最后复核 2026-08-15 · [编辑复核](https://keeprouter.com/editorial-policy#editorial-team)_

## 重试、供应商切换与模型回退并不相同

| 动作 | 变化的对象 | 主要风险 |
|---|---|---|
| 重试同一线路 | 除尝试次数外不变 | 重复工作与更长延迟 |
| 切换供应商 | 服务供应商或 deployment | 版本、区域、策略或行为不同 |
| 回退模型 | 公开模型 ID 或家族 | 质量、工具、安全与成本不同 |

应使用能够恢复故障的最小动作。临时连接错误可能适合重试，供应商故障可能需要切换到另一条已批准线路，而模型回退必须经过产品评测，因为它会改变用户收到的结果。

## 决定哪些失败可以重试

认证错误、错误载荷、不支持字段和无效模型 ID 通常需要修复配置或代码。重试只会消耗时间，也可能增加费用。限流、部分服务器错误、连接重置和超时可以重试，但必须遵守供应商契约与应用截止时间。

流式让决策更复杂。如果客户端已经收到部分文本，重新发送完整请求可能产生重复内容。工具调用风险更高：连接失败前，上游可能已经生成或执行动作。应用需要幂等 Key、持久工具状态，以及何时改为人工检查的明确规则。

## 建立明确的故障切换阶梯

1. 列出请求需要的准确端点与能力。
2. 让每条线路通过相同的流式、工具和输出测试。
3. 设定线路顺序、单次截止时间与总截止时间。
4. 按可重试性分类错误，并在永久错误时停止。
5. 使用稳定 operation ID 防止重复副作用。
6. 记录每次尝试、线路、错误、用量与最终结果。
7. 即使用户仍收到 200，也要在故障切换频率变化时告警。

[LLM 路由答案](/zh/answers/what-is-llm-routing)解释更完整的策略，[故障切换设计指南](/zh/blog/llm-failover-design-guide)提供生产测试计划。

## 计算费用与缓存差异

失败尝试也可能消耗输入或输出 token，第二个供应商也未必共享首次线路的提示词缓存。模型回退还会改变 tokenization 与输出长度。应分别核对每次尝试，并计算整个逻辑操作的成本，而不是只看最终成功响应。

## 保持用户契约诚实

如果产品承诺某个具体模型，不要悄悄返回另一个家族。如果允许回退，应在合适的产品层说明策略，并在请求证据中保留实际模型。只有恢复后的输出仍满足任务时，可用性才有意义。

## 常见问题

### 故障切换与重试一样吗？

不一样。重试可以重复同一线路，故障切换则改用另一条已批准供应商、deployment 或模型线路。

### 哪些错误不应重试？

无效认证、不支持参数、错误输入和未知模型 ID 通常需要修复，而不是再尝试一次。

### 流式请求可以故障切换吗？

可以，但必须明确处理部分输出与终止事件状态，避免重复或客户端状态损坏。

### 失败请求会产生费用吗？

可能会。供应商可能对失败前已消费输入或生成输出计费，应核对每次尝试。

### 回退应该使用更便宜的模型吗？

只有该模型通过任务验收，并且产品契约允许行为变化时才可以。

## 参考的一手资料

1. [Cloudflare AI Gateway request handling](https://developers.cloudflare.com/ai-gateway/configuration/request-handling/)
2. [Cloudflare AI Gateway dynamic routing](https://developers.cloudflare.com/ai-gateway/features/dynamic-routing/)
3. [Vercel AI Gateway provider options](https://vercel.com/docs/ai-gateway/models-and-providers/provider-options)
4. [OpenRouter provider routing](https://openrouter.ai/docs/guides/routing/provider-selection)

## 继续阅读

- [模型路由](https://keeprouter.com/zh/features/model-routing.md)
- [什么是 LLM 路由？](https://keeprouter.com/zh/answers/what-is-llm-routing.md)
- [LLM 故障切换设计指南：恢复请求，同时避免不安全重试](https://keeprouter.com/zh/blog/llm-failover-design-guide.md)
- [AI Gateway 会增加延迟吗？](https://keeprouter.com/zh/answers/does-ai-gateway-add-latency.md)
- [如何用证据、限额与责任归属控制多模型 API 成本](https://keeprouter.com/zh/blog/control-multi-model-api-costs.md)
- [Agent 构建者](https://keeprouter.com/zh/built-for/agent-builders.md)

## 用真实模型验证契约

创建权限受限的 Key，从实时目录选择模型，并运行应用真正依赖的请求形态。

[创建免费 Key](https://keeprouter.com/login?returnTo=%2Fconsole%2Fkeys%3Fmodel%3Dfree) · [实时模型与价格](https://keeprouter.com/models.md)
