AI और LLMएजेंट

LangGraph Checkpoints और Long-Term Memory

LangGraph एजेंट को HotKV पर persist कीजिए। Graph की स्थिति में pause, resume और time-travel कीजिए, और long-term memory को अर्थ के आधार पर खोजने लायक रखिए।

conformance टेस्ट पास
81
saver
Sync + async
चाहिए
लाइसेंस नहीं
कदम 1 में से 6
इंस्टॉल करें

Checkpointer और store के लिए एक ही पैकेज। Python 3.10 या नया।

उदाहरण सेशनplaying
# इंस्टॉल करें
$ pip install langgraph-checkpoint-hotkv
Successfully installed langgraph-checkpoint-hotkv

असली HotKV कमांड और उदाहरण रिस्पॉन्स के साथ एक एनिमेटेड वॉकथ्रू। किसी भी कदम पर क्लिक करके वहां पहुंचें। कमांड और रिस्पॉन्स अंग्रेज़ी में ही रहते हैं, ठीक वैसे जैसे आप HotKV में टाइप करते और देखते हैं।

समस्या

जो LangGraph एजेंट अपनी स्थिति process की मेमोरी में रखता है, वह रीस्टार्ट पर सब कुछ खो देता है। Human-in-the-loop अनुमोदन रात भर इंतज़ार नहीं कर सकते, फेल हुए रन दोबारा शुरू नहीं हो सकते, और एजेंट ने जो सीखा वह अगली बातचीत तक नहीं बचता।

HotKV इसे कैसे संभालता है

langgraph-checkpoint-hotkv हर graph के checkpoints HotKV में रखता है। Graph को रोककर फिर चलाया जा सकता है, या किसी भी पिछले स्टेप तक वापस ले जाकर वहाँ से नई branch बनाई जा सकती है। साथी store threads के पार long-term memory रखता है, जिसे namespace से, filter से या, embedding मॉडल के साथ, अर्थ से खोजा जाता है।

कदम दर कदम

क्या होता है, कमांड दर कमांड

  1. 01

    इंस्टॉल करें

    Checkpointer और store के लिए एक ही पैकेज। Python 3.10 या नया।

    pip install langgraph-checkpoint-hotkv
  2. 02

    HotKV checkpointer के साथ compile करें

    Graph का हर स्टेप अब HotKV में सेव होता है।

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

    अनुमोदन की ज़रूरत आने तक चलाएँ

    Graph अपने स्टेप पूरे करता है, हर स्टेप के बाद एक checkpoint सेव करता है, और रिफंड से पहले रुक जाता है।

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

    घंटों बाद, रीस्टार्ट के बाद

    Process रात में रीस्टार्ट हो गया। स्थिति अब भी HotKV में है और उसी स्टेप पर इंतज़ार कर रही है।

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

    अनुमोदन दें और resume करें

    अनुमोदक हाँ कहता है और graph सेव किए गए checkpoint से आगे बढ़ता है।

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

    Threads के पार याद रखें

    Long-term memory store में रहती है और बाद की किसी भी बातचीत में फिर मिल जाती है।

    store.put(("users", "42"), "prefs", {"refunds": "prefers store credit"})
कहां फ़िट बैठता है

असली परिदृश्य

Human-in-the-loop वर्कफ़्लो

रिफंड, कॉन्ट्रैक्ट में बदलाव और प्रोडक्शन डिप्लॉयमेंट मिनटों या दिनों तक किसी व्यक्ति के अनुमोदन का इंतज़ार करते हैं, बिना कोई process खुला रखे।

लंबे समय तक चलने वाले रिसर्च एजेंट

जो रन स्टेप 40 पर फेल होता है, वह शुरू से नहीं बल्कि स्टेप 40 से फिर चलता है।

डिबगिंग और evaluation

किसी भी पिछले checkpoint पर लौटिए, इनपुट बदलिए और branch कीजिए, ताकि देख सकें कि एजेंट कैसे व्यवहार करता।

अंतर्निहित

आपको क्या मिलता है

Checkpointer

HotKVSaver और AsyncHotKVSaver रनों के बीच graph की स्थिति रखते हैं, interrupt, resume और time travel के साथ।

Long-term store

HotKVStore threads के पार items रखता है, जिन्हें namespace, filter या अर्थ से खोजा जा सकता है, वैकल्पिक expiry के साथ।

Conformance टेस्टेड

LangGraph की अपनी checkpointer conformance suite पास करता है, 8 क्षमताओं में 81 टेस्ट, दोनों saver के लिए।

कोई modules नहीं, कोई लाइसेंस नहीं

HotKV के कोर डेटा टाइप और उसके vector index का उपयोग करता है, और enterprise लाइसेंस के साथ या बिना, दोनों में काम करता है।

Checkpointer और store

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-langgraph on GitHub

आम सवाल

क्या मुझे enterprise लाइसेंस चाहिए?

नहीं। Checkpointer और store HotKV के कोर डेटा टाइप और vector index का उपयोग करते हैं, और लाइसेंस वाले या बिना लाइसेंस वाले सर्वर पर काम करते हैं।

क्या async समर्थित है?

हाँ। AsyncHotKVSaver और AsyncHotKVStore ainvoke और astream के साथ काम करते हैं।

क्या कई ऐप एक सर्वर साझा कर सकते हैं?

हाँ। सब कुछ एक key prefix के तहत रखा जाता है, जो डिफ़ॉल्ट रूप से langgraph है और जिसे आप हर ऐप या एनवायरनमेंट के लिए बदल सकते हैं।

संबंधित उपयोग के मामले

इसे अपने वर्कलोड पर आज़माएं

HotKV Redis प्रोटोकॉल बोलता है, इसलिए आप किसी मौजूदा क्लाइंट को इसकी ओर इंगित करके यही कमांड चला सकते हैं।