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.
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.
Jeden pakiet dla checkpointera i magazynu. Python 3.10 lub nowszy.
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.
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.
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.
Jeden pakiet dla checkpointera i magazynu. Python 3.10 lub nowszy.
pip install langgraph-checkpoint-hotkvKażdy krok grafu jest teraz zapisywany w HotKV.
graph = builder.compile(checkpointer=HotKVSaver(hotkv.from_url("hotkv://localhost:6379")), interrupt_before=["refund"])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"}})Proces zrestartował się w nocy. Stan nadal jest w HotKV i czeka na tym samym kroku.
graph.get_state({"configurable": {"thread_id": "t-81"}}).nextZatwierdzający mówi tak, a graf kontynuuje od zapisanego punktu kontrolnego.
graph.invoke(None, {"configurable": {"thread_id": "t-81"}})Pamięć długoterminowa żyje w magazynie i jest znajdowana w każdej późniejszej rozmowie.
store.put(("users", "42"), "prefs", {"refunds": "prefers store credit"})Zwroty, zmiany umów i wdrożenia produkcyjne czekają na zatwierdzenie przez osobę, przez minuty lub dni, bez trzymania otwartego procesu.
Uruchomienie, które zawodzi na kroku 40, wznawia się od kroku 40 zamiast zaczynać od nowa.
Wróć do dowolnego wcześniejszego punktu kontrolnego, zmień wejście i rozgałęź, aby zobaczyć, jak zachowałby się agent.
HotKVSaver i AsyncHotKVSaver zachowują stan grafu między uruchomieniami, z przerwaniem, wznowieniem i podróżą w czasie.
HotKVStore przechowuje elementy między wątkami, przeszukiwalne po przestrzeni nazw, filtrze lub znaczeniu, z opcjonalnym wygasaniem.
Przechodzi własny zestaw testów zgodności checkpointera LangGraph, 81 testów w 8 możliwościach, dla obu saverów.
Korzysta z podstawowych typów danych HotKV i jego indeksu wektorowego i działa z licencją enterprise lub bez niej.
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"}})Nie. Checkpointer i magazyn używają podstawowych typów danych HotKV i indeksu wektorowego i działają na serwerze z licencją lub bez.
Tak. AsyncHotKVSaver i AsyncHotKVStore działają z ainvoke i astream.
Tak. Wszystko jest zapisywane pod prefiksem klucza, domyślnie langgraph, który możesz zmienić dla aplikacji lub środowiska.
HotKV mówi protokołem Redis, więc możesz skierować na niego istniejącego klienta i uruchomić te same polecenia.