ШІ та LLMАгенти

Чекпойнти LangGraph та довгострокова пам'ять

Зберігайте агентів LangGraph на HotKV. Призупиняйте, відновлюйте й подорожуйте в часі станом графа, а довгострокову пам'ять тримайте придатною для пошуку за змістом.

тестів відповідності пройдено
81
сейвери
Синхронно + асинхронно
потрібно
Без ліцензії
Крок 1 з 6
Встановлення

Один пакет для чекпойнтера й сховища. Python 3.10 або новіший.

Приклад сесіїplaying
# Встановлення
$ pip install langgraph-checkpoint-hotkv
Successfully installed langgraph-checkpoint-hotkv

Анімований покроковий розбір з реальними командами HotKV і прикладами відповідей. Натисніть будь-який крок, щоб перейти до нього. Команди та відповіді залишаються англійською, так само, як ви вводите й бачите їх у HotKV.

Проблема

Агент LangGraph, що тримає стан у пам'яті процесу, втрачає все після перезапуску. Схвалення за участі людини не можуть чекати всю ніч, невдалі запуски не можна відновити, і нічого, чого агент навчився, не доживає до наступної розмови.

Як це вирішує HotKV

langgraph-checkpoint-hotkv зберігає чекпойнти кожного графа в HotKV. Граф можна перервати й відновити або перемотати до будь-якого раннього кроку й розгалузити від нього. Супутнє сховище тримає довгострокову пам'ять між потоками, яку знаходять за простором імен, за фільтром або, з моделлю ембедингів, за змістом.

Крок за кроком

Що відбувається, команда за командою

  1. 01

    Встановлення

    Один пакет для чекпойнтера й сховища. Python 3.10 або новіший.

    pip install langgraph-checkpoint-hotkv
  2. 02

    Скомпілюйте з чекпойнтером HotKV

    Кожен крок графа тепер зберігається в HotKV.

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

    Виконуйте, доки не знадобиться схвалення

    Граф проходить свої кроки, зберігаючи чекпойнт після кожного, і зупиняється перед поверненням коштів.

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

    Через години, після перезапуску

    Процес перезапустився вночі. Стан досі в HotKV і чекає на тому самому кроці.

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

    Схваліть і відновіть

    Схвалювач каже «так», і граф продовжує зі збереженого чекпойнта.

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

    Пам'ятайте між потоками

    Довгострокова пам'ять живе у сховищі й знаходиться знову в будь-якій наступній розмові.

    store.put(("users", "42"), "prefs", {"refunds": "prefers store credit"})
Де це доречно

Реальні сценарії

Робочі процеси за участі людини

Повернення коштів, зміни договорів і розгортання в продакшені чекають на схвалення людини хвилини чи дні, не тримаючи процес відкритим.

Довготривалі дослідницькі агенти

Запуск, що впав на кроці 40, відновлюється з кроку 40, а не починається спочатку.

Налагодження та оцінювання

Поверніться до будь-якого раннього чекпойнта, змініть вхідні дані та розгалузьте, щоб побачити, як поводився б агент.

Вбудовано

Що ви отримуєте

Чекпойнтер

HotKVSaver і AsyncHotKVSaver зберігають стан графа між запусками, з перериванням, відновленням і подорожжю в часі.

Довгострокове сховище

HotKVStore зберігає елементи між потоками, доступні для пошуку за простором імен, фільтром або змістом, з необов'язковим терміном дії.

Перевірено на відповідність

Проходить власний набір тестів відповідності чекпойнтерів LangGraph, 81 тест у 8 можливостях, для обох сейверів.

Без модулів, без ліцензії

Використовує базові типи даних HotKV та його векторний індекс і працює з корпоративною ліцензією або без неї.

Чекпойнтер і сховище

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

Поширені запитання

Чи потрібна мені корпоративна ліцензія?

Ні. Чекпойнтер і сховище використовують базові типи даних HotKV та векторний індекс і працюють на сервері з ліцензією або без неї.

Чи підтримується асинхронність?

Так. AsyncHotKVSaver і AsyncHotKVStore працюють з ainvoke і astream.

Чи можуть кілька застосунків ділити один сервер?

Так. Усе зберігається під префіксом ключа, типово langgraph, який можна змінити для кожного застосунку чи середовища.

Пов'язані сценарії використання

Спробуйте на власному навантаженні

HotKV розмовляє протоколом Redis, тож ви можете направити на нього наявний клієнт і виконувати ті самі команди.