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

Когда ИИ-агенты пишут код, они берут на себя всё больше сугубо человеческих задач - планирование, прогон тестов, да и даже последовательный рефакторинг. Авторы статьи Agentic Refactoring: An Empirical Study of AI Coding Agents впервые широко и глубоко посмотрели на эту практику: как агенты рефакторят в реальных open-source проектах, приносит ли это пользу и чем их стиль отличается от человеческого.
Почему это важно
Рефакторинг — это эффективное средство профилактики, которое избавляет от технических ошибок и снижает уровень технического долга. Он улучшает читаемость и сопровождение системы, подготавливает систему к будущим изменениям без изменения поведения системы. LLM-агенты дополнительно позволяют автоматизировать рефакторинг кода, генерируя предложения по изменениям, сами разбивают задачу на шаги, прогоняют сценарии проверки изменений и предоставляют отчет о проделанной работе в виде Pull Request, выступая в некотором роде коллегой. Насколько это эффективно? Не станет ли автоматический рефакторинг источником новых проблем?
Как исследовали
Проведя анализ большого числа Java-проектов из датасета AIDev и коммиты, собранные на Github, авторы использовали RefactoringMiner (выделяет 103 типа изменений), чтобы определить наличие любых рефакторинговых изменений и наличие сигнала о намерении произвести именно рефакторинг в PR и сообщениях коммитов.

Как часто и как выглядит рефакторинг у агентов
Это довольно распространенная практика: 26.1% Java-коммитов явно посвящены рефакторингу и демонстрируют больше рефакторинговых операций за счёт того, что они сконцентрированы в одном месте. То есть это не побочный эффект других правок, а именно продуманная задача (часто в отдельном PR).

Что именно меняют агенты при рефакторинге
Картина отличается от человеческой. У агентов доминируют рефакторинги с локальным воздействием - перемотка, работающее пространство, похожие операции. Коммиты людей чаще содержат изменения интерфейсов и архитектуры (входящие/исходящие зависимости). То есть агент скорее занимается «повседневным уходом» за кодовой базой и реже трогает архитектуру системы.
Даёт ли это измеримую пользу
Основные заявленные мотивы агента - сопровождаемость и читаемость (52.5 % и 28.1 % изменений соотвественно). Архитектурные мотивы встречаются гораздо реже чем у людей. То есть агент по своим объяснениям больше заботится об удобстве чтения кода, чем о переиспользовании кода и устранении его дублирования. В итоге улучшения в метриках есть, но небольшие.

Живые примеры
Разделение длинного метода на несколько вспомогательных. Классический способ повысить читаемость и сделать контроль потока программы более предсказуемым. PR
Переименование различных переменных во многих файлах. Повышает понятность, но мало влияет на метрики структуры. PR
Что это значит на практике
- Доверяйте агенту, чтобы справиться с рутиной. Такой рефакторинг уже полезен с точки зрения типовых исправлений, выравнивания стиля, декомпозиции и сокращения времени на код-ревью.

- В половине задач рефакторинг перемешан с другими правками. От агентов стоит дополнительно требовать коммитов и группировки однотипных изменений.

Авторы изучают только Java-репозитории. “Agentic” коммиты, выделенные по сообщениям, могут содержать как другие правки, так и код, написанный людьми. Поэтому распространять эти результаты на другие языки и проектные контексты стоит с большой опаской.
Вывод
Агенты уже активно занимаются рефакторингом кода. Это приносит много пользы локально, но на уровне метрик выдающихся улучшений не наблюдается, как и эффекта на архитектуру. Поэтому роли стоит разделять: пусть на агентах остается гигиена системы, а архитектурные решения по-прежнему будут принимать люди.
Читайте также
Как универсальный ИИ-агент учится жить в открытом мире
Как обучить ИИ работать за компьютером
Почему мышление через видео может быть следующим шагом в развитии ИИ
Как ИИ-ученый пишет научные статьи о машинном обучении на уровне джуна
От пикселей к смыслу: как SVG помогает ИИ понимать мир
Как ИИ-браузер ChatGPT Atlas разгадал судоку за пару минут, но проиграл в Flappy Bird
Децентрализованный ИИ: как рой нейросетей побеждает большие модели
ИИ в белом халате: как он учится ставить диагнозы в виртуальной клинике
Будущее программирования — мультимодальное: как JanusCoder научился видеть интерфейс, который сам создает
Как ИИ-агенты учатся параллелить задачи с помощью графа размышлений
Проактивная память: как ИИ-агенты научились сворачивать контекст и думать на 100 шагов вперёд
От хаоса данных к управляемому знанию: как ИИ-агенты помогают бизнесу принимать верные решения
Длинное мышление против жёстких пайплайнов: как DeepAgent превращает рассуждение в действие
Почему слова мешают ИИ-агентам понимать друг друга
Как ИИ-агенты научились писать аналитические отчёты не хуже профессиональных аналитиков
Почему ИИ-агенты теряются в море MCP-серверов
Почему ИИ-агенты для интерфейсов учатся в симуляции лучше, чем в реальности
Агентная операционная система — новая парадигма взаимодействия человека и машины
Эпоха автономных аналитиков: как ИИ меняет науку о данных
Как ИИ-очки предсказывают ваши желания прежде чем вы о них подумаете
ИИ-обзоры статей
Каждый день читаем свежие статьи по ИИ и пересказываем главное человеческим языком — без хайпа и воды. Если хотите понимать, куда движутся ИИ-агенты раньше остальных, — подписывайтесь.
Новые обзоры — каждый день.
В Telegram