היקפי סוכני AI ומחזורי חיים של כלים
בניית סוכני AI היא משימה קשה מכיוון שלא ניתן לשלוט בהם בקלות. עליכם להגביל עלויות. עליכם לעצור לולאות שאינן נשלטות (runaway loops). עליכם לראות בדיוק מה קרה כאשר הרצה נכשלת.
בניתי דרך חדשה לטפל בזה. היא משתמשת בפרימיטיב של סוכן שנקרא runAgent עם AgentScope. היא כוללת תקציבים, אירועים הניתנים להפעלה מחדש (replayable events), וביטול מובנה (structured cancellation).
כך זה עובד:
- פונקציות כלים הן פונקציות async רגילות. אין צורך בסכמות (schemas) מורכבות.
- תקציבים נבדקים לפני שכלים מחזירים ערך. אם הגעתם למגבלה, המערכת מבטלת את ההרצה כולה.
- ניסיונות חוזרים (retries) וזמני קצובים (timeouts) מתבצעים ברמת הכלי.
- הביטול מתפשט (propagates). אם משתמש עוצר את הסוכן, המערכת מבטלת מיד את ה-fetch הפעיל או את שאילתת מסד הנתונים.
- אתם מקבלים לוג הניתן להפעלה מחדש. כל אירוע הוא מוגדר טיפוס (typed) ומסודר לפי סדר.
ניתן להגדיר שלושה סוגי מגבלות:
- CostBudget: מגביל את סך ההוצאה בדולרים (USD).
- OpenAITokens: מגביל את סך הטוקנים (tokens) שנוצלו.
- AgentToolCalls: מגביל את סך קריאות הכלים כדי לעצור לולאות שאינן נשלטות.
הגישה הזו שונה מפריימוורקים (frameworks) אחרים. רוב הפריימוורקים משתמשים בסכמות JSON כבדות או בטיפוסיות רופפת (loose typing). לעיתים קרובות חסרים להם פרימיטיבים של תקציב ברמה ראשונה (first-class). אין להם דרך מאוחדת לבטל הכל בבת אחת.
עם המערכת הזו, לסוכן שלכם יש את אותו מחזור חיים כמו לאפליקציה שלכם. אם התהליך האב נעצר, הסוכן נעצר. אין runtime שני שיש לנהל.
ניתן להשתמש בלוג האירועים כדי:
- לבנות דאשבורדים עבור מפות חום (heatmaps) של כשלים.
- להפעיל מחדש הרצה בסביבת בדיקה.
- לבצע ביקורת (audit) על חיובים מדויקים על ידי בדיקת אירועי הצלחה של כלים.
- להשוות בין שתי הרצות שונות כדי לראות היכן הן נפרדו.
זה הופך סוכני AI לצפויים ובטוחים לשימוש בסביבת ייצור (production).
מקור: https://github.com/WorkRuntime/workit
קהילת למידה אופציונלית: https://t.me/GyaanSetuAi