Error Recovery en AI Agents 2026: El 95% se Rompe en el Primer Error Real — y No, un Try-Catch No Va a Salvarlos

Error Recovery en AI Agents 2026: El 95% se Rompe en el Primer Error Real — y No, un Try-Catch No Va a Salvarlos

Programming· 8 min read

El 95% de los AI Agents Que Construyes Hoy se Van a Romper en Producción

No es culpa del modelo. Es culpa de tu try-catch.

La mayoría de los desarrolladores tratáis los AI Agents como software determinista. Escribís código que asume que el LLM va a devolver JSON válido. Que la tool call va a funcionar. Que el contexto va a caber en la ventana.

Y cuando falla, ponéis un try-catch.

*El problema no es que los agents fallen. Es que los tratáis como funciones puras cuando son sistemas probabilísticos con estado corrupto. *

En software tradicional, un error es un evento. Ocurre, lo capturas, lo manejas, y sigues. El estado del programa no se modifica por el mero hecho de que ocurra un error.

En un AI Agent dirigido por LLMs, el error es el estado. Cuando el modelo devuelve un JSON malformado, ese output ya está en el contexto. Cuando haces retry, el LLM ahora ve su propio error. Contexto contaminado. El siguiente intento arrastra el fallo anterior.

Hagamos los números: el 95% de los AI Agents que se lanzan a producción se rompen en el primer error real que encuentran. No en tests. No en desarrollo. En producción, donde el error ya no es un evento controlado.

La razón no es que los LLMs sean malos. Es que estáis usando la herramienta de recovery equivocada.

El Problema de Fondo: Estado vs Evento

En una API REST tradicional, si una request falla, capturas el error con un bloque catch, devuelves un 500, y el servidor sigue funcionando. El estado interno del sistema nunca se vio afectado por esa request fallida.

*En un AI Agent, el output del LLM se convierte en el estado interno de la próxima iteración. *

Cada vez que el modelo genera texto, ese texto pasa a formar parte del historial de conversación. El agente lo lee. Lo procesa. Toma decisiones basadas en él.

Si ese output contenía un error — un JSON mal parseado, una alucinación, una contradicción lógica — ese error ya está dentro del sistema. Hacer retry no lo borra. El LLM ve su propio fallo en el historial y reacciona de formas impredecibles.

Try-catch tradicional: Captura el error, reintenta sobre el mismo contexto corrupto. El LLM corrige en exceso o refuerza el error original.

Recovery compensatorio: Detecta el error antes de que mute el estado, clasifica el tipo de fallo, y aplica la estrategia correcta según la categoría.

Esto no es un problema de prompts bien escritos. Es un problema de arquitectura.

Por Qué LangChain y AutoGPT No Resuelven Esto

"Pero si uso LangChain, ya tiene error handling integrado."

No. Lo que tiene es retry logic con parsing fallback. Todo determinista. No tiene concepto de "el error ya contaminó el contexto". Su approach es: "falló el parser, reintenta la misma llamada con el mismo contexto".

El problema es que el reintento ocurre sobre el mismo contexto potencialmente corrupto. No hay checkpoints de estado. No hay clasificación de errores. No hay rollback parcial. Es try-catch con otro nombre.

"Pero si pongo temperature=0 y prompts muy específicos, los errores son mínimos."

Eso asume que el error es evitable. Los modelos probabilísticos siempre tienen una tasa de error no nula. Es diseño, no bug. Minimizar errores no es lo mismo que tener un sistema robusto ante ellos. Un agente que funciona el 95% de las veces en tests unitarios puede fallar catastróficamente en producción cuando el error que no esperabas ocurre.

La analogía correcta no es try-catch. Es manejo de errores en sistemas distribuidos. Ahí un error en un nodo puede corromper el estado global, por eso usáis Sagas, Circuit Breakers, y patrones de compensación.

Los AI Agents necesitan el mismo approach: un error no se "maneja", se "compensa".

La Evidencia: 3 Casos de Contaminación que Matan Agents

Caso 1 — Error de formato: El LLM devuelve {"resultado": "valor"} con una coma extra. El parser lanza excepción. Haces retry. Ahora el LLM ve su JSON fallido en el historial y decide "voy a ser más explícito". Devuelve un chunk Markdown explicando el JSON. Segundo error. Tercer retry. El contexto ahora tiene 3 entradas rotas. El agente ya no se recupera.

Caso 2 — Error de alucinación: El agente consulta una API de precios. El LLM alucina un precio que no existe. Ese precio se guarda en la base de datos temporal del agente. La siguiente tool call usa ese precio alucinado para calcular totales. El error se propaga a 3 pasos más. Cuando el usuario pregunta "¿cuánto cuesta?", el agente responde con datos falsos con total confianza.

