Compilador impulsado por agentes de IA supera el 99% de las pruebas de estrés de GCC

Dieciséis agentes autónomos de IA Claude escribieron de forma conjunta un nuevo compilador del lenguaje C y hasta consiguieron compilar un núcleo funcional de Linux. El experimento costó aproximadamente 20 000 dólares, duró dos semanas y resultó impresionante, pero no prescindió de un control humano intenso.
El investigador de la empresa Anthropic, Nicholas Carlini, habló sobre el proyecto en el que lanzó 16 instancias del modelo Claude Opus 4.6 en un entorno de desarrollo compartido. A cada agente se le dio acceso a un repositorio de código y a un conjunto de tareas. Ellos mismos elegían qué corregir y qué añadir a continuación, sincronizaban cambios y resolvían conflictos de versiones sin un nodo central de control. En total se realizaron casi 2000 sesiones de trabajo y el volumen final de código superó las 100 000 líneas. El compilador está escrito en Rust y es capaz de compilar un núcleo de Linux 6.9 para las arquitecturas x86, ARM y RISC-V.
Los desarrolladores publicaron el resultado en acceso público. El compilador logró compilar varios proyectos abiertos importantes, entre ellos PostgreSQL, SQLite, Redis, FFmpeg y QEMU. Superó alrededor del 99% de las comprobaciones del conjunto de pruebas de estrés para compiladores GCC e incluso consiguió compilar y ejecutar el juego Doom, una verificación que el propio autor del experimento calificó como ilustrativa para un desarrollador.
Además, la tarea resultó en gran medida conveniente para la IA. La especificación del lenguaje C está consolidada desde hace tiempo, existen conjuntos de pruebas detallados y compiladores de referencia para comparar los resultados. En el desarrollo real, con frecuencia es más difícil no escribir el código sino formular correctamente los requisitos y las comprobaciones, lo que aquí no fue necesario.
El proyecto también tiene muchas limitaciones. El compilador no sabe generar código de 16 bits para x86, que se necesita en la etapa inicial de arranque de Linux, por lo que en ese paso se usa GCC. El ensamblador y el enlazador propios todavía presentan errores. Incluso con las optimizaciones activadas, el resultado es menos eficiente que el código de GCC sin optimizaciones. La calidad del código fuente en Rust es funcional, pero está claramente por debajo del nivel de un desarrollador experimentado. Según Carlini, a medida que el proyecto crecía, corregir ciertos errores a menudo rompía partes que ya funcionaban.
El autor califica la implementación de "pura" porque los agentes no tuvieron acceso a internet durante el trabajo. Sin embargo, los modelos se entrenaron con enormes volúmenes de código abierto, donde casi con seguridad estaban GCC, Clang y otros compiladores. En el sentido clásico, el desarrollo "puro" significa que los creadores no vieron la implementación original, por eso esa etiqueta generó debate entre los programadores.
Los 20 000 dólares cubren solo los gastos por llamadas a la interfaz del modelo. No incluyen el coste de entrenar el modelo ni el trabajo manual para preparar el entorno. Carlini tuvo que crear bancos de pruebas especiales, un sistema de comprobaciones continuas y mecanismos de retroalimentación. Por ejemplo, los registros detallados de las pruebas sobrecargaban el contexto de trabajo del modelo y le entorpecían la tarea, por lo que fue necesario reducir la salida a resúmenes breves.
También se comprobó que el modelo no percibe el paso del tiempo y puede ejecutar comprobaciones durante horas sin avanzar, por lo que se añadió un modo acelerado con verificación selectiva del 1–10% de las pruebas. Cuando todos los agentes quedaron atascados en el mismo error del núcleo de Linux, se incorporó GCC como referencia de comparación para repartir las tareas entre distintos archivos.
El investigador señala que hace un año los modelos de lenguaje no podían acercarse a crear un compilador funcional, ni siquiera con presupuesto ilimitado y supervisión constante. Considera prometedor el enfoque de un grupo de agentes paralelos coordinados mediante un sistema de control de versiones. Al mismo tiempo, le preocupa la tendencia a desplegar programas que los desarrolladores no han verificado personalmente. En su opinión, esto puede convertirse en una nueva zona de riesgo en la seguridad del software.