Saltearse al contenido

Circuit Breaker y failover

Claudex incluye un circuit breaker integrado para cada perfil de proveedor, con failover automatico a proveedores de respaldo cuando se detectan fallos.

success
┌──────────────┐
│ │
▼ failure │
Closed ────────► Open
▲ │
│ timeout │
│ expired ▼
└─────────── HalfOpen
failure → back to Open
EstadoComportamiento
ClosedOperacion normal. Las solicitudes pasan. Los fallos se cuentan.
OpenLas solicitudes se bloquean. Se activa el failover a proveedores de respaldo.
HalfOpenTras el tiempo de recuperacion, se permite una solicitud de prueba. Exito: pasa a Closed; fallo: vuelve a Open.
ParametroValor
Umbral de fallos3 fallos consecutivos
Tiempo de recuperacion30 segundos

Define proveedores de respaldo en tu perfil para habilitar el failover automatico:

[[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"] # cadena de failover

Cuando grok falla 3 veces consecutivas:

  1. El circuit breaker se abre para grok
  2. La solicitud se reintenta con deepseek
  3. Si deepseek tambien falla, se prueba chatgpt
  4. Cada proveedor de respaldo tiene su propio circuit breaker independiente

Para perfiles OAuth, las respuestas HTTP 401 reciben un tratamiento especial:

  1. El proxy invalida el token OAuth actual
  2. Intenta una carga fresca del token desde la cadena de credenciales
  3. Reintenta la solicitud con el nuevo token
  4. Solo cuenta como fallo del circuit breaker si el reintento tambien falla

Esto evita que la expiracion temporal de tokens provoque failovers innecesarios.

Un verificador de estado en segundo plano se ejecuta cada ~30 segundos, enviando solicitudes de prueba ligeras a todos los perfiles habilitados. El estado de salud se muestra en el panel TUI con codificacion por colores:

  • Verde: saludable
  • Amarillo: degradado (fallos recientes)
  • Rojo: circuit breaker abierto