מדוע סוכני קוד מבוססי AI נכשלים: הפער הקריטי בין קבצים לשורות
בעוד שסוכני קוד מבוססי AI הופכים ליכולתיים יותר בפתרון באגים בתוכנה, מחקר חדש חושף כי הם סובלים מבעיית "לוקליזציה" (localization) משמעותית. הם מסוגלים לנווט לקובץ הנכון בתוך מאגר קוד (codebase) עצום, אך הם נכשלים לעיתים קרובות בזיהוי שורות הקוד הספציפיות הנדרשות לביצוע התיקון.
הכירו את SWE-Explore: מעבר לשיעורי תיקון
מבחינה היסטורית, היעילות של סוכני קוד מבוססי AI נמדדה באמצעות מדד בינארי יחיד: האם הסוכן תיקן את הבאג או לא? גישה זו מתעלמת מה"למה" שמאחורי הכישלון. תיקון שנכשל יכול להעיד על כך שהסוכן כתב תיקון (patch) גרוע, או שהוא מעולם לא בדק את הלוגיקה הרלוונטית.
כדי לטפל בנקודה עיוורת זו, צוות מחקר בינלאומי, הכולל מדענים מאוניברסיטת Shanghai Jiao Tong, פיתח את SWE-Explore. בניגוד למדדי ביצוע (benchmarks) מסורתיים, SWE-Explore מבודד את שלב החיפוש המוקדם (upstream search phase). הוא מעריך את יכולתו של סוכן לקחת תיאור של באג ולהחזיר רשימה מדורגת של קטעי הקוד הספציפיים שבאמת רלוונטיים לבעיה. מערך הנתונים הוא נרחב, וכולל 848 משימות מתוך 203 פרויקטים בקוד פתוח ועשרה שפות תכנות, כאשר Python היא השפה הבולטת ביותר (547 משימות).
פער הדיוק: הצלחה ברמת הקובץ מול כישלון ברמת השורה
הממצא המדהים ביותר של המחקר הוא הפער העצום בין דיוק ברמת הקובץ לדיוק ברמת השורה. כאשר הם נבחנו מול סוכנים בעלי מטרות כלליות כמו Claude Code, Codex, ו-OpenHands, התוצאות היו משמעותיות:
- דיוק ברמת הקובץ: הסוכנים מציגים ביצועים טובים, ומזהים בהצלחה את קבצי המקור הנכונים ומדרגים אותם גבוה.
- דיוק ברמת השורה: הביצועים קורסים. סוכני קוד כלליים כיסו רק 14% עד 19% משורות הקוד בפועל שהיו קריטיות לתיקון.
מעניין לציין כי שדרוג פשוט של מודל השפה הגדול (LLM) שבבסיס המערכת אינו פותר זאת. בין אם משתמשים במודלים של OpenAI, Anthropic, Google, Moonshot או Zhipu, הדפוס נותר זהה: שיעורי הצלחה גבוהים ברמת הקובץ אך כיסוי שורות נמוך באופן קיצוני. המחקר ציין כי מערכות ייעודיות כמו CoSIL הציגו ביצועים טובים יותר מסוכנים כלליים על ידי התייחסות לקוד כרשת של אבני בניין מקושרות, מה שמרמז על כך ששינויים ארכיטקטוניים חשובים יותר מכוח מודל גולמי.
אפקט הסף: מדוע "לקרוא יותר" חשוב
באמצעות ניסויי ablation מבוקרים, חוקרים גילו "אפקט סף" בנוגע להקשר (context). על ידי שינוי כמות קוד הליבה שסופקה למודל (מ-0% עד 100%), הם מצאו שהשיפור בתיקונים אינו ליניארי.
במשימות קלות יותר, קיימת נקודת מפנה ברורה: אם סוכן רואה פחות מ-50% מאזורי הליבה הדרושים, שיעור ההצלחה בתיקונים נשאר קרוב לאפס. קפיצה משמעותית בתיקונים מוצלחים מתרחשת רק כאשר לסוכן יש גישה לבין 50% ל-75% מההקשר הנדרש. באופן מכריע, המחקר מצא שמתן קוד "רעש" לא רלוונטי אינו פוגע בביצועים באותה מידה כמו היעדר השורות הקריטיות. המסקנה למפתחים ברורה: בעידן של סוכני AI, עדיף לספק יותר הקשר מאשר להסתכן בסינון של פרטים חיוניים.
תובנות מרכזיות
- איתור המיקום (Localization) הוא צוואר הבקבוק: סוכני AI מיומנים במציאת הקובץ הנכון, אך מתקשים משמעותית לאתר במדויק את שורות הקוד הספציפיות הנדרשות לתיקון.
- הרחבת מודלים (Model scaling) אינה פתרון קסם: שדרוג ל-LLMs חזקים יותר אינו פותר את פער הדיוק ברמת השורה; גישות ארכיטקטוניות ייעודיות כמו CoSIL הן יעילות יותר.
- כלל ה-50% של ההקשר: ההצלחה בתיקוני AI עוקבת אחר דפוס של סף, הדורש שבין 50% ל-75% לפחות מההקשר הרלוונטי של הקוד יהיה גלוי לפני שתיקונים מוצלחים יהיו סבירים.