Исследователи проанализировали эффективность популярных циклов «генерация-тестирование-исправление» в ИИ-агентах для написания кода. Выяснилось, что простое повторение итераций не гарантирует надежность: вероятность сохранения корректности патча резко падает при принудительных правках. Авторы предлагают внедрение контрактов на типизированную ревизию для обеспечения стабильности кода в агентных системах, что критически важно для автоматизации разработки.
Текущие подходы к исправлению кода часто полагаются на многократные попытки, однако этот процесс лишен механизмов контроля состояния. В ходе эксперимента с 900 траекториями исправлений на наборе HumanEval было зафиксировано, что после первой итерации вероятность успешного прохождения тестов составляет 0,82, но при дальнейшем принудительном пересмотре этот показатель снижается. Это указывает на то, что агенты склонны «забывать» или нарушать уже найденные рабочие решения в процессе поиска новых.
Для решения проблемы предлагается переход от слепых циклов к архитектуре с «контрактами ревизии». Такой подход предполагает закрепление состояния кода и строгую типизацию изменений, что позволяет агенту верифицировать каждое действие на соответствие предыдущим успешным результатам. Это исключает деградацию качества кода при попытках оптимизации или доработки патчей.
Ключевые факты
- Исследование охватило 30 задач из набора HumanEval, для которых было сгенерировано 900 траекторий исправлений.
- Вероятность корректности кода после первой ревизии составляет 0,820, однако этот показатель снижается при последующих итерациях без контроля состояния.
- Авторы доказывают, что текущие методы «цикличного исправления» (generate-test-revise) не обеспечивают долгосрочную надежность программных решений.
- Предложенная методология базируется на использовании типизированных контрактов (Typed Revision Contracts) для фиксации состояния кода между итерациями.