Чому AI-агенти для програмування зазнають невдач: критичний розрив між файлами та рядками
Хоча AI-агенти для програмування стають дедалі здатнішими виправляти помилки в програмному забезпеченні, нове дослідження показує, що вони мають суттєву проблему з «локалізацією». Вони можуть знайти потрібний файл у величезній кодовій базі, але часто не можуть визначити конкретні рядки коду, необхідні для впровадження виправлення.
Представляємо SWE-Explore: вихід за межі показників виправлення
Історично ефективність AI-агентів для програмування вимірювалася єдиною бінарною метрикою: чи виправив агент помилку, чи ні? Такий підхід ігнорує причину невдачі. Неуспішне виправлення може означати, що агент написав некоректний патч, або ж те, що він взагалі не розглянув відповідну логіку.
Щоб усунути цю «сліпу зону», міжнародна дослідницька група, до складу якої увійшли вчені з Шанхайського університету Цзяотун, розробила SWE-Explore. На відміну від традиційних бенчмарків, SWE-Explore виокремлює етап попереднього пошуку. Він оцінює здатність агента взяти опис помилки та повернути ранжований список конкретних секцій коду, які дійсно стосуються проблеми. Набір даних є розлогим і охоплює 848 завдань у 203 проектах із відкритим вихідним кодом на десяти мовах програмування, причому найбільш представленою є Python (547 завдань).
Розрив у точності: успіх на рівні файлів проти невдач на рівні рядків
Найбільш вражаючим висновком дослідження є величезна розбіжність між точністю на рівні файлів та на рівні рядків. Під час тестування агентів загального призначення, таких як Claude Code, Codex та OpenHands, результати були красномовними:
- Точність на рівні файлів: Агенти працюють добре, успішно ідентифікуючи правильні вихідні файли та надаючи їм високий ранг.
- Точність на рівні рядків: Продуктивність різко падає. Загальні агенти для програмування охопили лише від 14% до 19% фактичних рядків коду, які були важливими для виправлення.
Цікаво, що просте оновлення базової великої мовної моделі (LLM) не вирішує цієї проблеми. Незалежно від того, чи використовуються моделі від OpenAI, Anthropic, Google, Moonshot чи Zhipu, закономірність залишається незмінною: високий рівень знаходження файлів, але жахливе покриття рядків. Дослідження зазначило, що спеціалізовані системи, такі як CoSIL, перевершили загальних агентів завдяки розгляду коду як мережі взаємопов'язаних структурних блоків, що свідчить про те, що архітектурні зміни є важливішими за чисту потужність моделі.
Ефект порогу: чому «більше читання» має значення
Завдяки контрольованим експериментам з абляції дослідники виявили «ефект порогу» щодо контексту. Змінюючи обсяг основного коду, що надається моделі (від 0% до 100%), вони з'ясували, що якість виправлень не покращується лінійно.
Для простіших завдань існує чітка точка перелому: якщо агент бачить менше 50% необхідних основних ділянок, рівень успішного виправлення залишається близьким до нуля. Значний стрибок успішних виправлень відбувається лише тоді, коли агент отримує доступ до 50–75% необхідного контексту. Що важливо, дослідження показало, що надання нерелевантного «шумового» коду не так сильно шкодить продуктивності, як відсутність критично важливих рядків. Висновок для розробників очевидний: в епоху ШІ-агентів краще надати більше контексту, ніж ризикувати відфільтруванням важливих деталей.
Основні висновки
- Локалізація є вузьким місцем: ШІ-агенти вміло знаходять потрібний файл, але мають значні труднощі з точним визначенням конкретних рядків коду, необхідних для виправлення.
- Масштабування моделей не є панацеєю: Перехід на потужніші LLM не усуває розрив у точності на рівні рядків; спеціалізовані архітектурні підходи, такі як CoSIL, є ефективнішими.
- Правило 50% контексту: Успішність виправлень ШІ відповідає пороговому патерну, вимагаючи, щоб було доступно принаймні 50–75% відповідного контексту коду, перш ніж успішні виправлення стануть імовірними.