
First Blood: la IA finalmente superó ProgramBench 🩸
Recientemente escribí que los tan cacareados agentes de IA se estrellaron contra el benchmark ProgramBench, donde era necesario recrear un binario desde cero teniendo solo permisos de ejecución. Todos tenían un orgulloso 0%.
Pues bien, la puerta se ha abierto un poco. Los chicos publicaron una actualización: la nueva GPT-5.5 (xhigh) resolvió primero la tarea inicial: revirtió completamente y escribió un clon funcional de la utilidad
cmatrix.Pero lo más interesante de este informe no es el hecho de la solución en sí, sino cómo diferentes modelos abordaron la tarea. Es literalmente una instantánea de cómo piensan diferentes categorías de desarrolladores.
🤡 Claude Opus 4.7
Decidió escribir en C. Descubrió que en Docker no hay archivos de cabecera
ncurses.h. ¿Qué hace Claude? No se rinde. Analiza los binarios del sistema a través de ldconfig y nm -D, escribe manualmente curses_decls.h con más de 100 líneas de typedefs y enlaza todo eso al runtime. Ingeniería de sistemas absolutamente genial.Y luego falla en 19 pruebas. ¿Por qué?
Verificaba la validez del color ingresado usando
strcmp en lugar de strcasecmp. La entrada GREEN o Red rompía la lógica. El modelo gastó 178 llamadas API ($10.74), montó un complejo sistema a través del enlazador dinámico, pero fracasó en una comparación de cadenas sin convertir a mayúsculas/minúsculas.🧠 GPT 5.5
El agente revisa Docker, intenta compilar un archivo de prueba en C y ve que no hay cabeceras para
ncurses.Su lógica: "Al diablo con esto, lo escribo en Python".
Curiosamente, los autores del benchmark tuvieron que eliminar una prueba para que Python ganara.
En el binario original en C, al ingresar un número enorme, el programa fallaba por desbordamiento de enteros. La variable se desbordaba, el retardo se volvía minúsculo y la matriz volaba a máxima velocidad. Los autores del benchmark consideraban esto una "característica".
📱 La versión en Python de GPT-5.5 analizó honestamente el número (gracias a la aritmética de precisión arbitraria de Python, que ignora los límites) y entró honestamente en
time.sleep(1e22). La plataforma, como era de esperar, arrojó OverflowError: timestamp out of range.El bug del
atoi() en C se presentaba como comportamiento del sistema, pero Python lo puso en su lugar.¿Cuánto tiempo damos para tomar este benchmark?
Comentarios
0Aún no hay comentarios.