Аутсорсинг IT специалистов

Москва, Большой Сухаревский пер, д15, стр1, офис 3

← Журнал
AI

GitHub переписала движок Copilot с TypeScript на Rust — код в основном писали ИИ-агенты

Редакция XORit · Источники, использование AI и исправления

GitHub переписала движок Copilot с TypeScript на Rust — код в основном писали ИИ-агенты
Фото: GitHub, Public domain

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 ↗

← Все новостиЧитать XORit в Telegram ↗

Закажите звонок
или свяжитесь с нами

Заказать звонок

Ваша заявка успешно
отправлена

Мы свяжемся с вами в ближайшее время,
чтобы обсудить детали сотрудничества

Произошла ошибка
при отправке формы

Пожалуйста, попробуйте позже
или свяжитесь с нами напрямую: