断路器与故障转移
Claudex 为每个提供商 profile 内置了断路器,当检测到故障时自动转移到备用提供商。
success ┌──────────────┐ │ │ ▼ failure │ Closed ────────► Open ▲ │ │ timeout │ │ expired ▼ └─────────── HalfOpen │ failure → back to Open| 状态 | 行为 |
|---|---|
| Closed | 正常运行。请求正常通过。记录失败次数。 |
| Open | 请求被阻止。触发故障转移到备用提供商。 |
| HalfOpen | 恢复超时后,允许一个探针请求通过。成功则回到 Closed;失败则回到 Open。 |
| 参数 | 值 |
|---|---|
| 故障阈值 | 连续 3 次失败 |
| 恢复超时 | 30 秒 |
故障转移配置
Section titled “故障转移配置”在 profile 中定义备用提供商以启用自动故障转移:
[[profiles]]name = "grok"provider_type = "OpenAICompatible"base_url = "https://api.x.ai/v1"api_key = "xai-..."default_model = "grok-3-beta"backup_providers = ["deepseek", "chatgpt"] # 故障转移链当 grok 连续失败 3 次时:
grok的断路器打开- 请求重试
deepseek - 如果
deepseek也失败,尝试chatgpt - 每个备用提供商有独立的断路器
OAuth 401 重试
Section titled “OAuth 401 重试”对于 OAuth profile,HTTP 401 响应有特殊处理:
- 代理使当前 OAuth token 失效
- 尝试从凭证链重新加载 token
- 使用新 token 重试请求
- 仅在重试也失败时才计为断路器故障
这可以防止临时的 token 过期触发不必要的故障转移。
后台健康检查器每约 30 秒运行一次,向所有启用的 profile 发送轻量探针请求。健康状态在 TUI 仪表盘中以颜色显示:
- 绿色:健康
- 黄色:降级(近期有失败)
- 红色:断路器已打开