IA și LLMAgenți

Checkpoint-uri LangGraph și memorie pe termen lung

Persistați agenții LangGraph pe HotKV. Puneți pe pauză, reluați și călătoriți în timp prin starea grafului, și păstrați memoria pe termen lung căutabilă după sens.

teste de conformitate trecute
81
savers
Sincron + asincron
necesară
Fără licență
Pasul 1 din 6
Instalați

Un singur pachet pentru checkpointer și store. Python 3.10 sau mai nou.

Sesiune de exempluplaying
# Instalați
$ pip install langgraph-checkpoint-hotkv
Successfully installed langgraph-checkpoint-hotkv

O demonstrație animată cu comenzi HotKV reale și răspunsuri de exemplu. Faceți clic pe orice pas pentru a sări la el. Comenzile și răspunsurile rămân în engleză, exact așa cum le tastați și le vedeți în HotKV.

Problema

Un agent LangGraph care își ține starea în memoria procesului pierde tot la o repornire. Aprobările cu om în buclă nu pot aștepta peste noapte, rulările eșuate nu pot fi reluate și nimic din ce a învățat agentul nu supraviețuiește până la conversația următoare.

Cum o rezolvă HotKV

langgraph-checkpoint-hotkv stochează în HotKV checkpoint-urile fiecărui graf. Un graf poate fi întrerupt și reluat sau derulat înapoi la orice pas anterior și ramificat de acolo. Store-ul însoțitor păstrează memoria pe termen lung între thread-uri, găsită după spațiu de nume, după filtru sau, cu un model de embedding, după sens.

Pas cu pas

Ce se întâmplă, comandă cu comandă

  1. 01

    Instalați

    Un singur pachet pentru checkpointer și store. Python 3.10 sau mai nou.

    pip install langgraph-checkpoint-hotkv
  2. 02

    Compilați cu un checkpointer HotKV

    Fiecare pas al grafului este acum salvat în HotKV.

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

    Rulați până are nevoie de aprobare

    Graful parcurge pașii, salvând un checkpoint după fiecare, și se oprește înainte de rambursare.

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

    Ore mai târziu, după o repornire

    Procesul a repornit peste noapte. Starea este încă în HotKV și așteaptă la același pas.

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

    Aprobați și reluați

    Aprobatorul spune da, iar graful continuă de la checkpoint-ul salvat.

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

    Rețineți între thread-uri

    Memoria pe termen lung stă în store și este regăsită în orice conversație ulterioară.

    store.put(("users", "42"), "prefs", {"refunds": "prefers store credit"})
Unde se potrivește

Scenarii din lumea reală

Fluxuri de lucru cu om în buclă

Rambursările, modificările de contract și deploy-urile în producție așteaptă aprobarea unei persoane, minute sau zile, fără să țină un proces deschis.

Agenți de cercetare de lungă durată

O rulare care eșuează la pasul 40 se reia de la pasul 40, în loc să înceapă de la zero.

Depanare și evaluare

Reveniți la orice checkpoint anterior, schimbați intrarea și ramificați, ca să vedeți cum s-ar fi comportat agentul.

Integrat

Ce primiți

Checkpointer

HotKVSaver și AsyncHotKVSaver păstrează starea grafului între rulări, cu întrerupere, reluare și călătorie în timp.

Store pe termen lung

HotKVStore păstrează elemente între thread-uri, căutabile după spațiu de nume, filtru sau sens, cu expirare opțională.

Testat pentru conformitate

Trece suita de conformitate a checkpointerelor din LangGraph, 81 de teste în 8 capabilități, pentru ambele savere.

Fără module, fără licență

Folosește tipurile de date de bază ale HotKV și indexul lui vectorial și funcționează cu sau fără o licență enterprise.

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

Întrebări frecvente

Am nevoie de o licență enterprise?

Nu. Checkpointerul și store-ul folosesc tipurile de date de bază ale HotKV și indexul vectorial și funcționează pe un server cu sau fără licență.

Este acceptat modul asincron?

Da. AsyncHotKVSaver și AsyncHotKVStore funcționează cu ainvoke și astream.

Pot mai multe aplicații să partajeze un singur server?

Da. Totul este stocat sub un prefix de chei, langgraph implicit, pe care îl puteți schimba pe aplicație sau pe mediu.

Cazuri de utilizare înrudite

Încercați pe propria sarcină de lucru

HotKV vorbește protocolul Redis, așa că puteți îndrepta spre el un client existent și rula aceleași comenzi.