人間が介在するワークフロー
返金、契約変更、本番デプロイは、プロセスを開いたままにせずに、人の承認を数分でも数日でも待てます。
LangGraphエージェントをHotKVで永続化します。グラフの状態を一時停止、再開、巻き戻しでき、長期メモリは意味で検索できます。
チェックポインターとストアは1つのパッケージです。Python 3.10以降が必要です。
実際のHotKVコマンドと応答例を使ったアニメーションのウォークスルーです。任意のステップをクリックすると、そこに移動します。 コマンドと応答は、HotKVで実際に入力し表示されるとおり英語のままです。
状態をプロセスのメモリに保持するLangGraphエージェントは、再起動するとすべてを失います。人間による承認を一晩待つことはできず、失敗した実行は再開できず、エージェントが学んだことは次の会話まで残りません。
langgraph-checkpoint-hotkvは、各グラフのチェックポイントをHotKVに保存します。グラフは中断して再開することも、以前の任意のステップまで巻き戻してそこから分岐させることもできます。付属のストアはスレッドをまたいで長期メモリを保持し、ネームスペース、フィルター、または埋め込みモデルを使えば意味で見つけられます。
チェックポインターとストアは1つのパッケージです。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自身のチェックポインター適合テストスイート(8つの機能にわたる81件のテスト)に、両方のセーバーで合格しています。
HotKVのコアデータ型とベクトルインデックスを使い、Enterpriseライセンスの有無にかかわらず動作します。
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プロトコルに対応しているため、既存のクライアントを向けるだけで、これらと同じコマンドを実行できます。