Новости и статьи об искусственном интеллекте и нейросетях. Мы собираем и обрабатываем самую актуальную информацию из мира AI. О проекте

Статьи

Исследование: ИИ-агенты находят правильный файл, но упускают точные строки кода

Новый бенчмарк SWE-Explore оценивает способность ИИ-агентов находить релевантный код, изолируя этап поиска от исправления. Исследование показало: агенты хорошо определяют файл, но покрывают лишь 14–19% значимых строк. При недостатке контекста (менее 50% ключевых зон) исправления почти всегда проваливаются.

4 часа назад
2 мин
44

Почему успешный результат — не всегда успешный поиск

До сих пор работу ИИ-агентов для кода оценивали по итоговому результату — исправили они ошибку или нет. Такой подход скрывает детали: возможно, агент вообще не заглянул в нужный фрагмент кода, или же нашёл файл, но сгенерировал неправильное исправление. Внешне и то и другое выглядит одинаково.

Международная группа учёных при участии Шанхайского университета Цзяо Тун решила восполнить этот пробел с помощью бенчмарка SWE-Explore. Он проверяет только первый этап процесса: агент получает описание ошибки и проект, после чего должен выдать ранжированный список участков кода, которые считает важными.

Сравнение обычного бенчмарка, где общая оценка включает поиск и исправление, и SWE-Explore, который отдельно измеряет качество поиска
Обычные бенчмарки оценивают только итоговый процент исправлений и не показывают, насколько хорошо агент прочитал код. SWE-Explore изолирует эту начальную фазу. | Изображение: Zhang et al.

Как определяют действительно важные участки

Вручную определить, какие строки действительно нужны для исправления, почти невозможно. Поэтому авторы пошли другим путём: для каждой из 848 задач в датасете есть как минимум два успешных решения от мощных моделей — GPT-5.4, Gemini 3 Pro, Claude Sonnet 4.6 или Kimi K2.6.

Из этих удачных запусков исследователи извлекли информацию о том, какие файлы и строки модель действительно просматривала перед исправлением. Участки, к которым обращались несколько независимых путей решения, считаются сигналом полезного контекста. Они не обязательны строго, но с высокой вероятностью указывают на значимые места. Затем отдельный этап верификации дополняет ключевые фрагменты, а команда вручную проверяет каждую выявленную область.

Схема построения SWE-Explore: слева — формирование эталона из успешных решений, справа — оценка и проверка связи поиска с итоговым исправлением
Вместо ручного определения необходимых мест эталон формируется по тому, что читали успешные агенты. Дополнительный тест проверяет, приводит ли лучший поиск к более успешному ремонту. | Изображение: Zhang et al.

Датасет охватывает 203 открытых проекта на десяти языках программирования. Доминирует Python (547 из 848 задач), за ним идут Go, JavaScript и Rust.

Ключевые слова почти не помогают

В эксперименте традиционный поиск по ключевым словам сравнивали с пятью универсальными агентами для кода (включая Claude Code, Codex, OpenHands) и четырьмя исследовательскими системами, специально созданными для поиска кода.

Старый добрый поиск по ключевым словам показал результат едва выше случайного. В отчёте авторы показывают почему. Описание ошибки «RuntimeWarning on Overflow» содержит термины, которые гораздо чаще встречаются в шаблонах и документации проекта, а не в исходном коде. ИИ-агенты заметно вырываются вперёд, потому что исследуют проект пошагово, а не просто сортируют все найденные совпадения.

Точность на уровне строк резко падает

На уровне файлов агенты справляются хорошо: они находят правильный файл, ставят его в начало выдачи и не раздувают список. Но как только тест переходит к отдельным строкам кода, система разваливается. Универсальные агенты покрывают лишь 14–19% действительно значимых строк.

Пример задачи из SWE-Explore: слева — описание и репозиторий с отмеченными ключевыми регионами, справа — выданный агентом ранжированный список и метрики точности
Для конкретной задачи ранжированный список, выданный агентом, сравнивается с эталонными ключевыми областями. На уровне файла попадание есть, но покрытие строк остаётся обрывочным. | Изображение: Zhang et al.

Установка более сильной языковой модели не решает проблему. Команда протестировала одного и того же агента с шестью разными моделями от OpenAI, Anthropic, Google, Moonshot и Zhipu. Семейство GPT лидирует, но общая картина сохраняется: доля попаданий в файлы стабильно выше, чем реальное покрытие строк.

Разные архитектуры агентов показывают на удивление схожие результаты. Claude Code, Codex, OpenHands, Mini-SWE-Agent и AweAgent демонстрируют почти одинаковые оценки по всем метрикам.

Исключением стала исследовательская система CoSIL. Она сканирует код как сеть взаимосвязанных строительных блоков и достигает гораздо более высокого покрытия строк. Среди специализированных систем локализации AutoCodeRover работает точно, но консервативно, а OrcaLoca создаёт мало шума, но пропускает много нужных мест.

Ремонт не работает без достаточного контекста

В контролируемом абляционном эксперименте команда искусственно меняла объём контекста. Модель для исправления видела 0, 25, 50, 75 или 100% ключевых областей, иногда с добавлением нерелевантного кода. Для простых задач из датасета проявился чёткий пороговый эффект: пока видно меньше половины необходимых ключевых зон, исправления обычно проваливаются.

Вероятность успеха резко подскакивает, когда покрытие переходит от 50 к 75%. Улучшение не происходит постепенно — нужен определённый минимум подсказок. Для сложных задач эффект заметно слабее: если проблема изначально превышает способности модели, даже лучший контекст не сильно помогает.

Графики зависимости доли исправленных задач от процента видимых ключевых регионов для простых и сложных заданий
Частота исправлений резко растёт, только когда видно больше половины критических точек. Недостаток контекста вредит сильнее, чем лишний нерелевантный код. | Изображение: Zhang et al.

Когда критически важные места уже доступны, второстепенный код почти не мешает. Агент, прочитавший слишком мало, справляется хуже, чем тот, что прочитал лишнего. Главный вывод для будущих улучшений ясен: меньше фильтровать — больше читать. Код и данные доступны на GitHub и Hugging Face.

Контекст и критика SWE-bench

Примерно два года назад исследовательская группа создала SWE-bench — бенчмарк, проверяющий способность ИИ-агентов работать с реальными отчётами об ошибках с GitHub. С тех пор появилось целое семейство вариантов — с разными языками, более чистыми данными и сложными профессиональными задачами. Однако в последнее время стандартный показатель успешности подвергается давлению с разных сторон. Исследование организации METR показало, что менеджеры проектов отвергли бы примерно половину решений, которые прошли автоматическую проверку, причём многие из-за базовых функциональных ошибок.

Горячее

Загружаем популярные статьи...

SWE-Explore выявил: ИИ-агенты находят файлы, но не строки