ИИтак

← Назад

Девять инженеров Microsoft приняли 1 211 правок кода за день

Большую часть кода Copilot Cowork пишут агенты, но критические правки и выпуск изменений в работающий сервис требуют участия людей.

Изображение: Microsoft

21 октября девять инженеров Microsoft приняли 1 211 запросов на изменение серверной части Copilot Cowork — агента для многошаговых офисных задач. Большую часть кода, по словам компании, написали ИИ-агенты.

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

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

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

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

Эти правила команда применила при переносе исполняющей задания части Copilot Cowork с языка программирования Python на Rust. Прежняя версия под нагрузкой могла задерживать обработку событий в одном процессе на 11,9 секунды. В одной группе серверов за неделю процесс Python 539 раз завершался из-за нехватки памяти. Переход закончили 10 октября: нагрузку переносили по группам серверов, сохраняя возможность вернуться к прежней версии.

Чтобы проверить новую реализацию, команда сохранила около 430 наборов результатов настоящего Python-кода: ответы, сообщения журнала и записи в хранилище. Тесты Rust воспроизводят те же входные данные и требуют точного совпадения результатов. Редактировать эти эталоны вручную нельзя; после удаления Python они остаются описанием ожидаемого поведения программы.

Эти тесты всё же не заметили нарушения порядка событий: прежняя версия соблюдала последовательность, которую никто явно не задал в требованиях. Первый ответ после перехода стал приходить быстрее, однако Microsoft не приписывает весь выигрыш Rust. Одновременно цикл работы агента перенесли из медленно запускавшейся изолированной среды в основной сервис; компания считает это причиной значительной части ускорения.

← Все новости