Retry policy
Retry policy
适用范围
在以下情况使用此页面:
- 调查出站提供程序调用中的重试行为
默认重试策略适用于所有出站提供程序调用(模型、嵌入等):
默认重试策略
- 最大重试次数:3
- 初始退避:1 秒
- 最大退避:60 秒
- 退避乘数:2
可重试错误
以下错误会触发重试:
- 网络错误(连接超时、ECONNRESET 等)
- 5xx 服务器错误
- 429 速率限制(在尊重
Retry-After标头的情况下) - 特定的提供程序错误(例如 Anthropic 的 5xx)
不可重试错误
以下错误不会触发重试:
- 4xx 客户端错误(不包括 429)
- 身份验证错误(401、403)
- 无效请求错误(400)
- 配额错误(在提供程序未提供重试信息的情况下)
退避行为
- 第一次重试在初始错误后等待 1 秒
- 后续重试将等待时间加倍(1s → 2s → 4s → …)
- 最大等待时间上限为 60 秒
- 如果提供程序返回
Retry-After标头,则使用该值
配置
重试策略目前硬编码在运行时中,无法通过配置覆盖。这是为了确保在提供程序中断时的稳定行为。
提供程序特定行为
某些提供程序可能有特殊处理:
- OpenAI:尊重
Retry-After标头进行速率限制 - Anthropic:5xx 错误会触发重试
- 本地提供程序(Ollama 等):网络错误仍会触发重试
日志记录
在启用详细日志记录的情况下,重试会记录为:
retry: attempt 1/3, backing off 1000msretry: attempt 2/3, backing off 2000ms- 最终成功或失败也会记录
故障转移与重试
重试发生在故障转移之前。这意味着:
- 提供程序尝试操作
- 失败 → 重试(最多 3 次)
- 所有重试用尽 → 故障转移到下一个模型/配置文件(如果配置)
这确保了在尝试更广泛的故障转移之前,在模型或提供程序上尝试瞬态恢复。
相关文档
- /concepts/model-failover:模型故障转移和身份验证配置文件轮换
- /concepts/model-providers:提供程序配置