AI ו-LLMסוכנים

נקודות ביקורת וזיכרון לטווח ארוך ב-LangGraph

שומרים סוכני LangGraph על HotKV. משהים, ממשיכים ומטיילים בזמן במצב הגרף, ושומרים זיכרון לטווח ארוך שניתן לחפש בו לפי משמעות.

בדיקות תאימות שעברו
81
savers
Sync + async
נדרש
בלי רישיון
צעד 1 מתוך 6
מתקינים

חבילה אחת ל-checkpointer ולמאגר. Python 3.10 ומעלה.

סשן לדוגמהplaying
# מתקינים
$ pip install langgraph-checkpoint-hotkv
Successfully installed langgraph-checkpoint-hotkv

הדגמה מונפשת עם פקודות HotKV אמיתיות ותשובות לדוגמה. לחצו על כל שלב כדי לעבור אליו. הפקודות והתשובות נשארות באנגלית, בדיוק כפי שמקלידים ורואים ב-HotKV.

הבעיה

סוכן LangGraph ששומר את המצב שלו בזיכרון התהליך מאבד הכול בהפעלה מחדש. אישורים של בן אדם בלולאה לא יכולים להמתין לילה שלם, אי אפשר להמשיך הרצות שנכשלו, ושום דבר שהסוכן למד לא שורד עד השיחה הבאה.

איך HotKV מטפל בזה

langgraph-checkpoint-hotkv שומר את נקודות הביקורת של כל גרף ב-HotKV. אפשר להפסיק גרף ולהמשיך אותו, או להחזיר אותו לכל צעד קודם ולהסתעף ממנו. המאגר הנלווה שומר זיכרון לטווח ארוך בין שרשורים, שנמצא לפי מרחב שמות, לפי מסנן או, עם מודל embedding, לפי משמעות.

צעד אחר צעד

מה קורה, פקודה אחר פקודה

  1. 01

    מתקינים

    חבילה אחת ל-checkpointer ולמאגר. Python 3.10 ומעלה.

    pip install langgraph-checkpoint-hotkv
  2. 02

    מקמפלים עם checkpointer של 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 במקום להתחיל מחדש.

ניפוי שגיאות והערכה

חוזרים לכל נקודת ביקורת קודמת, משנים את הקלט ומסתעפים, כדי לראות איך הסוכן היה מתנהג.

מובנה

מה מקבלים

Checkpointer

HotKVSaver ו-AsyncHotKVSaver שומרים את מצב הגרף בין הרצות, עם עצירה, המשך וטיול בזמן.

מאגר לטווח ארוך

HotKVStore שומר פריטים בין שרשורים, שניתן לחפש לפי מרחב שמות, מסנן או משמעות, עם תפוגה לפי בחירה.

נבדק בתאימות

עובר את חבילת התאימות של LangGraph עצמו ל-checkpointer, 81 בדיקות ב-8 יכולות, בשני ה-savers.

בלי מודולים, בלי רישיון

משתמש בסוגי הנתונים של הליבה של HotKV ובאינדקס הווקטורי שלו, ועובד עם רישיון Enterprise או בלעדיו.

Checkpointer ומאגר

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

שאלות נפוצות

האם אני צריך רישיון Enterprise?

לא. ה-checkpointer והמאגר משתמשים בסוגי הנתונים של הליבה של HotKV ובאינדקס הווקטורי, ועובדים על שרת עם רישיון או בלעדיו.

האם יש תמיכה ב-async?

כן. AsyncHotKVSaver ו-AsyncHotKVStore עובדים עם ainvoke ו-astream.

האם כמה אפליקציות יכולות לחלוק שרת אחד?

כן. הכול נשמר תחת קידומת מפתח, langgraph כברירת מחדל, שאפשר לשנות לכל אפליקציה או סביבה.

שימושים קשורים

נסו על עומס העבודה שלכם

HotKV מדבר את פרוטוקול Redis, ולכן אפשר להפנות אליו לקוח קיים ולהריץ את אותן פקודות.