IA et LLMAgents

Checkpoints LangGraph

Persistez vos agents LangGraph sur HotKV. Mettez en pause, reprenez et remontez le temps dans l'état du graphe, et gardez une mémoire à long terme interrogeable par le sens.

tests de conformité réussis
81
savers
Sync + async
requise
Aucune licence
Étape 1 sur 6
Installer

Un seul paquet pour le checkpointer et le store. Python 3.10 ou plus récent.

Session d’exempleplaying
# Installer
$ pip install langgraph-checkpoint-hotkv
Successfully installed langgraph-checkpoint-hotkv

Une démonstration animée avec de vraies commandes HotKV et des exemples de réponses. Cliquez sur une étape pour y accéder directement. Les commandes et les réponses restent en anglais, exactement comme vous les saisissez et les voyez dans HotKV.

Le problème

Un agent LangGraph qui garde son état en mémoire du processus perd tout au redémarrage. Les validations humaines ne peuvent pas attendre jusqu'au lendemain, les exécutions échouées ne peuvent pas reprendre et rien de ce que l'agent a appris ne survit jusqu'à la conversation suivante.

Comment HotKV s'en charge

langgraph-checkpoint-hotkv stocke les checkpoints de chaque graphe dans HotKV. Un graphe peut être interrompu puis repris, ou ramené à n'importe quelle étape antérieure pour en partir dans une autre direction. Le store associé conserve une mémoire à long terme entre les threads, retrouvée par namespace, par filtre ou, avec un modèle d'embedding, par le sens.

Étape par étape

Ce qui se passe, commande par commande

  1. 01

    Installer

    Un seul paquet pour le checkpointer et le store. Python 3.10 ou plus récent.

    pip install langgraph-checkpoint-hotkv
  2. 02

    Compiler avec un checkpointer HotKV

    Chaque étape du graphe est désormais enregistrée dans HotKV.

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

    Exécuter jusqu'à la validation

    Le graphe parcourt ses étapes en enregistrant un checkpoint après chacune, et s'arrête avant le remboursement.

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

    Des heures plus tard, après un redémarrage

    Le processus a redémarré pendant la nuit. L'état est toujours dans HotKV, à la même étape.

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

    Valider et reprendre

    Le validateur dit oui et le graphe reprend depuis le checkpoint enregistré.

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

    Se souvenir d'un thread à l'autre

    La mémoire à long terme vit dans le store et se retrouve dans n'importe quelle conversation ultérieure.

    store.put(("users", "42"), "prefs", {"refunds": "prefers store credit"})
Où cela s'applique

Scénarios concrets

Workflows avec validation humaine

Les remboursements, les modifications de contrat et les déploiements en production attendent la validation d'une personne, pendant des minutes ou des jours, sans garder de processus ouvert.

Agents de recherche de longue durée

Une exécution qui échoue à l'étape 40 reprend à l'étape 40 au lieu de tout recommencer.

Débogage et évaluation

Revenez à n'importe quel checkpoint antérieur, modifiez l'entrée et créez une branche pour voir comment l'agent se serait comporté.

Intégré

Ce que vous obtenez

Checkpointer

HotKVSaver et AsyncHotKVSaver conservent l'état du graphe entre les exécutions, avec interruption, reprise et retour dans le temps.

Store à long terme

HotKVStore conserve des éléments entre les threads, interrogeables par namespace, par filtre ou par le sens, avec expiration en option.

Conformité testée

Passe la suite de conformité officielle des checkpointers LangGraph, 81 tests sur 8 capacités, pour les deux savers.

Ni modules, ni licence

Utilise les types de données de base de HotKV et son index vectoriel, et fonctionne avec ou sans licence enterprise.

Checkpointer et 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"}})

Questions fréquentes

Ai-je besoin d'une licence enterprise ?

Non. Le checkpointer et le store utilisent les types de données de base de HotKV et son index vectoriel, et fonctionnent sur un serveur avec ou sans licence.

L'asynchrone est-il pris en charge ?

Oui. AsyncHotKVSaver et AsyncHotKVStore fonctionnent avec ainvoke et astream.

Plusieurs applications peuvent-elles partager un serveur ?

Oui. Tout est stocké sous un préfixe de clé, langgraph par défaut, que vous pouvez changer par application ou par environnement.

Cas d'usage associés

Essayez-le sur votre propre charge de travail

HotKV parle le protocole Redis. Vous pouvez donc y connecter un client existant et exécuter ces mêmes commandes.