Persistir el estado del grafo (puntos de control)
Guarde el estado en Postgres o SQLite para poder pausar, reanudar y auditar un agente de larga duración.
Persistir el estado del grafo (puntos de control) es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.
¿Por qué persistir el estado?
Los agentes de larga duración necesitan:
- Pausarse y reanudarse horas después
- Recuperarse de fallos durante la ejecución
- Admitir la intervención humana (esperar aprobación)
- Reproducir una ejecución para depurarla
Los checkpointers de LangGraph persisten el estado en cada límite entre nodos.
Checkpointer en memoria
Para desarrollo y pruebas:
from langgraph.checkpoint.memory import MemorySaver
checkpointer = MemorySaver()
app = graph.compile(checkpointer=checkpointer)Checkpointer de Postgres
Para producción:
from langgraph.checkpoint.postgres import PostgresSaver
checkpointer = PostgresSaver.from_conn_string('postgresql://...')
await checkpointer.setup() # create tables
app = graph.compile(checkpointer=checkpointer)Checkpointer de Sqlite
Persistencia local sin un servidor de bases de datos:
from langgraph.checkpoint.sqlite import SqliteSaver
import sqlite3
conn = sqlite3.connect('agents.db', check_same_thread=False)
checkpointer = SqliteSaver(conn)IDs de hilo
Cada ejecución tiene un thread_id, como un ID de sesión. Los distintos usuarios obtienen thread_ids independientes; reanudar una ejecución significa usar el mismo ID:
config = {'configurable': {'thread_id': 'user-42-conversation-1'}}
result = app.invoke({'messages': [...]}, config)Reanudar una ejecución
Llame a invoke con el mismo thread_id y sin entrada; el agente continúa desde donde se detuvo:
# Some hours later:
app.invoke(None, config)Inspección del estado
Lea el estado actual de un hilo:
snapshot = app.get_state(config)
print(snapshot.values) # current state dict
print(snapshot.next) # which node is next
print(snapshot.created_at)Historial del estado
Recorra hacia atrás todos los checkpoints:
for snapshot in app.get_state_history(config):
print(snapshot.created_at, snapshot.values)Bifurcar una ejecución
Puede actualizar el estado en cualquier checkpoint anterior y volver a ejecutar desde allí, lo que resulta útil para depurar escenarios hipotéticos:
app.update_state(config, {'plan': 'a different plan'})
app.invoke(None, config) # continue with the new planIntervención humana con interrupt_before
Pause la ejecución antes de un nodo sensible para que una persona pueda revisarlo:
app = graph.compile(
checkpointer=checkpointer,
interrupt_before=['send_email']
)
result = app.invoke({'messages': [...]}, config)
# Agent paused. Human inspects state.
# When approved:
app.invoke(None, config)Reanudar después de editar
La persona puede editar el estado antes de reanudar la ejecución:
app.update_state(config, {'email_draft': 'final version'})
app.invoke(None, config)Seguimiento de costes entre checkpoints
El estado persistido puede incluir contadores de tokens y costes que sobreviven a los fallos:
class State(TypedDict):
cost_usd: Annotated[float, lambda a, b: a + b]
# Every LLM-calling node adds to it.Limpieza
Los hilos antiguos se acumulan. Elimine periódicamente los completados para controlar el almacenamiento:
await checkpointer.delete(thread_id='old-thread')Reanudar hilos
¿Cómo reanuda una ejecución de agente después de un fallo?
Repaso
Use SqliteSaver localmente y PostgresSaver en producción. Los IDs de hilo separan las ejecuciones. Combine esto con interrupt_before para los flujos de trabajo con intervención humana.
Preguntas frecuentes
¿La lección «Persistir el estado del grafo (puntos de control)» es gratis?
Sí — el texto completo de «Persistir el estado del grafo (puntos de control)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.
¿Qué aprenderé en «Persistir el estado del grafo (puntos de control)»?
Guarde el estado en Postgres o SQLite para poder pausar, reanudar y auditar un agente de larga duración. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AI Agents?
No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Persistir el estado del grafo (puntos de control)»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AI Agents?
Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Por qué los grafos superan a las cadenas planas
- Nodos, aristas y estado
- Enrutamiento y ramificación condicionales
- Persistir el estado del grafo (puntos de control)