Microsoft 26 октября описала, как использует ИИ-агентов для крупных изменений в кодовых базах Windows и Azure. Один из проектов охватывает миграцию 400-миллионной кодовой базы на инструменты Clang/LLVM, а отдельное направление переводит унаследованный C и C++ на Rust. Компания не утверждает, что эти работы завершены или полностью автоматизированы.
- Январь 2025 года: сгенерированный Rust-код не компилировался
- Июнь 2025 года: код компилировался, но работал неправильно или не проходил тесты
- Сентябрь 2025 года: рабочие переводы примерно 30 тысяч строк с ручным сопровождением
- С февраля 2026 года: значительная автоматизация на более крупных кодовых базах
Источник: Microsoft, 26 октября 2026 года. Это внутренние результаты компании, а не независимое сравнение.
Вместо проверки каждой правки Microsoft формирует с помощью агентов базу правил на выборке типовых задач. Отдельный агент-рецензент оценивает исправления по корректности, минимальности, соответствию принятым соглашениям и удобству сопровождения. Эксперты утверждают общие правила, после чего агенты применяют их по всей кодовой базе; люди подключаются к новым и неоднозначным случаям.
Компания приводит и другие сценарии: добавление поддержки Clang/LLVM для Windows, исправление замечаний анализаторов CodeQL, PREfast и Roslyn, а также перенос сервисов с x86 на Arm. Microsoft считает более надёжной миграцию по пользовательским функциям, а не построчный перевод компонентов. Для каждого сценария создаётся отдельный набор проверок, поведение исходной и новой версий сравнивается, а часть тестов скрывают от агента, чтобы снизить риск подгонки результата.
Для перевода на Rust команда начала извлекать формальные спецификации из исходного кода и проверять получившуюся реализацию инструментом Verus. В других экспериментах агенты составляют спецификации TLA+, после чего трассы выполнения сверяются с моделью; свойства также пытаются доказывать средствами F* и Lean.
У подхода остаётся принципиальное ограничение. Если ИИ выводит спецификацию из того же кода, который нужно проверить, модель может точно описать существующее поведение, но не замысел разработчиков. Авторы Microsoft называют доверие к таким спецификациям открытым вопросом, наряду с проверкой безопасности, производительности и надёжности.
Verus действительно предназначен для статической проверки того, что Rust-код соответствует заданным спецификациям, но проект поддерживает лишь часть языка и остаётся в активной разработке. Поэтому описанный Microsoft процесс следует считать инженерским направлением и внутренним опытом, а не готовым продуктом или гарантией безошибочной автоматической миграции.
Пока никто не ответил. Начните обсуждение.