Успешный запуск ИИ-агента для программирования всё же может скрывать много напрасных усилий. В одном примере агент прошёл тесты на четвёртом шаге, но продолжал работать до десятого, и шесть из восьми изменённых им строк были лишними по сравнению с эталонным исправлением. Обычная проверка «пройдено/не пройдено» оценивает такой запуск так же, как чистый и эффективный.
Автор отмечает, что агент в этом эксперименте смоделирован. Вместо запуска реального агента для программирования, такого как Claude Code или Codex, в исследовании для принятия решений использовалась политика на Python с фиксированным начальным значением генератора, тогда как репозитории, правки, диффы, запуски тестов и ошибки реальные. Цель состояла в том, чтобы измерить, сколько дополнительных шагов агенту нужно для получения прошедшего тесты патча, какая часть этой работы была необходима и может ли окружающий рабочий процесс сократить лишние усилия.
Анализ основан на примерно 50 000 смоделированных запусках, включая проверку соответствия правилам, тесты отдельных правил и отложенный набор тестов. Он опирается на SWE-bench, бенчмарк из 2 294 реальных задач GitHub из 12 репозиториев Python, который оценивает только итоговый патч. Два запуска в нём могут оба завершиться успехом, хотя один потребует гораздо больше шагов, времени и токенов и оставит больше изменений.
Статья разделяет размер итогового патча и общий объём работы, включающий неудачные запуски тестов, повторяющиеся команды, правки не в том файле и откаченные изменения. Доля успешных прохождений полностью игнорирует эти усилия. Исследование призвано показать, чего стоит эта скрытая работа и как правила обвязки могли бы её сократить.
Источник: Towards Data Science · Сводку подготовил HeadlinesBriefing