langgraph-persistence
Agent skill fromlangchain-ai/langchain-skills
INVOKE THIS SKILL when your LangGraph needs to persist state, remember conversations, travel through history, or configure subgraph checkpointer scoping. Covers checkpointers, thread_id, time travel, Store, and subgraph persistence modes.
How to install langgraph-persistence
install langgraph-persistence
# install the langchain-skills pack with the skills CLI
npx skills add langchain-ai/langchain-skills# or add only this skill to Claude Code: copy the folder
config/skills/langgraph-persistence/
# into
~/.claude/skills/langgraph-persistence/ (all projects)
.claude/skills/langgraph-persistence/ (one project)
1<overview>2LangGraph's persistence layer enables durable execution by checkpointing graph state:34- **Checkpointer**: Saves/loads graph state at every super-step5- **Thread ID**: Identifies separate checkpoint sequences (conversations)6- **Store**: Cross-thread memory for user preferences, facts78**Two memory types:**9- **Short-term** (checkpointer): Thread-scoped conversation history10- **Long-term** (store): Cross-thread user preferences, facts11</overview>1213<checkpointer-selection>1415| Checkpointer | Use Case | Production Ready |16|--------------|----------|------------------|17| `InMemorySaver` | Testing, development | No |18| `SqliteSaver` | Local development | Partial |19| `PostgresSaver` | Production | Yes |2021</checkpointer-selection>2223---2425## Checkpointer Setup2627<ex-basic-persistence>28<python>29Set up a basic graph with in-memory checkpointing and thread-based state persistence.3031```python32from langgraph.checkpoint.memory import InMemorySaver33from langgraph.graph import StateGraph, START, END34from typing_extensions import TypedDict, Annotated35import operator3637class State(TypedDict):38 messages: Annotated[list, operator.add]3940def add_message(state: State) -> dict:41 return {"messages": ["Bot response"]}4243checkpointer = InMemorySaver()4445graph = (46 StateGraph(State)47 .add_node("respond", add_message)48 .add_edge(START, "respond")49 .add_edge("respond", END)50 .compile(checkpointer=checkpointer) # Pass at compile time51)5253# ALWAYS provide thread_id54…
Excerpt shown under the repository's MIT license.
