BabyAGI הטמעה: היכן נשבר המחזור האוטונומי
המחזור האוטונומי של הסוכן בתרשים נראה מהודק: לקחת משימה מהתור, לבצע, לשמור תוצאה, להציב את הצעדים הבאים. בפועל, הטמעת BabyAGI נתקלת בשלושה מקומות שבהם המעגל נקרע, וכל אחד מהם אוכל עבודה שכבר ביצעה המודל.
הכשל הראשון של המעגל האוטונומי — משימה מסומנת כבוצעה, אך התוצאה לא הועברה לשום מקום. הסוכן סוגר את הפריט ברשימה, אבל התוצאה נשארת בחוצץ ביניים ואינה נכנסת להקשר של הצעד הבא, ולכן האיטרציה הבאה מתחילה "מאפס", שואלת שוב את אותו הדבר ומריצה שוב את אותן קריאות מודל.
השני — תור המשימות של הסוכן גדל מהר יותר מקצב הטיפול בו. כל תשובה מולידה תת-משימות חדשות, אין דה-דופליקציה, סדרי עדיפויות לא נקבעים, ואחרי עשר איטרציות הסוכן טובע במשימות שהטיל על עצמו, וצעדים שימושיים הולכים לאיבוד בין הכפילויות.
השלישי — הקשר המשימה של הסוכן לא שורד הפעלה מחדש. התהליך נפל, הסשן נקטע, המכסה נגמרה — וההיסטוריה שנצברה נעלמת יחד עם ההתקדמות, והרצה חוזרת אינה יודעת מה כבר נעשה. זהו סוג כשל שלא רואים בהדגמה ושהוא צף בשרשרת ארוכה ראשונה.
מפרקים כיצד זה נסגר: נקודות ביקורת אחרי כל צעד, דה-דופליקציה של התור ומאגר הקשר חיצוני — כדי שהמחזור יימשך מהמקום שבו נעצר, ולא יתחיל מחדש.
מה נותן המעגל האוטונומי: זמן, זמן השבתה, כשלים
למעגל אוטונומי יש משמעות כאשר את האפקט שלו אפשר לחשב, ולא לחוש. אנחנו מתעדים מדידות בסיס לפני העברת משימות ל-BabyAGI: כמה הרצות בשבוע נעשות ידנית, היכן לרוב נקרעת השרשרת, כמה זמן נדרש לשחזור. עם המספרים האלה אנחנו משווים את החודש הראשון של פעילות המעגל — להלן מה שאנחנו בודקים בקבלה.
מה אנחנו מודדים לאחר ההרצה
- שיעור המשימות ללא אדם. אחוז ההרצות שהסוכן סוגר מהצבה ועד לתוצאה בלי תיקונים והפעלות מחדש ידניות. נקודת הייחוס — לא 100%, אלא גבול מובן שבו המעגל עוצר וקורא למומחה.
- זמן שחזור המעגל. אנחנו סופרים את הקטע מתקלה במקור חיצוני או נפילת צומת ועד להמשך תור המשימות: המעגל עולה מנקודת הביקורת האחרונה, ולא מתחיל את העבודה מחדש.
- סוג הכשלים שנעלם. צעד שהוחמץ, הקשר שאבד בין שלבים, משימה שנזנחה באמצע. אלה שגיאות של גורם אנושי, והן נעלמות יחד עם ההרצות הידניות.
- הרצות ידניות. בנפרד אנחנו סופרים כמה הרצות שגרתיות נותרו למומחים. הרשימה צריכה להתקצר, ולא לעבור לכלי אחר.
- עומס המומחים. אנחנו מסתכלים לא על מספר המשימות, אלא על שיעור הזמן שהולך לעבודה בעלת תוכן במקום להפעלה מחדש שגרתית.
בסיום — לא דוח "נהיה טוב יותר", אלא סט מספרים: לפיהם רואים היכן המעגל עובד בעצמו, והיכן התרחישים עדיין דורשים ליטוש.
מצבי העבודה של הסוכן: הרצה חד-פעמית, מחזור, לוח זמנים
מצבי העבודה של הסוכן נבדלים במי ומתי מגיש את המשימה: אדם, טיימר, תור או שינוי במערכת חיצונית. ב-BabyAGI המצב נקבע לא על ידי הלוגיקה של המשימה עצמה, אלא על ידי נקודת הכניסה, ומכך תלויים שני דברים — כמה המשימה ממתינה להרצה ומה יקרה אם התהליך ייפול באמצע.
| מצב | מתי מתאים | מגבלות |
|---|---|---|
| הרצה חד-פעמית של משימה | ניתוח מסמך, הכנת דוח, מיגרציית נתונים חד-פעמית | לא מתחיל בלי אדם; הרצה חוזרת על אותם נתונים יוצרת כפילויות |
| מחזור מתמשך של הסוכן | סריקת מקורות, ניטור, הצברת הקשר בנושא | מחזיק זיכרון וחיבורים; לאחר תקלה יש לשחזר את המצב |
| הרצה לפי לוח זמנים | דוחות שוטפים, סנכרון לילי, סריקת ספריות | השהיה בין אירועים; בעת תקלה חלון ההרצה מוחמץ כולו |
| תגובה לאירועים | פנייה, מכתב, שינוי ברשומה — חשובה מהירות התגובה | נדרש ערוץ אירועים אמין והגנה מחזרות, אחרת כפילויות וסערת משימות |
בפועל המצבים משולבים: אירוע מכניס משימה לתור, מחזור מתמשך מטפל בה, ולוח הזמנים משלים את מה שנותר לאחר תקלה.
הדרישה לכל שילוב היא אחת — המשימה חייבת להיות בטוחה להרצה חוזרת: הסוכן בודק אם העבודה כבר בוצעה, ומתעד את התוצאה במלואה. אז נפילת תהליך לא מייצרת פניות שאבדו ורשומות כפולות, והחלפת מצב לא דורשת כתיבה מחדש של הלוגיקה.
הטמעת BabyAGI: שלבי העבודה ההנדסית
הטמעת BabyAGI מתחילה לא בקוד, אלא במלאי משימות: הסוכן אוטונומי בדיוק במידה שבה הנתונים וההרשאות שנפתחו לו צפויים. סדר העבודה בנוי כך שכל שלב נשען על השלב הקודם שנבדק, ולא על הנחה — אחרת עיבוד מחדש של המעגל עולה יותר מהרכבה הראשונית שלו.
- ביקורת תהליכים ונתונים. מנתחים אילו משימות מועברות לסוכן, מהיכן מגיעים נתוני הקלט ומי אחראי לתוצאה. מתעדים היכן האוטונומיה מניבה רווח, והיכן היא אסורה.
- תרשים המעגל של הסוכן. מגדירים את ההרכב: מציב המטרות, המבצעים, תור המשימות, מאגר הזיכרון, נקודות הפנייה לשירותים חיצוניים. את התרשים מתאמים לפני הפיתוח, כדי שתיקונים לא ישברו את מה שכבר נבנה.
- הגדרת הזיכרון של הסוכן. לפי אופי המשימות בוחרים סוג מאגר, תוך הפרדה בין ההקשר הקצר של השרשרת הנוכחית לבין בסיס הידע ארוך הטווח. קובעים כללי כתיבה, חיפוש והתיישנות — בלעדיהם הסוכן מעביר למשימה חדשה אשפה מהמשימות הקודמות.
- הרשאות ומגבלות. מעניקים רק את ההרשאות הנדרשות למשימות מהביקורת. צעדים עם השלכות בלתי הפיכות מפנים לאישור אנושי, ואת השאר משאירים אוטונומיים.
- בדיקה על משימות אמיתיות. מריצים מדגם מהתזרים העובד, משווים את התוצאה לאמת מידה, סופרים את שיעור המשימות שנסגרו ללא התערבות ואת הזמן למחזור. את התיקונים מכניסים לקונפיגורציה, ולא להנחיות חד-פעמיות למודל.
- מסירה לתפעול. פורסים את המעגל, מפעילים תיעוד של צעדי הסוכן והתראות על כשלים, ומכשירים את צוות הלקוח. מוסרים נוהל: כיצד לעצור את השרשרת, לעדכן את הזיכרון, לחזור לגרסה הקודמת.
לאחר המסירה המעגל ממשיך בתחזוקה: מהיומנים רואים היכן הסוכן גולש לצעדים מיותרים, והיכן חסרים לו נתונים או הרשאות. תארו את המשימה — נחזור עם הערכת היקף העבודה ותוכנית לפי שלבים.
קונפיגורציות, תרשימים ונוהלים: מה נשאר אצלכם
בלי הארטיפקטים האלה הסוכן האוטונומי נשאר קופסה שחורה: עובד — וטוב, אבל בעת תקלה לא ברור מה עשה ולמה. לכן את המעגל מוסרים לא כ"שירות עובד", אלא כערכה שהצוות שלכם קורא, משנה ומשחזר בלעדינו.
- קובצי קונפיגורציה — פרמטרים של המודל, מגבלות צעדים וזמני המתנה, רשימת הכלים הזמינים לסוכן, ערכי ברירת מחדל לכל סביבה. תיקונים עוברים דרך רפוזיטורי, ולא ידנית על השרת, ולכן הסביבות לא מתפצלות.
- תרשים המעגל — הקשרים בין מתזמן המשימות, מאגר המצב, התור והמערכות החיצוניות, גבולות הרשת ונקודות הכשל. לפיו מהנדס חדש מרכיב את התמונה בערב אחד.
- מדיניות הגישה של הסוכן — באילו חשבונות הוא פונה למערכות חיצוניות, מה מותר אוטומטית, ומה דורש אישור אנושי. ההרשאות ניתנות במינימום הנדרש למשימות.
- יומן הפעולות של הסוכן — רישום צעד-אחר-צעד: איזו משימה הוצבה, אילו צעדים בוצעו, לאילו נתונים הייתה גישה. תקופת השמירה ניתנת להגדרה, וייצוא למאגר חיצוני כלול.
- נוהל התפעול — מי ומה עושה בעת ירידה בביצועים: כיצד לעצור את הסוכן, כיצד להחזיר את הקונפיגורציה לאחור, אילו מדדים נחשבים לחריגה מהנורמה. את התפקידים והספים מתאמים מראש.
- תיעוד המעגל — ארכיטקטורה, משתני סביבה, נהלי מיגרציה ושחזור, ניתוח שגיאות אופייניות.
- הוראות למשמרת התורנית — תרחישים קצרים לדקות הראשונות של תקלה, עם פקודות ונקודות הסלמה.
את הערכה מוסרים ברפוזיטורי שלכם עם היסטוריית שינויים: לאחר הקבלה את הפיתוחים מוביל הצוות שלכם, והמעגל לא תלוי בנו.
מקרה בוחן: מעגל טיפול בפניות לפני ואחרי ההרצה
אצל הלקוח — חברת שירותים — פניות נכנסות נפלו לתור משותף, ואותן חילק מפעיל תורן. במשמרת עברו כמה מאות פניות, וזמן התגובה היה תלוי ישירות בעומס: בשיא התור נמשך שעות, וחלק מהפניות אבדו במסירה בין משמרות.
את המעגל הרכיבו על BabyAGI: הסוכן מנתח את הזרם הנכנס, מזהה את סוג הבקשה ומחלץ ישויות, תרחישים אופייניים סוגר בעצמו, ואת השאר מוסר למפעיל יחד עם ההקשר שנאסף. מדדים בחודשים הראשונים לאחר ההרצה:
| מדד | לפני ההרצה | אחרי ההרצה |
|---|---|---|
| שיעור המשימות שנסגרו ללא מפעיל | 0% | 68% |
| זמן התגובה לפנייה | מ-40 דקות עד כמה שעות | 2–4 דקות |
| התור בשיא | גדל, חלק מהפניות אובד | לא גדל |
| תקלות במעגל | כמה במשמרת | בודדות, עם ניסיון חוזר אוטומטי |
| הסלמות לאדם | כל הפניות | רק מקרים מורכבים |
ההבדל המרכזי — לא במהירות של פעולה אחת, אלא בסוג הכשלים. קודם תקלה משמעה פנייה שאבדה: אותה לא ראה לא המפעיל ולא הלקוח. כעת הטיפול בפניות על ידי הסוכן מתנהל לפי יומן — צעד שנכשל חוזר על עצמו, ואם המשימה לא נכנסה במגבלת הניסיונות, היא עוברת לאדם עם הקשר מלא.
שיעור המשימות האוטומטיות אינו סטטי: אותו בוחנים מחדש לפי היומן, תרחישים עם תדירות הסלמות גבוהה מלוטשים ומועברים למצב אוטונומי. זה מאפשר גידול בהיקף בלי הרחבה פרופורציונלית של משמרת המפעילים.
מה לעשות אם סוכן אחד כבר פרוס במעגל?
אב-טיפוס עובד — זו לא בעיה, אלא נקודת מוצא: כבר ברור אילו משימות הסוכן סוגר. הקרע מתחיל בהמשך — ב-BabyAGI המחזור "תוכנית → משימה → תוצאה" אינו מוגבל כברירת מחדל, והתור חי בזיכרון התהליך.
בהפעלה מחדש המשימות אובדות, בכשל של שירות חיצוני המחזור נכנס לחזרה, ואין במה לשחזר מדוע הסוכן ביצע צעד מסוים. לכן הצעד הראשון הוא ביקורת של המעגל הנוכחי, ולא כתיבה מחדש מאפס.
הביקורת עונה על שאלות קונקרטיות: היכן נשמר תור המשימות, כיצד הצעדים מקבלים הקשר ומה מיותר נכנס אליו, האם יש גבול לעומק הפירוק ולחזרות של אותה משימה, כיצד מטופלים כשלים של קריאות חיצוניות, והאם נשאר יומן עם קלט ופלט של כל צעד.
לפי התוצאות רואים איזה משני המסלולים זול יותר. ליטוש של סוכן קיים נעשה כאשר התרשים בריא: מוסיפים מאגר לתור, מגבילים למחזור, ניסיונות חוזרים עם השהיה, הפרדת הרשאות לכלים ותצפיתיות לכל צעד.
אם אב-הטיפוס נבנה על נתוני הדגמה והלוגיקה התפצלה מהמשימות האמיתיות, זהיר יותר להעביר. מיגרציית המשימות של הסוכן מתבצעת בלי לעצור תהליכים: המעגל החדש עולה במקביל, חלק מהמשימות עובר במצב צל, התוצאות מושוות לנוכחיות, והמעבר נעשה לפי קבוצות משימות עם אפשרות לחזרה לאחור.
תפעול תעשייתי נבדל לא במודל, אלא בצפיות: מראש ידוע מה לעשות בעת כשל, כמה צעדים הסוכן עושה במשימה אופיינית והיכן הוא עוצר. הסיכונים של אב-הטיפוס נסגרים אחד-אחד — כל סעיף שנסגר מסיר סוג שלם של תקלות.
ספקות טכניים לפני ההתחלה
מהנדסי הלקוח לפני ההתחלה שואלים אותן שאלות: אילו הרשאות יקבל המעגל על BabyAGI, מה יקרה בנפילה של שירות חיצוני והאם יהיה צורך לכתוב מחדש סקריפטים עובדים. להלן תשובות קצרות, וניתוח מפורט נעשה בשלב התכנון.
כיצד מוגבלת הגישה של הסוכן?
המעגל עובד תחת רשומת שירות נפרדת עם סט מינימלי של הרשאות: קריאה ממקורות מסוימים, כתיבה — רק לסעיפים מוגדרים. סודות פרודקשן וחשבונות מנהל לא ניתנים: הקריאות עוברות דרך שכבת פרוקסי, שמשווה את הפעולה לרשימת המותרות וכותבת יומן.
מה קורה בעת תקלה במערכת חיצונית?
המשימה לא אובדת: הקריאות חוזרות עם השהיה הולכת וגדלה, הפעולות אידמפוטנטיות — חזרה לא יוצרת כפילויות. לאחר מיצוי הניסיונות המשימה עוברת להסגר עם מצב שמור והתראה לתורן, והחידוש מתבצע מנקודת העצירה.
האם זה תואם לסקריפטים הנוכחיים?
הסקריפטים הקיימים נשארים ונקראים כצעדים מוכנים. אם הפעולה אינה אידמפוטנטית, עוטפים אותה בבדיקת מצב: לפני ההרצה המעגל משווה את התוצאה ומדלג על מה שכבר בוצע.
כיצד מפוקחות הפעולות והחזרה לאחור של שינויים?
כל צעד נכנס ליומן: נתוני הקלט, הפעולה שנקראה, התוצאה. פעולות בלתי הפיכות מבוצעות רק לאחר אישור אנושי. החזרה לאחור מובטחת על ידי ניהול גרסאות של קונפיגורציות וצילומי מצב לפני חבילת שינויים — החזרה למצב הקודם אורכת דקות.
נדון במשימה: ממה מתחילים את העבודה
כדי לחזור עם הערכה ותוכנית עבודה, ולא עם ניסוחים כלליים, אנחנו צריכים מינימום של נתוני קלט. אוספים אותם בשיחה הראשונה: רשימת תהליכים, הרשאות לביקורת ואנשי קשר שמקבלים את התוצאה. את השאר בונים בהמשך — אבל בלי שלושת הדברים האלה ההערכה הופכת לניחושים.
- משימות מועמדות: אילו פעולות רוצים להעביר לסוכן, באיזו תדירות הן מבוצעות ומי עושה אותן כיום ידנית.
- קריטריון המוכנות: מה נחשב לתוצאה נכונה, אילו שגיאות אסורות ומי מאשר את התוצאה.
- תרשים המעגל: היכן פועלים הסוכנים, אילו מערכות קוראים ולאילו כותבים, ומה קורה בעת כשל של צעד בודד.
- הרשאות לביקורת: חשבונות בדיקה, עותק נתונים או סביבה נפרדת עם הרשאות קריאה בלבד.
- אנשי קשר: בעל התהליך, מנהל המערכות ומי שמאשר שינויים.
- מגבלות: דרישות לטיפול בנתונים, נהלים פנימיים וחלונות שבהם התערבות אסורה.
- מה כבר נעשה: סקריפטים וכללים קיימים, יומנים זמינים — כדי לא לשכפל עבודה.
מהסט הזה מרכיבים תוכנית עבודה למעגל: רצף השלבים, נקודות תיאום, סט בדיקות על הפלט של הסוכן ומדדים שלפיהם אנחנו מחשיבים את השקת הפרויקט כמוצלחת. נדון במשימה — תארו את התהליכים והמגבלות בצורה חופשית, ונחזור עם הערכה ותוכנית.







