langgraph-persistence

Configure LangGraph checkpointers, thread state, time travel, and cross-thread memory stores.

Updated May 1, 2026
One-click install
npx skills add https://github.com/ricardoo022/4dill --skill langgraph-persistence-ricardoo022
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: langgraph-persistence
Source: https://github.com/ricardoo022/4dill/tree/main/.gemini/skills/langgraph-persistence
Command: npx skills add https://github.com/ricardoo022/4dill --skill langgraph-persistence-ricardoo022

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? LangGraph agents lose conversation state between invocations by default, and developers struggle to correctly configure checkpointing, thread isolation, subgraph persistence scoping, and long-term memory across conversations. ## Core Features & Use Cases - Checkpointer Setup: Configure InMemorySaver for testing or PostgresSaver for production-grade durable state persistence. - Thread Management & Time Travel: Isolate conversations by thread_id, browse checkpoint history, replay past states, and fork from earlier checkpoints. - Subgraph Persistence Modes: Choose between checkpointer=False, None, or True to control interrupts, multi-turn memory, and parallel namespace isolation. - Long-Term Memory Store: Share user preferences and facts across threads using Store with put, get, search, and delete operations. - Use Case: You are building a multi-user chatbot where each user needs isolated conversation history plus shared long-term preferences; this Skill shows how to combine a Postgres checkpointer with a Store and correct thread_id configuration. ## Quick Start Ask the AI to set up a LangGraph graph with a Postgres checkpointer and thread-based conversation memory for your chatbot.

Frequently Asked Questions about langgraph-persistence

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I persist LangGraph state between invocations?▼

Compile your graph with a checkpointer and always pass a thread_id in the config. Use InMemorySaver for testing or PostgresSaver for production, then invoke with {"configurable": {"thread_id": "session-1"}} so state persists across calls.

How to implement long-term memory in LangGraph across threads?▼

Use a Store such as InMemoryStore compiled alongside the checkpointer. Save data with store.put under a user-scoped namespace, and access it inside nodes via the Runtime parameter's runtime.store, making it available across all thread_ids.

InMemorySaver vs PostgresSaver for LangGraph checkpointing?▼

InMemorySaver suits testing and development but loses all data on process restart. PostgresSaver is production-ready, persists checkpoints in PostgreSQL, and requires a one-time setup() call to create tables.

Why is my LangGraph agent not remembering previous messages?▼

The most common cause is missing thread_id in the invocation config, which prevents state persistence. Verify you compiled the graph with a checkpointer and pass {"configurable": {"thread_id": "..."}} on every invoke call.

Can I run the same stateful LangGraph subgraph in parallel?▼

No. Subgraphs compiled with checkpointer=True cannot be called multiple times within one node because calls write to the same checkpoint namespace and conflict. Wrap each subgraph in its own StateGraph with a unique node name for namespace isolation.

Why does update_state append instead of replacing my list?▼

update_state passes values through the state's reducers, so a list with an add reducer gets appended rather than replaced. Wrap the value in Overwrite from langgraph.types to replace the state value directly.