Mazinger OS · disponibilidad del agente
Cinco escalones encadenados para que ningún mensaje se pierda por una credencial vencida, una cuota agotada o un proveedor caído. Con el mapa de a quién se le avisa y en qué situación.
La tesis
Hoy, cuando una corrida falla, el sistema marca el motor como caído y lanza el error igual. El mensaje del usuario muere. El siguiente sale bien, pero ese ya se perdió. Con seis escalones y esa mecánica, cada transición sigue costando un mensaje.
La pieza que falta no son más motores: es reintentar el mismo pedido en el escalón siguiente, sin que el usuario se entere. Todo lo demás de esta página existe para que ese reintento sea seguro, barato y automático.
Cómo leer la página
El recorrido
Ordenados de más barato a más caro. La cadena arranca siempre en el escalón sano más alto y baja solo lo necesario. Los cuatro primeros son Anthropic; el último sale de Anthropic y por eso está dibujado aparte.
| Escalón | Cómo se activa | Qué hay que saber |
|---|---|---|
| 0 · Suscripción | Quitando ANTHROPIC_API_KEY del entorno del subproceso | Cuenta Max 20x. Es el camino por defecto de hoy |
| 1 · API key 1 | Seteando ANTHROPIC_API_KEY | La key eclipsa al login OAuth: es el mecanismo que ya usa el fallback actual |
| 2 · API key 2 | Igual que la key 1, con la segunda clave | Siempre de otra organización de Anthropic: así no comparte el pool de rate limit y no cae junto con la key 1 |
| 3 · Respaldo | Directorio propio (CLAUDE_CONFIG_DIR) con el mail y el token de un login previo, inyectados de forma automática | Es una segunda suscripción, también de otra organización. No hay paso manual: la credencial se inyecta sola. Cada suscripción vive en un solo lugar, así no se desloguean entre sí al rotar |
| 4 · Proxy | ANTHROPIC_BASE_URL al proxy, solo en ese subproceso | Un solo escalón que por detrás prueba varios proveedores, en el orden que definas. Agregar uno nuevo no toca el código de Mazinger |
Los dos últimos escalones
El truco que hace posible todo esto es que el agente habla un idioma, el de Anthropic, y hay una pieza que traduce ese idioma a cualquier otro proveedor. Así se agregan motores sin tocar código ni agente cuando se requiera switchear.
| Pieza | Dónde vive | Qué pasa si se cae |
|---|---|---|
| Escalones 0 a 3 | Anthropic | El corto los saltea de una y entra al escalón 4 |
| Un proveedor dentro del proxy | OpenAI, Gemini, MiniMax… | El proxy prueba el siguiente de su lista, sin que Mazinger intervenga |
| Escalón 4, el proxy | Un proceso propio, en el mismo servidor | Cadena agotada: alerta grave y aviso del pedido perdido |
El proxy corre como un proceso más del servidor, con el mismo gestor que levanta a los demás, así que si se cae se reinicia solo. Y no agrega un punto único de fallo nuevo: si el servidor muere, ya murió todo lo demás.
El mecanismo
No todo error hace bajar un escalón, y algunos no deberían hacer bajar ninguno. La cadena hace una pregunta a la vez, de arriba hacia abajo: la primera que responde «sí» decide qué hacer, sin ramas que seguir.
Cuando el problema es el proveedor
Si Anthropic está saturado, recorrer sus cuatro escalones antes de llegar a otro proveedor es latencia regalada: los cuatro van a fallar igual. El corto los saltea de una y se cierra solo cuando el proveedor vuelve.
Los eslabones como conjunto
Cada escalón tapa un modo de fallo distinto. Ninguno solo alcanza; encadenados, cubren todo el espectro salvo una caída total del proveedor.
| Modo de fallo | Quién lo tapa | Qué pasaba antes |
|---|---|---|
| Sesión OAuth vencida o rota | API key 1 | Caída total hasta reinyectar a mano (18 min el 22-jul) |
| Cuota semanal de la suscripción agotada | API key 1 | Ya cubierto por el fallback actual |
| API key sin crédito | API key 2 | Sin red: fallo directo al usuario |
| Las dos keys sin crédito | Suscripción de respaldo | Sin red |
| Las dos suscripciones vencidas | El proxy, con el proveedor que definas | Sin red |
| Pico transitorio de Anthropic (529) | Reintento aleatorizado en el mismo escalón | Se perdía el mensaje |
| Saturación sostenida de Anthropic | El corto saltea 0 a 3 y entra al proxy de una | Sin red, y recorriendo escalones inútiles |
| Un proveedor alternativo caído | El proxy prueba el siguiente de su lista, solo | Sin red |
| Degradación crónica sin caída visible | Alerta por tasa si el respaldo pasa del 5% del tráfico | Invisible: la factura subía sin que nadie lo notara |
Estado actual, sin cambios
Todo aviso del sistema termina en el mismo lugar: un WhatsApp a cuatro personas. No hay filtros ni destinatarios por tipo de aviso: los cuatro reciben todo.
| Situación | Qué dice el mensaje | Se repite |
|---|---|---|
| Se está gastando la cuota al 80%, 90% y 95% |
Avisa el porcentaje de uso y la hora a la que se renueva. Aclara que al 99% se cambia solo a modo API para que nada falle | Una vez por cada escalón |
| Se agotó la cuota al 99% |
Avisa que se cambió automáticamente a modo API: los mensajes siguen saliendo, ahora con coste por token | Una vez, al cambiar |
| Se cayó la sesión de Claude y el modo API la cubre |
Avisa que la sesión caducó, que ya activó el modo API solo, y dice qué hay que hacer: rehacer el login en el servidor. Aclara que mientras tanto se factura por consumo | Con espera entre avisos |
| El agente no responde falló la sesión y también la API |
El más grave: avisa que los mensajes de los usuarios están quedando sin respuesta, y da los dos pasos a revisar (crédito de la clave, y rehacer el login) | Con espera entre avisos |
| Se quedó sin tokens en pleno uso | Avisa la hora y el error concreto, y advierte que mensajes, tareas programadas y jobs van a seguir fallando hasta renovar la cuota | Máximo uno cada 30 min |
| Volvió la normalidad | Avisa que la cuota se renovó y que se volvió al modo suscripción, sin coste por token | Una vez, al volver |
| Situación nueva | Qué diría el mensaje |
|---|---|
| Se cayó un escalón y otro lo reemplazó | Cuál se cayó, por qué, y cuál está sirviendo ahora. El usuario no se enteró de nada |
| Anthropic está saturado | Que se saltearon los cuatro escalones de Anthropic y se está sirviendo desde otro proveedor |
| Sirviendo desde fuera de Anthropic | Con qué proveedor se está respondiendo mientras dure |
| Una suscripción está por vencer | Cuál, y qué día caduca. Llega a los 7, 3 y 1 día, para que renovarla sea una tarea agendada y no una urgencia |
| El plan B trabaja de más | Que un escalón de respaldo pasó del 5% del tráfico en 24 h: hay algo roto arriba aunque nada se haya caído |
| Se está facturando por API | Que el modo API sigue activo, con el gasto acumulado. Recordatorio cada 24 h |
| No respondió ningún escalón | La más grave: se agotó la cadena entera y hay pedidos de usuario perdidos |