У команды Cursor есть инструмент под названием Bugbot. Его задача – автоматически искать и исправлять баги в коде. Звучит просто, но на практике такие системы сложно оценивать и улучшать. Обычные метрики вроде «сколько тестов прошло» не всегда показывают реальное качество работы.
Недавно они поделились тем, как решили эту проблему: создали собственную метрику на основе ИИ и использовали её для систематического улучшения Bugbot.
Проблема оценки качества исправлений
Когда бот исправляет баг, нужно понять: действительно ли это хорошее исправление? Можно проверить, проходят ли после этого тесты. Но тесты не всегда есть, и они не всегда покрывают все важные аспекты.
Можно привлечь людей для оценки – но это медленно и дорого. Особенно если вы экспериментируете и хотите быстро проверять десятки вариантов.
В Cursor решили, что нужна автоматическая метрика, которая будет оценивать исправления почти так же, как это делал бы опытный разработчик.
Метрика на основе ИИ
Они построили специальную модель, которая смотрит на исправление и выставляет оценку: насколько хорошо бот справился с задачей. Проще говоря, один ИИ проверяет работу другого.
Эта метрика учитывает не только факт исправления, но и качество кода, полноту решения, возможные побочные эффекты. То есть она пытается имитировать то, как человек оценивал бы результат.
Конечно, такая метрика не идеальна. Но если она достаточно хорошо коррелирует с человеческими оценками, её можно использовать для быстрых экспериментов.
Как это помогло улучшить Bugbot
С появлением этой метрики процесс улучшения стал более управляемым. Раньше было сложно понять, какие изменения в системе действительно помогают, а какие – нет. Теперь можно запустить тест, получить числовую оценку и сравнить разные подходы.
Команда начала систематически проверять гипотезы: менять промпты, настраивать параметры модели, экспериментировать с контекстом, который передаётся боту. После каждого изменения метрика показывала, стало лучше или хуже.
Такой подход позволил найти несколько важных улучшений, которые иначе могли бы остаться незамеченными.
Что это значит для разработки ИИ-инструментов
История с Bugbot – хороший пример того, как можно ускорить разработку сложных ИИ-систем. Когда у вас есть надёжная метрика, вы можете экспериментировать быстрее и увереннее.
Это особенно важно для инструментов, которые работают с кодом. Там качество результата часто неочевидно, и нельзя просто посчитать точность или полноту.
Подход с кастомными метриками на базе ИИ может быть полезен не только для отладки багов, но и для других задач: генерации кода, рефакторинга, автоматических ревью.
Открытые вопросы
Остаётся несколько интересных моментов. Во-первых, насколько точно такая метрика соответствует реальным предпочтениям пользователей? ИИ может научиться оценивать код по определённым критериям, но всегда есть риск, что он упустит что-то важное или, наоборот, переоценит формальные аспекты.
Во-вторых, как обучать и калибровать такую метрику? Скорее всего, нужен какой-то набор эталонных примеров, размеченных людьми. Это требует времени и усилий, хотя всё равно меньше, чем постоянная ручная оценка каждого эксперимента.
Но в целом идея выглядит разумной: использовать ИИ не только как рабочий инструмент, но и как способ измерения качества других ИИ-систем.