CommunityProgramación y desarrollogithub.com

langchain-ai/langgraph-persistence

INVOCA ESTA HABILIDAD cuando tu LangGraph necesite persistir estado, recordar conversaciones, viajar a través del historial o configurar el alcance del checkpointer en subgrafos. Cubre checkpointers, thread_id, viaje en el tiempo, Store y modos de persistencia en subgrafos.

¿Qué es langgraph-persistence?

Esta habilidad está diseñada para desarrolladores que usan LangGraph y necesitan implementar persistencia de estado en sus agentes conversacionales o flujos de trabajo. Te permite guardar el estado de un grafo en ejecución, recordar conversaciones anteriores y navegar por el historial de ejecuciones mediante el concepto de "viaje en el tiempo". Soporta varios backend de checkpointers, como SQLite, PostgreSQL y Memgraph, y permite configurar el ámbito de persistencia en subgrafos (persistencia por hilo o global). También incluye el `Store` para datos que deben persistir entre sesiones. Es compatible con plataformas como Claude Code, Cursor y Codex, y se integra directamente con la API de LangGraph para controlar la ejecución de nodos y la recuperación de estados pasados. La habilidad explica cómo usar `thread_id` para asociar conversaciones, cómo habilitar el viaje en el tiempo para depuración o bifurcación, y cómo configurar el checkpointer scoping en subgrafos para evitar colisiones de estado.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/langchain-ai/langchain-skills/tree/main/skills/langgraph-persistence

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace langgraph-persistence?

INVOCA ESTA HABILIDAD cuando tu LangGraph necesite persistir estado, recordar conversaciones, viajar a través del historial o configurar el alcance del checkpointer en subgrafos. Cubre checkpointers, thread_id, viaje en el tiempo, Store y modos de persistencia en subgrafos.

Descripción general

Esta habilidad proporciona las herramientas y configuraciones necesarias para que los grafos de LangGraph mantengan estado entre ejecuciones. Permite almacenar y recuperar el estado de la conversación, navegar por versiones anteriores (time travel) y gestionar la persistencia a nivel de subgrafo.

Plataformas compatibles

  • Claude Code
  • Cursor
  • Codex
  • Cualquier entorno que ejecute LangGraph

Funcionalidades principales

Checkpointers

Los checkpointers son el mecanismo central para persistir el estado en LangGraph. La habilidad cubre:

  • MemorySaver: checkpointers en memoria (útil para pruebas)
  • SqliteSaver: persistencia en archivos SQLite
  • PostgresSaver: persistencia en bases de datos PostgreSQL
  • AsyncSqliteSaver: versión asíncrona de SQLite

Puedes configurar un checkpointer al crear el grafo:

from langgraph.checkpoint import MemorySaver
from langgraph.graph import StateGraph

checkpointer = MemorySaver()
graph = StateGraph(MyState)
graph.set_checkpointer(checkpointer)

thread_id

Cada conversación o sesión se identifica con un thread_id. Esto permite que diferentes hilos de conversación tengan estados separados:

config = {"configurable": {"thread_id": "conversacion-1"}}
result = graph.invoke(input_data, config)

Viaje en el tiempo (y bifurcación)

Con el checkpointer habilitado, puedes recuperar estados anteriores y bifurcar la ejecución desde cualquier punto:

# Obtener historial de estados
states = graph.get_state_history(config)

# Recuperar un estado específico
target_config = next(s for s in states if s.id == "id-deseado")
graph.invoke(input_data, target_config)

Store

El Store permite datos que persisten entre diferentes hilos y sesiones, a diferencia del checkpointer que almacena el estado del grafo por hilo:

from langgraph.store import InMemoryStore

store = InMemoryStore()
graph = StateGraph(MyState)
graph.set_store(store)

Persistencia en subgrafos

Cuando usas subgrafos, puedes controlar el alcance del checkpointer:

  • Modo por hilo (por defecto): cada subgrafo comparte el mismo thread_id que el grafo padre.
  • Modo global (usando checkpointer padre): el subgrafo utiliza el checkpointer del padre pero con su propio namespace.
  • Modo independiente: el subgrafo tiene su propio checkpointer separado.

Configuración de ejemplo:

from langgraph.graph import StateGraph

def subgraph_builder():
    builder = StateGraph(SubState)
    # ... agregar nodos
    return builder.compile(checkpointer=MemorySaver(), checkpointer_mode="parent")

Ejemplos de uso

Persistencia de conversación

from langgraph.checkpoint import SqliteSaver

with SqliteSaver.from_conn_string("checkpoints.db") as saver:
    graph = StateGraph(MyState).compile(checkpointer=saver)
    # Ejecutar con thread_id para persistir
    graph.invoke({"messages": [("user", "Hola")]}, {"configurable": {"thread_id": "1"}})

Viaje en el tiempo para depuración

graph = StateGraph(MyState).compile(checkpointer=MemorySaver())
graph.invoke({...}, {"configurable": {"thread_id": "debug-1"}})
# ... más invocaciones ...
for state in graph.get_state_history({"configurable": {"thread_id": "debug-1"}}):
    print(state.values)

Enlaces útiles

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

langchain-ai/deep-agents-core

INVOKE THIS SKILL when building ANY Deep Agents application. Covers create_deep_agent(), harness architecture, SKILL.md format, and configuration options.

langchain-ai/deep-agents-memory

INVOKE THIS SKILL when your Deep Agent needs memory, persistence, or filesystem access. Covers StateBackend (ephemeral), StoreBackend (persistent), FilesystemMiddleware, and CompositeBackend for routing.

langchain-ai/deep-agents-orchestration

INVOKE THIS SKILL when using subagents, task planning, or human approval in Deep Agents. Covers SubAgentMiddleware, TodoList for planning, and HITL interrupts.

langchain-ai/framework-selection

INVOKE THIS SKILL at the START of any LangChain/LangGraph/Deep Agents project, before writing any agent code. Determines which framework layer is right for the task: LangChain, LangGraph, Deep Agents, or a combination. Must be consulted before other agent skills.

langchain-ai/langchain-dependencies

INVOKE THIS SKILL when setting up a new project or when asked about package versions, installation, or dependency management for LangChain, LangGraph, LangSmith, or Deep Agents. Covers required packages, minimum versions, environment requirements, versioning best practices, and common community tool packages for both Python and TypeScript.

langchain-ai/langchain-fundamentals

Create LangChain agents with create_agent, define tools, and use middleware for human-in-the-loop and error handling.

langchain-ai/langchain-middleware

INVOKE THIS SKILL when you need human-in-the-loop approval, custom middleware, or structured output. Covers HumanInTheLoopMiddleware for human approval of dangerous tool calls, creating custom middleware with hooks, Command resume patterns, and structured output with Pydantic/Zod.

langchain-ai/langchain-rag

INVOKE THIS SKILL when building ANY retrieval-augmented generation (RAG) system. Covers document loaders, RecursiveCharacterTextSplitter, embeddings (OpenAI), and vector stores (Chroma, FAISS, Pinecone).

langchain-ai/langgraph-fundamentals

INVOKE THIS SKILL when writing ANY LangGraph code. Covers StateGraph, state schemas, nodes, edges, Command, Send, invoke, streaming, and error handling.

langchain-ai/langgraph-human-in-the-loop

INVOKE THIS SKILL when implementing human-in-the-loop patterns, pausing for approval, or handling errors in LangGraph. Covers interrupt(), Command(resume=...), approval/validation workflows, and the 4-tier error handling strategy.

langchain-ai/swarm

Dispatches many independent items in parallel: create a table, fan out to subagents, aggregate results. One row = one unit of work.

Skills relacionados