Команда сервиса перевела внутренний рантайм ассистента на новый язык, переложив рутину на собственных автономных агентов. На весь перенос ушло четырнадцать с половиной недель и 128 точечных изменений в коде. На тестовом стенде задержка одного хода сократилась в 18 раз, а расход памяти упал почти в 11 раз. Разберем, как выстроили связку человека и помощников, какие скрытые баги всплыли при сборке и почему скомпилированный код не всегда означает рабочий результат.
Зачем понадобилось трогать работающий код
Внутренний рантайм — это общий фундамент ассистента. На нем работают консольный интерфейс, приложение для рабочего стола, готовые библиотеки и расширения для редакторов кода. Изначально всю логику писали на привычном скриптовом языке под платформу Node.js.

Со временем архитектура уперлась в потолок. Когда вы подключали библиотеку к программе на C#, Python или Go, она не встраивалась внутрь процесса. Библиотека запускала рядом отдельный консольный процесс и общалась с ним через локальные сообщения.
Каждое клиентское подключение забирало от 100 мегабайт оперативной памяти только на саму среду. Если фоновый узел зависал, сессия мгновенно рвалась. Вручную переписывать такую махину силами инженеров значило заморозить развитие продукта на пару лет.
Если для каждого клиентского подключения приходится запускать отдельную виртуальную машину со средой выполнения, система быстро упирается в память и время старта.
Как агенты переносили систему прямо в рабочую ветку
Инженеры не стали отдавать модели всю кодовую базу одним запросом. Они запустили настольное приложение Copilot и консольный инструмент в режиме автопилота, перенося компоненты по очереди.

Вся работа шла сразу в основной ветке. За три с половиной месяца влили 128 пулл-реквестов. При этом 61% всех вызовов инструментов выполнили автономные субагенты. Они сами читали файлы, проверяли синтаксис и правили нестыковки.

Человек управлял архитектурой и границами. Инженер Стивен Тауб отправил 2600 сообщений, направляя работу тридцати тысяч реплик помощников. На проект потратили около 136 миллиардов токенов, а счет за модели составил 120 тысяч долларов.
Если вы проектируете и внедряете сложные агентские цепочки в реальных проектах, заглядывайте в наш телеграм-канал Ковчег или читайте материалы в MAX. А если хотите освоить настройку автоматизаций и прикладных нейросетей шаг за шагом, обратите внимание на практическое обучение по Make и нейросетям.
Компилятор не защитит от логических промахов
Среди новичков популярен миф: если программа на Rust собралась, в ней нет ошибок. Опыт миграции показал обратное. Десятки скрытых багов без проблем прошли компилятор и попали в рабочую ветку.
Строгие типы защищают память, но не проверяют логику. Компилятор спокойно пропускал код с потерянным вызовом метода или значение 42.0 вместо целого числа. Код компилировался начисто, но поведение клиентов ломалось.
При этом строгая проверка владения дала меньше 2% ошибок при сборке. Чаще всего модель спотыкалась на забытых именах или типах полей. Проект спасла не магия языка, а тесты: почти полмиллиона строк модульных проверок и надежные сквозные тесты.
Успешная сборка программы компилятором лишь подтверждает строгое соответствие типам, но совершенно не гарантирует отсутствие скрытых ошибок в поведении.
Что показали замеры на стенде и чего ждать на практике
К концу августа кодовая база насчитывала 832 378 строк на Rust. В официальном блоге GitHub опубликовали результаты испытаний на тестовом стенде.

На тестах C# библиотеки время одного цикла сократилось с 5.25 секунды до 292 миллисекунд — ускорение в 18 раз. А расход оперативной памяти на десять клиентов упал с 1383 до 126 мегабайт.

Но универсального ускорения в 18 раз в вашем проекте не будет. Замеры делали на изолированном стенде с коротким ответом, без реальных запросов к нейросети и сетевых задержек. В боевых условиях время уходит на генерацию токенов моделью.
Главный прирост скорости дает не сам переход на новый язык, а возможность встроить исполняемый модуль прямо в процесс без лишних посредников.
Встраивание внутрь процесса через внешний интерфейс пока остается экспериментальным. По умолчанию библиотеки запускают консольный процесс, как описано в документации Copilot SDK и документации Copilot CLI. Исходники рантайма закрыты, но для изучения открыты репозиторий Copilot CLI и публичный репозиторий Copilot SDK.

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