AI and LLMAgents

LangGraph Checkpoints and Long-Term Memory

Persist LangGraph agents on HotKV. Pause, resume and time-travel through graph state, and keep long-term memory searchable by meaning.

conformance tests passed
81
savers
Sync + async
needed
No license
Step 1 of 6
Install

One package for the checkpointer and the store. Python 3.10 or newer.

Example sessionplaying
# Install
$ pip install langgraph-checkpoint-hotkv
Successfully installed langgraph-checkpoint-hotkv

An animated walkthrough with real HotKV commands and example replies. Click any step to jump to it.

The problem

A LangGraph agent that keeps its state in process memory loses everything on a restart. Human-in-the-loop approvals cannot wait overnight, failed runs cannot be resumed, and nothing the agent learned survives to the next conversation.

How HotKV handles it

langgraph-checkpoint-hotkv stores each graph's checkpoints in HotKV. A graph can be interrupted and resumed, or rewound to any earlier step and branched from it. The companion store keeps long-term memory across threads, found by namespace, by filter or, with an embedding model, by meaning.

Step by step

What happens, command by command

  1. 01

    Install

    One package for the checkpointer and the store. Python 3.10 or newer.

    pip install langgraph-checkpoint-hotkv
  2. 02

    Compile with a HotKV checkpointer

    Every step of the graph is now saved in HotKV.

    graph = builder.compile(checkpointer=HotKVSaver(hotkv.from_url("hotkv://localhost:6379")), interrupt_before=["refund"])
  3. 03

    Run until it needs approval

    The graph works through its steps, saving a checkpoint after each, and stops before the refund.

    graph.invoke({"messages": [("user", "Refund order 1182")]}, {"configurable": {"thread_id": "t-81"}})
  4. 04

    Hours later, after a restart

    The process restarted overnight. The state is still in HotKV, waiting at the same step.

    graph.get_state({"configurable": {"thread_id": "t-81"}}).next
  5. 05

    Approve and resume

    The approver says yes and the graph continues from the saved checkpoint.

    graph.invoke(None, {"configurable": {"thread_id": "t-81"}})
  6. 06

    Remember across threads

    Long-term memory lives in the store and is found again in any later conversation.

    store.put(("users", "42"), "prefs", {"refunds": "prefers store credit"})
Where it fits

Real-world scenarios

Human-in-the-loop workflows

Refunds, contract changes and production deployments wait for a person to approve, for minutes or days, without holding a process open.

Long-running research agents

A run that fails at step 40 resumes from step 40 instead of starting over.

Debugging and evaluation

Go back to any earlier checkpoint, change the input and branch, to see how the agent would have behaved.

Built in

What you get

Checkpointer

HotKVSaver and AsyncHotKVSaver keep graph state between runs, with interrupt, resume and time travel.

Long-term store

HotKVStore keeps items across threads, searchable by namespace, filter or meaning, with optional expiry.

Conformance tested

Passes LangGraph's own checkpointer conformance suite, 81 tests in 8 capabilities, for both savers.

No modules, no license

Uses HotKV's core data types and its vector index, and works with or without an enterprise license.

Checkpointer and store

python
from langgraph.checkpoint.hotkv import HotKVSaver

with HotKVSaver.from_conn_string("hotkv://localhost:6379") as checkpointer:
    graph = builder.compile(checkpointer=checkpointer)
    graph.invoke({"messages": [("user", "hi")]}, {"configurable": {"thread_id": "1"}})

Common questions

Do I need an enterprise license?

No. The checkpointer and store use HotKV's core data types and vector index, and work on a server with or without a license.

Is async supported?

Yes. AsyncHotKVSaver and AsyncHotKVStore work with ainvoke and astream.

Can several apps share one server?

Yes. Everything is stored under a key prefix, langgraph by default, which you can change per application or environment.

Related use cases

Try it on your own workload

HotKV speaks the Redis protocol, so you can point an existing client at it and run these same commands.