BookinglyTech News
Inteligencia artificial

Microsoft reescribe el runtime de Copilot en Rust con agentes de IA por 120.000 dólares

El motor que sostiene GitHub Copilot pasa de TypeScript a Rust en 14,5 semanas, con una mejora de 15,9 veces en un benchmark y varias docenas de regresiones por el camino.

3 min de lecturaThe Register0 vistas

Microsoft ha reescrito por completo en Rust el runtime que sostiene GitHub Copilot, y el grueso del trabajo lo han hecho agentes de IA. La migración costó unos 120.000 dólares en consumo de tokens y unas tres semanas del tiempo de un desarrollador. El resultado: 800.000 líneas de Rust en producción a partir de 430.000 líneas de TypeScript.

El traslado se hizo módulo a módulo, con 135 releases a lo largo de 14,5 semanas y una media de 1,3 pull requests de port al día. La regla fue no optimizar nada durante el proceso, solo sustituir TypeScript por Rust pieza a pieza. Lo que hay detrás no es un componente menor: ese runtime alimenta la CLI de GitHub Copilot, la app, el SDK y el agente en la nube, y aparece en VS Code, Visual Studio, Excel, Outlook, PowerPoint y un buen montón de servicios en la nube de Microsoft.

De 7,55 a 120 ciclos por segundo

Los números de rendimiento. En un benchmark de 1.000 ciclos de sesión de un turno con cliente compartido y 100 pipelines concurrentes, la implementación original en TypeScript completaba 7,55 ciclos por segundo; Rust, en proceso, llegaba a 120. Son 15,9 veces más en esa carga concreta. La memoria también se desploma: un lote de 10 clientes consumía 1.383 MB con TypeScript y 126 MB con Rust sirviendo el mismo enjambre. Con Rust el trabajo se queda dentro del proceso en lugar de lanzar procesos externos en segundo plano, algo que TypeScript necesitaba.

Stephen Toub, ingeniero distinguido de Microsoft, lo deja claro en el post donde explica el proceso: "Esto no es en absoluto una afirmación de que todo programa grande en TypeScript deba convertirse en Rust. Nuestros requisitos eran el embedding a través de una ABI de C, poco arranque y poco consumo en estado estacionario, y un uso de recursos predecible. Rust hizo posibles esos objetivos".

Se usó Copilot para reescribir Copilot, con varios LLM repartiéndose el trabajo según su especialidad: GPT-5.6 Sol y Claude Opus 4.8 aparecen citados. Toub describe comportamientos emergentes curiosos. Los agentes pasaban mucho más tiempo recopilando información que escribiendo código. La conversión más peliaguda fue session.ts, más de 30.000 líneas de TypeScript que tocaban todos los aspectos del runtime: la sesión tardó 25 horas, arrancó con 56 minutos leyendo documentación y 122 llamadas a herramientas para pedir aclaraciones, y llegó a lanzar 15 sesiones hijas que se coordinaban entre sí mediante una skill de orquestación.

El compilador no es un oráculo

El problema fueron las regresiones. Docenas. Que el código compile no significa que haga lo correcto: el compilador no sabe si las funciones están en el orden adecuado, ni si el trabajo termina a un coste aceptable, ni si cumple requisitos que el desarrollador nunca escribió.

En RustConf, en Montreal, la consultora Lisa Crossman lo formuló así: "Rust impide que el agente escriba código con memoria insegura; no impide que el agente escriba el programa equivocado correctamente". El caso de Bun va en la misma línea: su port a Rust, con 535.000 líneas de Zig de por medio, pasaba el 99,8% de los tests en Linux x64 glibc a 30 de julio, con 165.000 dólares en tokens.

Queda la segunda fase, que es optimizar la estructura del propio runtime. Y queda la pregunta que acompaña a cualquier migración de este tipo: los agentes abaratan muchísimo el trabajo mecánico, pero revisar las regresiones sigue siendo cosa de una persona, y ahí es donde se va el tiempo.