𝗖𝗼𝗱𝗲𝘅 𝗙𝗶𝘅𝗶𝗻𝗴 𝗖𝗼𝗱𝗲𝘅: 𝗔 𝗖𝗼𝗻𝘀𝗲𝗻𝘀𝘂𝘀 𝗟𝗼𝗼𝗽
בניתי לולאת סוכנים (agent loop) שעושה יותר מסתם להציע קוד. היא כותבת קוד, סוקרת אותו וממזגת את ה-pull requests של עצמה.
כדי לבחון אותה, כיוונתי את הלולאה ל-fork של ה-codex CLI. נתתי לסוכנים לנסות לתקן את התוכנה בעצמם. זהו ניסוי טהור. ל-fork אין משתמשים ואין לו כוכבים (stars). מדובר במנגנון, לא במוצר.
כך הלולאה עובדת:
- קליטה (Intake): באג מה-upstream הופך ל-issue ב-fork. הלולאה בוחרת רק באגים קטנים ומכניים שהיא יכולה לסיים.
- הפתורנים (Solvers) מתווכחים: מספר סוכנים מציעים תיקונים שונים. פותר אחד רוצה את השינוי הקטן ביותר. אחר רוצה מבנה נקי. שלישי רוצה למחוק קוד במקום להוסיף אותו. הם אינם מסכימים.
- השופט (Judge) מתווך: שופט קורא את הוויכוח. אם הפותרים אינם מסכימים, השופט שולח אותם לסבבים נוספים. השופט גם מתעד מדוע דחה רעיונות מסוימים.
- יישום ומיזוג (Implement and Merge): ברגע שהם מגיעים לקונצנזוס, הלולאה כותבת את ה-patch, מריצה בדיקות ופותחת PR. אם הבדיקות עוברות, היא ממזגת את עצמה.
ניתן לראות זאת בפעולה ב-issue #34. הסוכנים דנו בבאג concurrency. הם עברו שלושה סבבים של בוררות לפני שהגיעו להחלטה. הלולאה הפיקה תיקון אמיתי ובדיקת רגרסיה (regression test) מבלי שאדם אחד יקליד שורה אחת של קוד.
תוצאה מעניינת אחת התרחשה ב-PR #16. הלולאה לא הצליחה לשחזר באג שדווח. במקום להמציא תיקון מזויף, היא פשוט הוסיפה בדיקה כדי לנעול את ההתנהגות ועצרה. לולאה שיודעת מתי לא לתקן היא שימושית יותר מזו שתמיד מייצרת diff.
הלולאה ממזגת כ-16 PRs עד כה. היא מטפלת במשימות קטנות כמו טיפול ב-UTF-8 ותיקוני פקודות. היא לא מנהלת מאגר קוד (codebase) שלם, אבל היא סוגרת באגים קטנים ומוגדרים מתחילתם ועד סופם.
בני אדם עדיין קובעים את הכללים וסוקרים את העבודה. אנחנו עדיין בודקים כל PR. הקוד הוא אוטומטי, אך תשומת הלב היא אנושית.
ניתן לראות את התהליך כולו ב-GitHub. הסתכלו על issue #34 ו-PR #37 כדי לראות את הוויכוח.
Optional learning community: https://t.me/GyaanSetuAi