AI i LLMAgenci

Punkty kontrolne LangGraph i pamięć długoterminowa

Zapisuj agentów LangGraph w HotKV. Wstrzymuj, wznawiaj i cofaj się w czasie po stanie grafu oraz zachowuj pamięć długoterminową przeszukiwalną według znaczenia.

zaliczonych testów zgodności
81
saverów
Sync + async
nie jest potrzebna
Bez licencji
Krok 1 z 6
Zainstaluj

Jeden pakiet dla checkpointera i magazynu. Python 3.10 lub nowszy.

Przykładowa sesjaplaying
# Zainstaluj
$ pip install langgraph-checkpoint-hotkv
Successfully installed langgraph-checkpoint-hotkv

Animowany przegląd z prawdziwymi poleceniami HotKV i przykładowymi odpowiedziami. Kliknij dowolny krok, aby do niego przejść. Polecenia i odpowiedzi pozostają po angielsku, dokładnie tak, jak je wpisujesz i widzisz w HotKV.

Problem

Agent LangGraph, który trzyma stan w pamięci procesu, traci wszystko po restarcie. Zatwierdzenia z udziałem człowieka nie mogą czekać do rana, nieudanych uruchomień nie da się wznowić, a nic, czego agent się nauczył, nie przetrwa do następnej rozmowy.

Jak radzi sobie z tym HotKV

langgraph-checkpoint-hotkv zapisuje punkty kontrolne każdego grafu w HotKV. Graf można przerwać i wznowić albo cofnąć do dowolnego wcześniejszego kroku i rozgałęzić od niego. Towarzyszący magazyn przechowuje pamięć długoterminową między wątkami, znajdowaną po przestrzeni nazw, filtrze lub, z modelem embeddingów, według znaczenia.

Krok po kroku

Co się dzieje, polecenie po poleceniu

  1. 01

    Zainstaluj

    Jeden pakiet dla checkpointera i magazynu. Python 3.10 lub nowszy.

    pip install langgraph-checkpoint-hotkv
  2. 02

    Skompiluj z checkpointerem HotKV

    Każdy krok grafu jest teraz zapisywany w HotKV.

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

    Uruchom do momentu wymagającego zatwierdzenia

    Graf przechodzi swoje kroki, zapisując punkt kontrolny po każdym, i zatrzymuje się przed zwrotem pieniędzy.

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

    Godziny później, po restarcie

    Proces zrestartował się w nocy. Stan nadal jest w HotKV i czeka na tym samym kroku.

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

    Zatwierdź i wznów

    Zatwierdzający mówi tak, a graf kontynuuje od zapisanego punktu kontrolnego.

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

    Pamiętaj między wątkami

    Pamięć długoterminowa żyje w magazynie i jest znajdowana w każdej późniejszej rozmowie.

    store.put(("users", "42"), "prefs", {"refunds": "prefers store credit"})
Gdzie się sprawdza

Scenariusze z życia

Przepływy z udziałem człowieka

Zwroty, zmiany umów i wdrożenia produkcyjne czekają na zatwierdzenie przez osobę, przez minuty lub dni, bez trzymania otwartego procesu.

Długo działający agenci badawczy

Uruchomienie, które zawodzi na kroku 40, wznawia się od kroku 40 zamiast zaczynać od nowa.

Debugowanie i ewaluacja

Wróć do dowolnego wcześniejszego punktu kontrolnego, zmień wejście i rozgałęź, aby zobaczyć, jak zachowałby się agent.

Wbudowane

Co dostajesz

Checkpointer

HotKVSaver i AsyncHotKVSaver zachowują stan grafu między uruchomieniami, z przerwaniem, wznowieniem i podróżą w czasie.

Magazyn długoterminowy

HotKVStore przechowuje elementy między wątkami, przeszukiwalne po przestrzeni nazw, filtrze lub znaczeniu, z opcjonalnym wygasaniem.

Przetestowany pod kątem zgodności

Przechodzi własny zestaw testów zgodności checkpointera LangGraph, 81 testów w 8 możliwościach, dla obu saverów.

Bez modułów, bez licencji

Korzysta z podstawowych typów danych HotKV i jego indeksu wektorowego i działa z licencją enterprise lub bez niej.

Checkpointer i magazyn

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

Częste pytania

Czy potrzebuję licencji enterprise?

Nie. Checkpointer i magazyn używają podstawowych typów danych HotKV i indeksu wektorowego i działają na serwerze z licencją lub bez.

Czy async jest obsługiwany?

Tak. AsyncHotKVSaver i AsyncHotKVStore działają z ainvoke i astream.

Czy kilka aplikacji może współdzielić jeden serwer?

Tak. Wszystko jest zapisywane pod prefiksem klucza, domyślnie langgraph, który możesz zmienić dla aplikacji lub środowiska.

Powiązane przypadki użycia

Wypróbuj na własnym obciążeniu

HotKV mówi protokołem Redis, więc możesz skierować na niego istniejącego klienta i uruchomić te same polecenia.