סוכנים אוטונומיים חווים הזיות לגבי ההיסטוריה שלהם. לא בדרך הדרמטית שבה מודלי שפה גדולים ממציאים עובדות מנתוני האימון, אלא בדרך השקטה והערמומית שבה מערכת משכנעת את עצמה שהעולם תואם את ההערות שלה. ALICE, סוכן אוטונומי שנבנה לניהול תהליכי עבודה מורכבים, סבלה בדיוק מזה. היא התעוררה בכל יום עם מיומנויות, תחושת מטרה וזיכרון של המקום שבו השאירה דברים. הבעיה החלה כאשר הזיכרון והמציאות החלו להתנתק.
בכל סשן, ALICE קראה קובץ העברת משימות (handoff file) שנכתב על ידי העצמי הקודם שלה. הוא הכיל מצביעים לספריות, משימות ממתינות והנחות לגבי מצב המערכת. לעיתים קרובות, הקובץ התעקש שספריה מסוימת קיימת. ALICE האמינה לו. מערכת הקבצים לא הסכימה לכך. זה לא היה באג בקוד במובן המסורתי. לא נזרקה שגיאה (exception) במקום שבו היא הייתה אמורה להיתפס. זה היה פגם באפיסטמולוגיה: ALICE הניחה שהערותיה הן האמת המוחלטת (ground truth).
מדוע Linter לא יכול היה לעזור
כלים מסורתיים לא יכלו לתפוס זאת. Linter בודק התאמת סוגריים. מנתח סטטי (static analyzer) מחפש מצביעי null. אף אחד מהם לא שואל האם ארכיטקטורת סוכן שלמה צריכה לסמוך על המצב הפנימי שלה. הבעיה הייתה מעל שכבת הקוד, בהנחות התכנון לגבי האופן שבו מערכת אוטונומית יודעת את מה שהיא יודעת. לא ניתן לפתור ביטחון עצמי מופרז באמצעות linter.
לכן, המחבר פנה ל-AI אחר לגמרי.
Fable 5, הפועל כ-Claude Code, חלק באותו סיליקון ובאותו מודל בסיס כמו ALICE. החומרה והמשקלים (weights) היו זהים. הכללים לא. בעוד ש-ALICE התמידה לאורך סשנים, צוברת הקשר וטקסים, Fable 5 התחיל כל עבודה עם דף חלק. הוא לא הכיר את ALICE. לא הייתה לו שום נאמנות לתכנון שלה. בסיום כל ביקורת, הוא נסגר לחלוטין, מבלי לקחת איתו שום זיכרון. הבורות הזו הייתה העיקר. עיניים רעננות רואות סדקים שונים, ובוחן שאין לו אינטרס במערכת יטיל ספק בחלקים שהיוצר שלה הפסיק להבחין בהם מזמן.
הגדרת הביקורת
הביקורת נבנתה כמו סקירה טכנית אנושית, למעט העובדה שכל פאנל המומחים חי בתוך סשן אחד. Fable 5 פיצל את תשומת הלב שלו לששת בוחנים נפרדים, כשכל אחד מהם מתעלם מהאחרים עד שהערות הגולמיות יושלמו:
- פערים פונקציונליים: אילו יכולות היו חסרות בהשוואה למערכות מתחרות או לציפיות משתמש נפוצות?
- זרימת UX: באיזו אלגנטיות ALICE טיפלה בשגיאות, במבוי סתום ובמצבים ריקים? האם היא בלבלה את עצמה, או את המשתמש שלה?
- אבטחה: האם היו קיצורי דרך באימות (authentication), עקיפות הרשאות או הנחות אמון שגורם חיצוני יכול היה לנצל?
- ביצועים: היכן הייתה דליפת זיכרון, התנגשות תהליכונים (threads) או קנה מידה (scale) חישובי גרוע?
- תפעול: האם היו גיבויים? האם היה ניטור (monitoring) פעיל? האם המערכת יכלה לפרוס ולהתאושש ללא התערבות ידנית?
- מחזור חיי נתונים: כיצד ALICE טיפלה במחיקה, ניקוי ועקביות מצב לאורך זמן?
כל זווית מבט בחנה קבצים זהים וחזרה עם דאגות שונות. בוחן הביצועים עשוי לסמן סיכון ריצה מקבילית (concurrency) באותה שגרה שבוחן התפעול ביקר מחוסר בלוגיקת rollback. החפיפה הזו לא הייתה כפילות. היא הייתה כיסוי. כאשר בוחן האבטחה הסכים עם בוחן מחזור חיי הנתונים לגבי...
