זוכרים שיצרתם קבצי קונטקסט בפרויקט? זה היה כיתה א׳ של פיתוח עם אייג׳נטים... יצא לכם לבקר בקבצים האלה מאז? לוודא שהם עדיין נכונים?
פורסם במקור ב LinkedIn
זוכרים שיצרתם קבצי קונטקסט בפרויקט? זה היה כיתה א׳ של פיתוח עם אייג׳נטים... יצא לכם לבקר בקבצים האלה מאז? לוודא שהם עדיין נכונים? ואיך בכלל דואגים שהם נשארים עדכניים לאורך זמן, ולא מתחילים לשקר לסוכן? מאז עברה לפחות חצי שנה, המשכנו לפתח ושכחנו ממה שכתוב שם.
הרצתי בדיקה על קבצי הcontext בפרויקט שלנו וגיליתי שלמשל אחד הקבצים מצהיר שיש לנו 6 חבילות SDK כשבפועל יש 10. ארבע חבילות נוספו לאורך הדרך ואף אחד לא חזר לעדכן. ועוד יותר גרוע זה שהקובץ הזה מוגדר always applied, כלומר הוא נדחף אוטומטית לכל סוכן בכל הרצה.
אז במשך חודשים כל אייג׳נט אצלנו התחיל את העבודה עם עובדה שגויה בראש, ואף אחד לא שם לב, כי כבר אף בן אדם לא קורא את הקבצים האלה. רק הסוכנים.
תיקנתי את זה ובמקביל חשבתי - זאת צריכה להיות פעולה אוטומטית ואוטונומית.
אז הרצתי סריקה על כל 190 קבצי התיעוד בריפו. קיבלתי 124 הפניות מתות, נתיבים וקבצים שכבר לא קיימים. נראה כמו בלגן רציני, אבל כשהתחלתי לעבור אחד אחד גיליתי שמתוך 124 רק 4 היו באמת בעיה, כל השאר מתות בכוונה: דוגמת קוד שמצביעה על קובץ שאף פעם לא היה אמור להווצר, קישור לתוכן שאנחנו בכוונה לא שומרים בגיט, מסמך design שמתאר פיצ׳ר שהחלטנו לא לבנות, ועוד...
זה עזר לי גם להגדיר טוב יותר את הסוכן שיעשה את זה באופן אוטונומי - כי לתפוס תיעוד ישן זה אמנם מהיר אבל לא מספיק אפקטיבי - סקריפט של חמש שורות מצא 124 בעיות. האתגר הוא ללמד את הסוכן להבדיל בין קובץ שהשינוי שלי הרגע שבר, לבין קובץ שנראה ישן אבל בדיוק ככה הוא צריך להיות.
(אם הייתי מפספס את ההבחנה הזאת, הייתי מקבל 120 התראות שווא בכל Review במקום רק את ה-4 החשובות).
שאלה נוספת היא איך לאכוף את זה, מתי ואיפה להריץ סוכן כזה? באיזו נקודה בתוך הSDLC?
כרגע בחרתי להכניס את זה בתור עוד שלב ב-Review flow, כדי שזה ייתפס כמה שיותר קרוב לקונטקסט. אם התווסף סרוויס או השתנה משהו אקוטי במערכת - זה המקום לעדכן את קבצי הקונטקסט.
ואחד המשפטים החשובים בהנחיה היתה - לשמור על שקט כשאין מה להעיר. אחד הדברים שיותר מפריעים זה הרעש הלבן שסוכנים מייצרים. אז משפט כזה: ״You are reviewing a senior engineer teammate's code. Silence is the best response when the code is fine״ יכול לעזור להמנע ממקרים של ״זאב זאב״ שבו הסוכן כל הזמן מעיר ונהיה שקוף, ואז בזמן אמת מפספסים את מה שבאמת חשוב
המלצה שלי: קחו חמש דקות ותבקשו מהסוכן שלכם לעבור על קבצי הקונטקסט ולבדוק האם הם עדיין עדכניים, אני בטוח שתופתעו לגלות את הפערים. ממליץ לעשות את זה רגע לפני שההקשר שלכם מאבד כל הקשר.