LangGraph aprende a sobrevivir a los fallos: reintentos, timeouts y manejadores de errores para agentes en producción

LangChain ha publicado un análisis detallado de los tres primitivos de tolerancia a fallos integrados en LangGraph. RetryPolicy ofrece reintentos automáticos con backoff exponencial, TimeoutPolicy limita el tiempo de ejecución de un nodo, tanto en tiempo de reloj como por inactividad, y error_handler ejecuta la lógica de limpieza cuando se agotan los reintentos. Para flujos complejos de varios pasos con efectos secundarios reales, se recomienda el patrón SAGA.

Procesado por IA desde LangChain Blog; editado por Hamidun News
LangGraph aprende a sobrevivir a los fallos: reintentos, timeouts y manejadores de errores para agentes en producción
Fuente: LangChain Blog. Collage: Hamidun News.
Escuchar artículo
Ficha técnica y cifras clave
ParámetroDatos
Fuente originalLangChain Blog ↗
Editor jefe
`wall_clock_timeout`el tiempo máximo de ejecución de un nodo, medido en tiempo de reloj, desde el inicio hasta el final
Dato clave #2Ambos límites pueden combinarse en una misma política, y se activa el que se cumpla primero
Dato clave #3Al superar el límite, el motor lanza una excepción automáticamente

LangChain ha publicado una guía detallada sobre los tres primitivos de tolerancia a fallos integrados en LangGraph. Sin ellos, cualquier agente en producción acaba rompiéndose justo donde el prototipo funcionaba como un reloj.

Por qué los prototipos fallan en producción

En el laboratorio, un agente de LangGraph parece fiable: los datos de entrada son fijos, las API externas responden rápido y el usuario siempre está disponible. En la operación real el panorama es distinto. Los servicios externos se cuelgan o devuelven un 503 bajo carga. Los proveedores de LLM retrasan las respuestas varios minutos en horas pico. En los escenarios human-in-the-loop, una persona puede tardar horas en responder. Sin un tratamiento específico, cada uno de estos casos acaba en un agente bloqueado o caído.

La solución clásica consiste en envolver cada llamada en try/except, escribir temporizadores y añadir lógica de reintentos a mano. Funciona, pero el código defensivo crece, se mezcla con la lógica de negocio y se convierte en una fuente de errores. LangGraph propone otro enfoque: tres primitivos integrados en el motor y de funcionamiento declarativo.

RetryPolicy: reintentos automáticos

RetryPolicy configura reintentos automáticos con backoff exponencial. Los parámetros ajustables son el número máximo de intentos, el retardo inicial, el retardo máximo y el factor de crecimiento entre intentos.

La política puede definirse de forma puntual, para un nodo concreto que llama a una API externa inestable, o aplicarse a todo el grafo como valor global por defecto. La segunda opción resulta útil cuando toda la interacción con servicios externos debe seguir unas mismas reglas de recuperación.

TimeoutPolicy: límites de tiempo

TimeoutPolicy resuelve otro problema: limita el tiempo que un nodo puede ocupar. Admite dos tipos de límites:

  • `wall_clock_timeout`: el tiempo máximo de ejecución de un nodo, medido en tiempo de reloj, desde el inicio hasta el final
  • `idle_timeout`: el tiempo máximo de inactividad. Es especialmente importante en escenarios human-in-the-loop: si el usuario no ha respondido en N minutos, el agente debe continuar por una rama alternativa o terminar con un error
  • Ambos límites pueden combinarse en una misma política, y se activa el que se cumpla primero
  • Al superar el límite, el motor lanza una excepción automáticamente
  • La política es aplicable a un nodo, un subgrafo o todo el grafo

La ventaja clave de ambos primitivos es que viven dentro del motor y ven el contexto completo del estado del grafo. Los decoradores y envoltorios externos no pueden hacerlo.

error_handler y el patrón SAGA

error_handler es el tercer primitivo y se activa cuando se han agotado todos los reintentos. Es el último punto de recuperación: deshacer acciones ya ejecutadas, enviar notificaciones, guardar diagnósticos y llevar al agente a un estado seguro.

Para agentes de varios pasos con efectos secundarios reales, como reservar recursos, cobrar pagos o crear registros en sistemas externos, LangChain recomienda el patrón SAGA. La idea es que cada paso del agente va acompañado de una operación compensatoria que anula su efecto. Si el paso N falla después de completarse con éxito los pasos del 1 al N-1, las operaciones compensatorias se ejecutan en orden inverso y el sistema vuelve a un estado consistente. LangGraph permite integrar SAGA directamente en el grafo: las compensaciones se guardan junto a los nodos y error_handler lanza su cadena cuando hay un fallo.

«Que las políticas de tolerancia a fallos estén dentro del motor y no

fuera de él es una diferencia fundamental: la lógica de recuperación recibe el contexto completo del estado del grafo», según el blog de LangChain.

Qué significa

LangGraph ofrece herramientas maduras para llevar los agentes de IA del prototipo a la operación real. Los reintentos, los timeouts y las transacciones compensatorias están integrados en el motor y no exigen envolver cada nodo a mano. Para los equipos que construyen agentes para cargas de producción, esto reduce el volumen de código defensivo y hace que el comportamiento ante fallos sea predecible y controlable.

Preguntas frecuentes sobre la noticia

¿Qué se sabe sobre Por qué los prototipos fallan en producción?

En el laboratorio, un agente de LangGraph parece fiable: los datos de entrada son fijos, las API externas responden rápido y el usuario siempre está disponible. En la operación real el panorama es distinto. Los servicios externos se cuelgan o devuelven un 503 bajo carga. Los proveedores de LLM retrasan las respuestas varios minutos en horas pico. En los escenarios human-in-the-loop, una persona puede tardar horas en responder. Sin un tratamiento específico, cada uno de estos casos acaba en un agente bloqueado o caído. La solución clásica consiste en envolver cada llamada en

¿Qué se sabe sobre RetryPolicy: reintentos automáticos?

RetryPolicy configura reintentos automáticos con backoff exponencial. Los parámetros ajustables son el número máximo de intentos, el retardo inicial, el retardo máximo y el factor de crecimiento entre intentos. La política puede definirse de forma puntual, para un nodo concreto que llama a una API externa inestable, o aplicarse a todo el grafo como valor global por defecto. La segunda opción resulta útil cuando toda la interacción con servicios externos debe seguir unas mismas reglas de recuperación.

¿Qué se sabe sobre TimeoutPolicy: límites de tiempo?

TimeoutPolicy resuelve otro problema: limita el tiempo que un nodo puede ocupar. Admite dos tipos de límites: `wall_clock_timeout`: el tiempo máximo de ejecución de un nodo, medido en tiempo de reloj, desde el inicio hasta el final `idle_timeout`: el tiempo máximo de inactividad. Es especialmente importante en escenarios human-in-the-loop: si el usuario no ha respondido en N minutos, el agente debe continuar por una rama alternativa o terminar con un error Ambos límites pueden combinarse en una misma política, y se activa el que se cumpla primero Al superar el límite, el mo

ZK
Zhemal Khamidun — CPO de Alpina Digital, product manager de AlpinaGPT. Crea productos de IA desde 2019. Hamidun News es un proyecto personal que creció hasta ser un agregador en producción con más de 6.000 lectores.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
¿Qué te parece?
Cargando comentarios…