Автоматизация Code Review: как нейросети забирают рутину у разработчиков
В компании создали систему автоматизированного code review, которая обрабатывает тысячи пул-реквестов в неделю. Разработчикам хватает оставить комментарий ai_review в PR — дальше события уходят в Data Bus, Go-сервис парсит команду и отправляет контекст в ML-пайплайн. Python-сервис за 10–20 секунд (на малых PR) или до минуты (на больших) генерирует комментарии и публикует их обратно в интерфейс. Архитектура состоит из трёх компонентов: Stash (интерфейс разработчиков), Go-сервис (оркестратор событий) и Python ML Pipeline service (генератор комментариев). Самой критичной оказалась валидация — второй этап ReviewFilter отсекает 90% галлюцинаций и поднимает precision до 85%.
AI-обработка оригинала Habr AI; редакция Hamidun News
Почему нужна автоматизация
На Авито создаётся тысяча пул-реквестов в неделю — в пиковые часы до 300 одновременно. Это создаёт огромную нагрузку на разработчиков, которые отвлекаются с основной работы на code review. Результат: PR могут дни стоять в очереди на ревью, увеличивается time-to-market новых фичей, команда устаёт и может пропустить критичные баги.
Команда LLM-инженеров сформулировала три цели автоматизации:
- Ускорить разработку — убрать очереди на ревью
- Снизить влияние человеческого фактора — при постоянном переключении разработчики теряют сосредоточение
- Унифицировать процесс — разные ревьюеры дают разные замечания, часто возникает субъективность
Архитектура системы
Система состоит из трёх компонентов, связанных в чёткий workflow:
- Stash — интерфейс, где разработчик оставляет комментарий ai_review в PR
- Go-сервис — получает событие из Data Bus, парсит команду, берёт diff и метаданные репозитория, кладёт ревью в БД со статусом STATE_REQUESTED и отправляет RPC в ML-сервис
- Python ML Pipeline service — обрабатывает контекст и возвращает сгенерированные комментарии
ML-сервис отвечает 200 OK сразу, чтобы не блокировать Go-сервис — генерация может длиться долго.
ML-пайплайн: три этапа
RuleChecker (генерация). Модель выявляет все потенциальные проблемы — опирается на таксономию ошибок из реальных PR команды. Оптимизирована на высокую полноту (Recall), даже если false positives. На выходе — JSON с номерами строк и рекомендациями.
ReviewFilter (валидация). Второй проход повышает точность (Precision). Модель работает в паттерне Conclusion First — получает тот же контекст плюс конкретный комментарий и отвечает: важно ли это замечание или нет. Отсекает 90% галлюцинаций и false positives.
CommentAggregator (дедупликация). Система строит эмбеддинги комментариев через BAAI/bge-m3, вычисляет косинусную близость. Если similarity выше 0.85 — комментарии группируются. Из каждой группы остаётся один, самый содержательный. На выходе — финальный список уникальных замечаний.
Выбор модели и производительность
По бенчмарку MERA-RuCodeReviewer (689 примеров на Java, Python, Scala, Go) лидирует Gemini 2.5 flash, но команда выбрала Qwen3-Coder-30B-Instruct-FP8 (второе место) — она опенсорс и позволяет хостить на собственной инфраструктуре. Это критично: код не уходит во внешние API, плюс селф-хостинг дешевле на больших объёмах (PR требуют 2000–10 000 токенов).
Производительность:
- Малые PR (до 3 файлов): 10–20 секунд
- Большие PR (10+ файлов): ~60 секунд
- Максимум 650 параллельных ревью
Метрики качества собираются через лайки разработчиков:
- Precision: 85% комментариев классифицированы как хорошие
- Outdated rate: 32% (комментарии, которые разработчик закрыл исправлением). Для Infra и DevOps достигает 60%.
Ключевые выводы
Основная идея: разделение Recall и Precision работает лучше единого запроса. Даже с длинным контекстом модель теряется, поэтому нужна многоэтапная система. Валидация отсекает галлюцинации критично — это опора доверия пользователей.
Модель должна видеть полный код файлов и структуру репозитория — diff недостаточно для качественного анализа. AI берёт рутину, но люди должны контролировать процесс.
- 12 нояб. 2026 г.Google открывает предзаказ на очки с Gemini от $395 и блокирует скрытую съёмку
- 12 нояб. 2026 г.Google привезла Gemini Intelligence в Android Auto — пока только для Pixel
- 12 нояб. 2026 г.По иску, школьница три месяца говорила с Gemini о суициде, а мониторинг молчал неделями
- 12 нояб. 2026 г.Google и Adobe сближают продукты: Acrobat появится в Gmail, Drive и Gemini
Вопросы и ответы по материалу
Что известно по теме: почему нужна автоматизация?
На Авито создаётся тысяча пул-реквестов в неделю — в пиковые часы до 300 одновременно. Это создаёт огромную нагрузку на разработчиков, которые отвлекаются с основной работы на code review. Результат: PR могут дни стоять в очереди на ревью, увеличивается time-to-market новых фичей, команда устаёт и может пропустить критичные баги.
Что известно по теме: архитектура системы?
Система состоит из трёх компонентов, связанных в чёткий workflow: Stash — интерфейс, где разработчик оставляет комментарий ai_review в PR Go-сервис — получает событие из Data Bus, парсит команду, берёт diff и метаданные репозитория, кладёт ревью в БД со статусом STATE_REQUESTED и отправляет RPC в ML-сервис Python ML Pipeline service — обрабатывает контекст и возвращает сгенерированные комментарии ML-сервис отвечает 200 OK сразу, чтобы не блокировать Go-сервис — генерация может длиться долго.
Что известно по теме: ML-пайплайн: три этапа?
RuleChecker (генерация). Модель выявляет все потенциальные проблемы — опирается на таксономию ошибок из реальных PR команды. Оптимизирована на высокую полноту (Recall), даже если false positives. На выходе — JSON с номерами строк и рекомендациями. ReviewFilter (валидация). Второй проход повышает точность (Precision). Модель работает в паттерне Conclusion First — получает тот же контекст плюс конкретный комментарий и отвечает: важно ли это замечание или нет. Отсекает 90% галлюцинаций и false positives.
Протестируйте новые LLM и мультимодальные модели в одном окне
Платформа Nomad AI (nomadnet.ai) даёт прямой доступ к Claude Opus 5.5, GPT-6, Gemini 3.1, DeepSeek и автономным агентам без VPN, зарубежных карт и зоопарка подписок.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.