Команда Hugging Face настроила автономного агента для починки упавших тестов в библиотеке Transformers, и за восемьдесят дней инженеры влили двадцать девять его правок. Это не волшебная кнопка, которая решает проблемы без людей, а строгая цепочка из шести шагов с проверкой на видеокартах. Бот отсекает шум, повторяет сбой в чистом контейнере и зовет разработчиков только с проверенным решением.
Зачем гонять робота по ночам
В библиотеке Transformers почти двести тысяч тестов. Запускать такую массу проверок на каждый коммит слишком дорого. Днем разработчики гоняют только тесты для измененных файлов, а полный тяжелый набор включают ночью на серверах с видеокартами.
Утром инженеры регулярно видели красные отчеты. Ошибки там простые: изменилась форма массива или обновился пакет. Но чтобы починить сбой, человеку нужно открыть лог, запустить видеокарту и дождаться прогона. На один случай уходит час или два. Когда тестов тысячи, рутина выматывает команду.
Главная ценность ночной системы не в генерации кода, а в раннем отказе. Если ошибка не воспроизводится стабильно на свежей видеокарте, задача не должна тратить время и деньги на нейросеть.
Шесть ступеней до первого пуллреквеста
Чтобы не перегружать людей, в Hugging Face собрали конвейер с принципом ранней остановки. Если что-то идет не так, робот сразу бросает задачу и не сжигает токены зря.
Логика работы делится на шесть шагов:
- Отбор кандидатов: бот берет тесты, которые падали всю прошлую неделю.
- Воспроизведение: в чистом контейнере сбой повторяют на видеокарте; если тест прошел сам, работу сворачивают.
- Память проекта: через базу relore агент проверяет, не чинит ли проблему человек.
- Генерация кода: модель правит код и гоняет линтеры.
- Строгий тест: запуск пять раз без патча и пять раз с патчем на видеокарте.
- Публикация: бот открывает ветку serge и зовет инженеров на ревью.

Если вы хотите настроить такие же связки для рабочих задач, заглядывайте в наш телеграм-канал Ковчег, подписывайтесь на канал Ковчег в MAX или приходите на обучение Cursor, Make и нейросетям, где мы разбираем автоматизацию шаг за шагом.

Почему две недели отсекли сотню сбоев
Реальная статистика отрезвляет. За две недели инженеры зафиксировали сто семнадцать групп сбоев, но до открытого пуллреквеста дошли единицы.
Двадцать девять групп отсеялись сразу: на базовой ветке тесты уже позеленели. Две попытки сорвались из-за сетевой ошибки. Запустилось восемьдесят шесть сессий с моделью. В двадцати восьми случаях бот не нашел безопасного решения. В восемнадцати попытках патч завалил запуск на видеокарте. Пять раз вышло время ожидания, а одиннадцать сессий упали из-за внутренних сбоев инфраструктуры.

В итоге получилось двадцать четыре успешных проверки и девятнадцать уникальных пуллреквестов. Важно не путать две цифры: двадцать девять групп за две недели даже не дошли до модели, а двадцать девять принятых правок — это итог за восемьдесят дней работы.

Робот готовит черновик и прикладывает доказательства с реального сервера, но кнопку слияния в основную ветку нажимает только живой разработчик после внимательного чтения.

Ошибка в тесте, которую не замечали два года
Показательный пример — пуллреквест 49067 для модели PVT v2. Тест падал шестьсот девяносто восемь ночей подряд, с августа 2024 года. За два года не было ни одного зеленого прогона.

Оказалось, разработчики скопировали числа из первой версии модели. Первая версия выдавала трехмерный массив, а вторая создает четырехмерные карты признаков. Бот разобрался в несоответствии, поправил три строчки в тесте, пять раз подтвердил результат на видеокарте и отдал ветку инженерам. Правку приняли без изменений.

Если автоматический помощник меняет только ожидаемые числа в тесте, к нему всегда относятся с подозрением. Программе проще подогнать ответ под ошибку, чем найти настоящий сбой в коде.
Где кончается автопилот и начинается человек
Безопасность держится на строгих запретах. Запуск идет в изолированном контейнере. У робота нет ключей от основной ветки. Он может только отправить код в ветку serge и открыть пуллреквест.
Ни один коммит не попадает в проект сам. По оценке инженеров, на проверку решения уходит час или два. На двадцать девять правок потратили около сорока трех часов ревью вместо сотен часов ручной отладки. Сессия модели стоит около двух-трех долларов: четырнадцать на пуллреквест и сорок три на влитый патч.

Не стоит ждать, что такую систему можно собрать за один вечер. В первые недели бот почти не приносил пользы, пока команда не переписала подсказки и не добавила проверку истории. Автоматизация снимает рутину, но за проект всегда отвечает живой инженер.