GitHub полностью переделала среду выполнения Copilot с TypeScript на Rust. Большую часть кода написали сами ИИ-агенты Copilot. Работа заняла три с половиной месяца. Изначально предполагалось 130 тыс. строк TypeScript, но итого обработали около 430 тыс. строк, результат вышел в 832 378 строк Rust.

Эта среда выполнения работает в GitHub Copilot CLI, приложении Copilot, наборе инструментов разработки, VS Code, Visual Studio, Copilot Studio и некоторых продуктах Microsoft 365. Прежняя архитектура на TypeScript, Node.js и V8 требовала много памяти, медленно стартовала и плохо встраивалась в другие приложения.

Проект начался в мае 2026 года. Первая оценка в 130 тыс. строк быстро устарела. Разработчики одновременно меняли код и переносили части из других компонентов в runtime. За время миграции Rust получился почти вдвое объёмнее исходного TypeScript.

Вместо полной переработки и резкого переключения GitHub встраивала компоненты Rust в основную ветку разработки. За 14,5 недель команда объединила 128 pull-requests и выпустила 135 версий, из них 35 стабильных. К 21 августа весь рабочий код runtime был на Rust.

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

На практике разница выглядит серьёзной. Создание клиента, запуск сеанса, один запрос к модели и закрытие в старой версии занимали 5,25 секунды. В новой среде выполнения внутри процесса это заняло около 55 миллисекунд. На другом тесте пропускная способность выросла с 7,55 до 120 коротких сеансов в секунду. GitHub уточняет, что эти цифры специфичны для этих сценариев и не означают универсального 16-кратного ускорения Copilot.

Потребление памяти упало. Когда работало десять клиентов, старая реализация требовала дополнительно примерно 1383 МБ. Rust как отдельный процесс требовал около 247 МБ, встроенный вариант около 126 МБ. Последний показатель на 91% ниже исходного.

ИИ-агенты сделали большую часть работы. Логи проекта содержат более 1,85 млн запусков инструментов, 61% из примерно 1,13 млн вызовов выполнили дочерние агенты. Разработчик Стивен Тауб оценил собственное прямое участие примерно в три недели: он задавал границы задач, проверял решения, контролировал тесты и возвращал агентам недоделанные части вместо того, чтобы писать весь код вручную.

Автоматизация не избежала ошибок. К 14 сентября команда нашла несколько десятков регрессий: расхождения в поведении, проблемы с состоянием объектов, неполный перенос функций, ошибки на границах компонентов. Все известные на тот момент регрессии исправили, часть поймали до выпуска стабильных версий.

На работу ИИ потратили около 136,3 млрд токенов, большинство из кеша. Счёт за токены вышел примерно $120 тыс. GitHub напоминает, что это не полная стоимость проекта. Нужно добавить человеческий труд, участие других инженеров в архитектуре, упаковке, проверке и интеграции.

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