Uber с помощью ИИ удалила более миллиона строк кода и очистила 16 тысяч устаревших флагов
iXBT.com ·

Uber рассказала о работе системы AutoClean, которая с помощью ИИ-агентов автоматически удаляет устаревший код из рабочих приложений и сервисов. По данным компании, система уже обработала более 16 тысяч устаревших флагов функций и очистила свыше миллиона строк кода. Инструмент решает проблему технического долга, который накапливается после запуска новых функций: когда функция полностью развёрнута, временные условия, вспомогательные методы и тесты часто остаются в кодовой базе.
В Uber флаги функций позволяют постепенно включать возможности для пользователей, проводить эксперименты и быстро отключать изменения при сбоях. Но после завершения развёртывания такие флаги нередко становятся ненужными, оставляя лишние ветви условий, параметры и тесты. Их удаление затрагивает сразу несколько файлов и требует понимания связей между компонентами программы. AutoClean постоянно проверяет систему управления флагами, находит кандидатов на удаление и подготавливает изменения кода для проверки инженерами.
В основе AutoClean лежит ИИ-агент с доступом к код-базе и инструментам редактирования. При этом Uber не поручает модели самостоятельно выполнять все преобразования: для упрощения логических условий используется детерминированный движок PolyglotPiranha. После изменений система запускает тесты и непрерывную интеграцию (CI). Если проверки завершаются ошибками, то AutoClean анализирует их и поэтапно исправляет проблемы: сначала применяются простые автоматические преобразования, а более сложные случаи, например решение о переписывании или удалении теста, передаются другим ИИ-агентам с ограниченными полномочиями.
Успешного прохождения тестов недостаточно, чтобы признать изменения безопасными. Агент может случайно удалить тест, который проверяет нужное поведение, или остановиться на полпути и оставить часть ненужного кода. Поэтому перед передачей изменений разработчикам AutoClean выполняет дополнительные статические проверки, а затем запускает CodeCourt — систему независимых ИИ-рецензентов. Каждый из них проверяет отдельное требование к изменению, а результат оценивается в совокупности. Только прошедшие эти этапы изменения направляются человеку, который принимает окончательное решение об удалении флага.