GitHub переписала движок Copilot с TypeScript на Rust — код в основном писали ИИ-агенты
Редакция XORit · Источники, использование AI и исправления

GitHub переписала agent runtime — рабочий движок Copilot — с TypeScript на Rust. Это больше 800 000 строк промышленного кода, которые приехали в 128 пул-реквестах. Основную часть написали не люди, а ИИ-агенты: автор проекта Стивен Тоуб описывает свою роль не как написание синтаксиса, а как работу с контуром управления — поставить задачу, оспорить решение, проверить качество и не дать агенту остановиться на полпути.
Этот runtime лежит в основе Copilot CLI, приложения Copilot и SDK, а через них используется в VS Code, Visual Studio, Copilot Code Review и других продуктах Microsoft и GitHub. Раньше вся связка работала на TypeScript, Node.js и движке V8: для консольного приложения это разумный выбор, но он плохо переносится туда, где важны быстрый старт и плотность серверов.
Причина переезда — архитектура. Клиентам SDK приходилось поднимать отдельный процесс Node: это минимум около 100 МБ рабочей памяти на каждого клиента, лишние межпроцессные вызовы и потеря сессии вместе с упавшим Node. Rust даёт встраиваемую библиотеку с низким потреблением памяти, которую можно подключить прямо в процесс клиента, — теперь один и тот же движок доступен шести языкам SDK: C#, TypeScript, Python, Rust, Go и Java.
Портировали по частям, без единого «дня переключения»: каждый кусок заменялся атомарно, проходил ревью и тесты, а релизы выходили почти ежедневно. По оценке GitHub, работа, на которую до эпохи агентов ушла бы команда разработчиков за год-два, была в основном выполнена одним человеком за несколько месяцев. К 21 августа runtime стал полностью Rust — с сотнями тысяч строк модульных тестов.
Отдельная деталь — как именно работали агенты. Они гораздо больше читали и искали, чем писали: правки составляли малую долю вызовов, а основное время уходило на изучение репозитория и проверки, то есть на исследование, а не на генерацию кода. Автор отдельно отмечает очень высокую долю попаданий в кэш промптов — около 96%, — без чего длинные автономные сессии были бы экономически нежизнеспособны.
При этом GitHub не утверждает, что любой большой проект на TypeScript нужно переписывать на Rust. В посте прямо сказано, что подходящий язык зависит от требований конкретного приложения, а встраиваемые режимы запуска пока включаются по желанию, пока набирается уверенность в общей границе отказа. Rust выбрали из-за встраивания через C ABI, низких накладных расходов и предсказуемого потребления ресурсов.
Изображение: GitHub Public domain
Редактор перевода: Салтанов А.
Источник материала: github.blog ↗