Dlaczego agenci programowania AI zawodzą: Krytyczna luka między plikami a liniami kodu

Choć agenci programowania AI stają się coraz bardziej zdolni do rozwiązywania błędów w oprogramowaniu, nowe badanie ujawnia, że zmagają się oni ze znaczącym problemem „lokalizacji”. Potrafią oni dotrzeć do właściwego pliku w ogromnej bazie kodu, ale często nie potrafią zidentyfikować konkretnych linii kodu niezbędnych do wprowadzenia poprawki.

Przedstawiamy SWE-Explore: Wyjście poza wskaźniki naprawialności

Historycznie skuteczność agentów programowania AI mierzono pojedynczą, binarną metryką: czy agent naprawił błąd, czy nie? Takie podejście ignoruje przyczynę („dlaczego”) niepowodzenia. Nieudana naprawa może oznaczać, że agent napisał błędną poprawkę, ale może też oznaczać, że agent w ogóle nie przeanalizował właściwej logiki.

Aby wyeliminować tę lukę, międzynarodowy zespół badawczy, w tym naukowcy z Shanghai Jiao Tong University, opracował SWE-Explore. W przeciwieństwie do tradycyjnych benchmarków, SWE-Explore izoluje etap wstępnego wyszukiwania. Ocenia on zdolność agenta do przyjęcia opisu błędu i zwrócenia uszeregowanej listy konkretnych sekcji kodu, które są faktycznie istotne dla problemu. Zbiór danych jest obszerny i obejmuje 848 zadań w 203 projektach open-source oraz dziesięciu językach programowania, z Pythonem jako najbardziej reprezentatywnym (547 zadań).

Luka precyzji: Sukces na poziomie plików vs. porażka na poziomie linii

Najbardziej uderzającym wnioskiem z badania jest ogromna dysproporcja między dokładnością na poziomie plików a dokładnością na poziomie linii. Podczas testów z agentami ogólnego przeznaczenia, takimi jak Claude Code, Codex i OpenHands, wyniki były wymowne:

  • Dokładność na poziomie plików: Agenci radzą sobie dobrze, pomyślnie identyfikując właściwe pliki źródłowe i nadając im wysokie miejsca w rankingu.
  • Dokładność na poziomie linii: Wydajność drastycznie spada. Agenci programowania ogólnego przeznaczenia pokryli jedynie od 14% do 19% rzeczywistych linii kodu istotnych dla wprowadzenia poprawki.

Co ciekawe, samo ulepszenie podstawowego dużego modelu językowego (LLM) nie rozwiązuje tego problemu. Niezależnie od tego, czy używa się modeli od OpenAI, Anthropic, Google, Moonshot czy Zhipu, schemat pozostaje identyczny: wysoki wskaźnik trafień w plikach, ale fatalne pokrycie linii. Badania wykazały, że wyspecjalizowane systemy, takie jak CoSIL, osiągały lepsze wyniki niż agenci ogólni, traktując kod jako sieć wzajemnie powiązanych bloków konstrukcyjnych, co sugeruje, że zmiany w architekturze są ważniejsze niż surowa moc modelu.

Efekt progu: Dlaczego „czytanie więcej” ma znaczenie

Dzięki kontrolowanym eksperymentom ablacyjnym badacze odkryli „efekt progowy” dotyczący kontekstu. Zmieniając ilość kluczowego kodu dostarczanego modelowi (od 0% do 100%), odkryli, że skuteczność napraw nie poprawia się liniowo.

W przypadku łatwiejszych zadań istnieje wyraźny punkt zwrotny: jeśli agent widzi mniej niż 50% niezbędnych kluczowych obszarów, wskaźnik sukcesu napraw pozostaje bliski zeru. Znaczący skok liczby udanych napraw następuje dopiero wtedy, gdy agent ma dostęp do 50%–75% wymaganego kontekstu. Co istotne, badanie wykazało, że dostarczanie nieistotnego kodu typu „szum” nie szkodzi wydajności tak bardzo, jak brak krytycznych linii. Wniosek dla programistów jest jasny: w erze agentów AI lepiej dostarczyć więcej kontekstu, niż ryzykować odfiltrowanie istotnych szczegółów.

Kluczowe wnioski

  • Lokalizacja jest wąskim gardłem: Agenci AI sprawnie odnajdują właściwy plik, ale mają znaczne trudności z precyzyjnym wskazaniem konkretnych linii kodu niezbędnych do naprawy.
  • Skalowanie modeli nie jest panaceum: Przejście na potężniejsze modele LLM nie rozwiązuje problemu braku dokładności na poziomie linii; skuteczniejsze są wyspecjalizowane podejścia architektoniczne, takie jak CoSIL.
  • Zasada 50% kontekstu: Skuteczność napraw AI podąża za wzorcem progowym, wymagając widoczności co najmniej 50–75% istotnego kontekstu kodu, zanim pomyślne naprawy staną się prawdopodobne.