Uber удалила более миллиона строк кода с помощью ИИ

1 час назад 4

Компания Uber сообщила о работе системы AutoClean, которая использует ИИ-агентов для автоматического удаления устаревшего кода из приложений и сервисов. Система уже обработала более 16 тысяч устаревших флагов функций и очистила свыше миллиона строк кода.

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

Флаги функций в Uber позволяют постепенно включать возможности для пользователей, проводить эксперименты и быстро отключать изменения при сбоях. После завершения развёртывания такие флаги могут стать ненужными, оставляя лишние ветви условий, параметры и тесты. Их удаление затрагивает несколько файлов и требует понимания связей между компонентами программы. AutoClean постоянно проверяет систему управления флагами, находит кандидатов на удаление и подготавливает изменения кода для проверки инженерами.

В основе AutoClean лежит ИИ-агент с доступом к код-базе и инструментам редактирования. Uber не поручает модели самостоятельно выполнять все преобразования: для упрощения логических условий используется детерминированный движок PolyglotPiranha. После изменений система запускает тесты и непрерывную интеграцию. Если проверки завершаются ошибками, AutoClean анализирует их и поэтапно исправляет проблемы. Сначала применяются простые автоматические преобразования, а более сложные случаи передаются другим ИИ-агентам с ограниченными полномочиями.

Успешного прохождения тестов недостаточно, чтобы признать изменения безопасными. Агент может случайно удалить тест, который проверяет нужное поведение, или остановиться на полпути и оставить часть ненужного кода. Поэтому перед передачей изменений разработчикам AutoClean выполняет дополнительные статические проверки, а затем запускает CodeCourt — систему независимых ИИ-рецензентов. Каждый из них проверяет отдельное требование к изменению, а результат оценивается в совокупности. Только прошедшие эти этапы изменения направляются человеку, который принимает окончательное решение об удалении флага.

Подписывайтесь на наш Telegram-канал, чтобы быть в курсе всех новостей и событий Рунета.

Источник