Caso 3 — Error de consistencia: El agente lleva 15 pasos ejecutando un workflow. En el paso 8, el LLM contradice una decisión del paso 3. El historial ahora contiene dos verdades incompatibles. El agente no sabe cuál mantener. Sigue ejecutando, acumulando contradicciones. El output final es incoherente.

En los tres casos, el error no fue el problema. La falta de validación antes de mutar el estado fue el problema.

El Sistema de Clasificación que Cambia Todo: 3 Tipos de Error, 3 Estrategias

No todos los errores son iguales. Tratarlos igual es el error.

Aquí está la clasificación que necesitas:

| Tipo de error | Ejemplo | Estrategia de recovery |

|---|---|---|

| Formato | JSON inválido, schema mismatch | Reparación local (regex, post-processing, re-prompting con instrucciones estrictas) |

| Estado/Consistencia | Contradicción con historial, lógica rota | Rollback parcial al último checkpoint válido |

| Alucinación | Información factual incorrecta | Reinicio guiado con nuevo contexto + validación externa (otro LLM o grounding en fuentes) |

Los errores de formato son los más fáciles. Un simple post-procesamiento con regex o un re-prompt con instrucciones más estrictas suele bastar. No necesitas tocar el estado del agente.

Los errores de estado requieren rollback. Necesitas un checkpoint del contexto antes de la acción que falló. Restauras ese checkpoint y reintentas con condiciones corregidas.

Las alucinaciones son las más peligrosas. El LLM no sabe que está alucinando. No puedes fiarte de que se auto-corrija. Necesitas validación externa: otro LLM como validador, grounding en fuentes externas (bases de datos, APIs), o ambos.

El Framework: 5 Pasos para Error Recovery Real

Vamos a construir esto paso a paso. Llamémosle el Sistema de Recuperación de 3 Capas para AI Agents.

Paso 1: Implementa el Error Classifier

Primero necesitas un clasificador que categorice cada fallo del LLM antes de que toque el estado del agente.

[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

Paso 2: Construye el CheckpointStateManager

Necesitas un sistema de checkpoints que guarde el estado después de cada paso exitoso, no al inicio de la ejecución.

[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

Paso 3: Implementa el Validation Decorator

Esta es la pieza crítica. Un decorador que intercepta todo output del LLM antes de que actualice el estado del agente.

[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

Paso 4: Diseña Estrategias de Recovery Diferenciadas

Cada tipo de error necesita su propia estrategia. No uses el mismo approach para todo.

[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

Paso 5: Añade Logging Estructurado con Clasificación Automática

Sin métricas, estás ciego. Necesitas saber qué errores ocurren, con qué frecuencia, y en qué contexto.

[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

Cómo Usar Esto en tu Próximo Agent

El workflow completo es simple:

  1. Cada vez que el LLM genera un output, el Error Classifier lo clasifica antes de que toque el estado.
  2. Si no hay error, el CheckpointStateManager guarda el estado actual.
  3. Si hay error, el Validation Decorator aplica la estrategia correcta según el tipo.
  4. El Error Logger registra todo para que puedas iterar y mejorar.
[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

Lo Que Está en Juego

El 95% de los AI Agents que se despliegan hoy en producción no tienen recovery real. Tienen try-catch con esteroides. Y cuando llega el error real — el que no esperabas, el que no cubriste en tests — el agente no se recupera. Acumula errores. Produce outputs incoherentes. Y el usuario pierde confianza.

*La validación de output del LLM no es un lujo. Es la pieza crítica de infraestructura que falta en todos los frameworks actuales. *

Sin ella, tu agente es un sistema que incorpora ciegamente cualquier cosa que el LLM devuelva. Es como ejecutar SQL generado por usuario sin sanitizar. En algún momento, explota.

La buena noticia es que la solución es conocida. No necesitas un framework nuevo. Necesitas aplicar patrones que los sistemas distribuidos llevan usando 20 años: checkpoints, compensación, clasificación de errores, validación antes de mutación.

El Sistema de Recuperación de 3 Capas para AI Agents que te he mostrado — Error Classifier + CheckpointStateManager + Validation Decorator — es el mínimo que cualquier agente en producción debería tener.

Los agents que sobrevivan en producción no serán los más inteligentes. Serán los que sepan recuperarse de sus propios errores sin romperse.

Y eso empieza por dejar de tratar un sistema probabilístico como si fuera determinista.

Artículos relacionados

---

¿Quieres recibir contenido como este cada semana? Suscríbete a mi newsletter

Brian Mena

Brian Mena

Software engineer building profitable digital products: SaaS, directories and AI agents. All from scratch, all in production.

LinkedIn