0Pricing
AI Agents · Lección

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 plan

Intervenció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

  1. Por qué los grafos superan a las cadenas planas
  2. Nodos, aristas y estado
  3. Enrutamiento y ramificación condicionales
  4. Persistir el estado del grafo (puntos de control)
← Volver a AI Agents