בקצרה

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

הרעיון של המאמר, משורטט ב־18 שניות. לחצו על הרמקול לסאונד.

מהי שמירת מצב ב-LangGraph?

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

מדריך השמירה, LangGraph Persistence, מציין ש-MemorySaver ו-InMemorySaver שומרים נקודות ביקורת בזיכרון RAM, והן אובדות בהפעלה מחדש של התהליך. הדגמה שזוכרת הודעה קודמת בזמן שהשרת פועל אינה הוכחה להתאוששות. בתהליך פרודקשן בניהול עצמי, בחרו אחסון מתמשך ובדקו את תצורת הפריסה בפועל.

ממפים את העבודה שצריכה להישמר

דוגמה להמחשה: סוכן מסייע לקלוט ספק במערכת רכש מסוג לגאסי (Legacy). הוא מחלץ פרטים שנשלחו, מזהה מסמכים חסרים, ממתין לתשובה ומכין רשומה לבדיקת עובד. בזמן שהספק אוסף מסמכים מתבצעת פריסה של גרסה חדשה. העסק צריך שהמשימה תישאר גלויה ושניתן יהיה להמשיך בה בלי לבקש מכולם להתחיל מחדש.

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

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

הרצה עמידה דורשת תכנון התאוששות

הרצה עמידה (Durable Execution) נשענת על התקדמות שתועדה. ב-LangGraph, מנגנוני Checkpointer שומרים מצב בגבולות של Super-steps. ההתאוששות אינה שימור של תהליך רץ בכל הוראת קוד. התיעוד של Interrupts מציין במפורש שחידוש הריצה מתחיל מחדש מתחילת הצומת שנעצר, ולכן קוד שלפני נקודת העצירה רץ שוב.

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

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

בודקים הפעלה מחדש לפני שמבטיחים רציפות

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

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

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

בוחרים מודל תפעול פשוט שאפשר לסמוך עליו

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

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

שאלות נפוצות

מהי שמירת מצב ב-LangGraph?

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

מה זה durable execution?

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

מה זה LangGraph?

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

לקריאה נוספת

רוצים לבחון איך זה מתאים למערכות שלכם?

לשירות הרלוונטי