Робочі процеси за участі людини
Повернення коштів, зміни договорів і розгортання в продакшені чекають на схвалення людини хвилини чи дні, не тримаючи процес відкритим.
Зберігайте агентів LangGraph на HotKV. Призупиняйте, відновлюйте й подорожуйте в часі станом графа, а довгострокову пам'ять тримайте придатною для пошуку за змістом.
Один пакет для чекпойнтера й сховища. Python 3.10 або новіший.
Анімований покроковий розбір з реальними командами HotKV і прикладами відповідей. Натисніть будь-який крок, щоб перейти до нього. Команди та відповіді залишаються англійською, так само, як ви вводите й бачите їх у HotKV.
Агент LangGraph, що тримає стан у пам'яті процесу, втрачає все після перезапуску. Схвалення за участі людини не можуть чекати всю ніч, невдалі запуски не можна відновити, і нічого, чого агент навчився, не доживає до наступної розмови.
langgraph-checkpoint-hotkv зберігає чекпойнти кожного графа в HotKV. Граф можна перервати й відновити або перемотати до будь-якого раннього кроку й розгалузити від нього. Супутнє сховище тримає довгострокову пам'ять між потоками, яку знаходять за простором імен, за фільтром або, з моделлю ембедингів, за змістом.
Один пакет для чекпойнтера й сховища. Python 3.10 або новіший.
pip install langgraph-checkpoint-hotkvКожен крок графа тепер зберігається в HotKV.
graph = builder.compile(checkpointer=HotKVSaver(hotkv.from_url("hotkv://localhost:6379")), interrupt_before=["refund"])Граф проходить свої кроки, зберігаючи чекпойнт після кожного, і зупиняється перед поверненням коштів.
graph.invoke({"messages": [("user", "Refund order 1182")]}, {"configurable": {"thread_id": "t-81"}})Процес перезапустився вночі. Стан досі в HotKV і чекає на тому самому кроці.
graph.get_state({"configurable": {"thread_id": "t-81"}}).nextСхвалювач каже «так», і граф продовжує зі збереженого чекпойнта.
graph.invoke(None, {"configurable": {"thread_id": "t-81"}})Довгострокова пам'ять живе у сховищі й знаходиться знову в будь-якій наступній розмові.
store.put(("users", "42"), "prefs", {"refunds": "prefers store credit"})Повернення коштів, зміни договорів і розгортання в продакшені чекають на схвалення людини хвилини чи дні, не тримаючи процес відкритим.
Запуск, що впав на кроці 40, відновлюється з кроку 40, а не починається спочатку.
Поверніться до будь-якого раннього чекпойнта, змініть вхідні дані та розгалузьте, щоб побачити, як поводився б агент.
HotKVSaver і AsyncHotKVSaver зберігають стан графа між запусками, з перериванням, відновленням і подорожжю в часі.
HotKVStore зберігає елементи між потоками, доступні для пошуку за простором імен, фільтром або змістом, з необов'язковим терміном дії.
Проходить власний набір тестів відповідності чекпойнтерів LangGraph, 81 тест у 8 можливостях, для обох сейверів.
Використовує базові типи даних HotKV та його векторний індекс і працює з корпоративною ліцензією або без неї.
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"}})Ні. Чекпойнтер і сховище використовують базові типи даних HotKV та векторний індекс і працюють на сервері з ліцензією або без неї.
Так. AsyncHotKVSaver і AsyncHotKVStore працюють з ainvoke і astream.
Так. Усе зберігається під префіксом ключа, типово langgraph, який можна змінити для кожного застосунку чи середовища.
HotKV розмовляє протоколом Redis, тож ви можете направити на нього наявний клієнт і виконувати ті самі команди.