Cursor опубликовали пост в блоге про улучшения Bugbot — их агента для автоматического код-ревью. Цифры такие: доля исправленных багов выросла с 52% до 70%, количество найденных багов на PR — с 0,4 до 0,7. Если посчитать, получается примерно в 2,5 раза больше реально исправленных багов на каждый пулл-реквест.
График в посте любопытный. Он не ровный. Одиннадцать версий на двух осях (процент исправлений и количество найденного), и путь не по прямой. Пятая версия откатилась назад. Восьмая почти не сдвинулась. А вот между девятой и одиннадцатой произошёл настоящий прорыв.
Сначала действовали в лоб
Пока не было метрик, делали как все: на глазок. Запускали, спрашивали инженеров, стало ли лучше, катили в прод, если консенсус был «ну вроде норм».
Первая архитектура прогоняла восемь параллельных проходов по каждому диффу с рандомизированным порядком файлов. Идея простая: если несколько проходов ругаются на одно и то же, скорее всего проблема реальная. Голосованием отсеивали шум. Этого хватило, чтобы летом 2025-го запустить публичную версию.
Но понять, становится ли система лучше, было невозможно.
Метрику построили на самооценке модели
Решение с метрикой исправлений получилось изящным. В момент мержа PR они запускают ИИ, который проверяет: а действительно ли каждый отмеченный баг был исправлен в финальном коде? Выборочно сверились с авторами PR. Модель почти не ошибалась.
Наконец-то появилось, что оптимизировать.
Большинство экспериментов провалились
Провели 40 крупных экспериментов: меняли модели, промпты, валидаторы, работу с контекстом. Многие изменения ухудшили метрики. В блоге об этом упоминают вскользь, но стоит задуматься: их первоначальные качественные оценки часто оказывались верными. То, что казалось перспективным, нередко проваливалось.
Переход на агентную архитектуру
Главный скачок случился осенью, когда перешли на полностью агентный дизайн. Вместо фиксированной последовательности проходов агент рассуждает над диффом, вызывает инструменты, сам решает, где копать глубже.
И вот контринтуитивная часть. В старой системе приходилось учить модель быть осторожной, иначе слишком много ложных срабатываний. С агентным подходом проблема оказалась обратной: модель слишком осторожничала. Пришлось переключиться на агрессивные промпты, которые велят агенту проверять каждый подозрительный паттерн.
Почему агрессивные промпты снижают ложные срабатывания? Моя версия: агентная система получает больше контекста перед принятием решения. Она может проверить догадку и скорректироваться. Старая система с параллельными проходами делала быстрые выводы на ограниченной информации.
Что дальше
Bugbot уже обрабатывает больше двух миллионов PR в месяц. Среди клиентов Discord, Airtable, Rippling, Sierra AI. Cursor сами используют его на всём своём коде.
Следующие шаги: Bugbot Autofix в бете — он запускает облачного агента, который сам исправляет найденные баги. Работают над тем, чтобы Bugbot мог запускать код для проверки своих же отчётов. Экспериментируют с версией, которая сканирует кодовую базу постоянно, а не ждёт PR.
Постоянный режим интересен. Статический анализ, работающий непрерывно, давно стандарт. Но непрерывный код-ревью на LLM? Год назад затраты на инференс сделали бы это нереальным.




