Análisis de evaluación de agentes
ProgramBench: todas las IAs públicas obtienen un 0% en la prueba de codificación más difícil hasta el momento
ProgramBench desafía a los agentes de IA a reconstruir programas solo a partir de binarios, sin código fuente ni descripciones de problemas. Todos los modelos públicos fallan al resolver completamente cualquier tarea, exponiendo debilidades en la exploración, arquitectura y juicio de parada. El benchmark es una prueba de estrés para agentes de codificación que avanzan más allá de los flujos de trabajo basados en parches.

ProgramBench es un nuevo y duro benchmark de codificación para LLM que apunta a una capacidad que la mayoría de las tablas de clasificación apenas tocan: ¿puede un modelo reconstruir un programa completo a partir del comportamiento observado, sin ver nunca el código fuente? the-verification-horizon-why-rewarding-coding-agents-is-getting-harder
La configuración es sencilla pero castigadora. Un agente recibe un ejecutable compilado y su documentación de uso. Su trabajo: sondear el programa, inferir cómo funciona, elegir una estrategia de implementación, escribir código fuente, crear un script de compilación y enviar un programa candidato. Luego, la salida se compara con la original mediante pruebas de comportamiento ocultas.
Eso está muy lejos de completar una sola función, resolver un problema de concurso o parchear un repositorio conocido.
Qué evalúa ProgramBench que otros benchmarks no evalúan
ProgramBench es más importante para evaluar agentes de codificación que modelos de chat. Si tu flujo de trabajo es "pedirle al modelo que escriba una función pequeña", ProgramBench es probablemente demasiado difícil y demasiado indirecto. HumanEval, LiveCodeBench y las evaluaciones de codificación específicas de lenguaje te dirán más. Si tu flujo de trabajo es "pedirle al modelo que parchee un repositorio conocido", SWE-bench Pro, SWE-Rebench y SWE-bench Verified siguen siendo más directamente relevantes.
ProgramBench se vuelve interesante cuando el trabajo está menos estructurado. Para los compradores de modelos, todavía no es una tabla de clasificación del tipo "elige el mejor modelo y envíalo". Es más bien una advertencia: los agentes de codificación actuales todavía tropiezan cuando el código fuente, la descripción del problema y el andamiaje desaparecen. Para los constructores de agentes, es una herramienta de diagnóstico: revela si el agente puede investigar antes de implementar. the-verification-horizon-why-rewarding-coding-agents-is-getting-harder
ProgramBench se basa en el concepto de reconstrucción en sala limpia. Cada tarea comienza con un ejecutable compilado y documentación. El modelo debe decidir qué preguntas hacerle al ejecutable. Puede ejecutar el programa con entradas y observar las salidas, pero no puede mirar la implementación subyacente. Esto hace de ProgramBench un punto de referencia para la arquitectura y el descubrimiento de especificaciones, no solo para la escritura de código.
Cómo se compara ProgramBench con los principales benchmarks de codificación
La mayoría de los benchmarks de codificación todavía proporcionan a los modelos mucha estructura. HumanEval proporciona una firma de función y un docstring. SWE-bench Verified da un repositorio existente y un problema específico. LiveCodeBench entrega enunciados de problemas al estilo de programación competitiva. ProgramBench elimina la mayor parte de ese andamiaje. Pregunta si el agente puede reconstruir el comportamiento objetivo solo a partir de la interacción.
Esa distinción importa porque la ingeniería de software real a menudo comienza con especificaciones parciales. Los desarrolladores realizan ingeniería inversa de flujos de trabajo, sondean APIs, exploran sistemas antiguos e infieren casos límite a partir del comportamiento observado. ProgramBench comprime ese tipo de trabajo en un entorno de evaluación. why-your-ai-agent-might-ace-the-task-but-flunk-the-process-enter-skillcoach
La comparación más cercana es SWE-bench, pero la forma de la tarea está casi invertida. SWE-bench pregunta si el agente puede modificar correctamente una base de código real. ProgramBench pregunta si el agente puede descubrir qué hace un programa y construir una nueva base de código que se comporte de manera idéntica. the-migration-isnt-finished-until-the-build-server-says-it-is-why-ai-agents-keep-failing-at-enterprise-java
Tabla de clasificación actual: una instantánea aleccionadora
La tabla de clasificación pública inicial es deliberadamente aleccionadora:
- Claude Opus 4.7: 0,0% completamente resueltos, 3,0% casi resueltos
- Claude Opus 4.6: 0,0% completamente resueltos, 2,5% casi resueltos
- Claude Sonnet 4.6: 0,0% completamente resueltos, 1,0% casi resueltos
- GPT 5.4: 0,0% completamente resueltos, 0,0% casi resueltos
- Gemini 3.1 Pro: 0,0% completamente resueltos, 0,0% casi resueltos
La métrica principal son las tareas completamente resueltas. Todos los modelos públicos están actualmente en 0%. ProgramBench también reporta tareas "casi resueltas", ejecuciones que pasan al menos el 95% de las pruebas de comportamiento. BenchLM usa esa métrica auxiliar en la página de visualización porque es el único separador visible entre modelos en este momento.
Cómo leer la tabla de clasificación correctamente
La tabla de clasificación de ProgramBench exige una lectura más cuidadosa que un benchmark de codificación normal. En la mayoría de las tablas de clasificación de codificación, una puntuación más alta significa directamente más tareas resueltas. En ProgramBench hoy, la métrica principal oficial es plana: cada modelo público evaluado está en 0% completamente resuelto. La única separación proviene de la tasa auxiliar "casi resuelto".
Eso significa tres cosas. Primero, no clasifiques en exceso a los tres primeros actuales. Que Claude Opus 4.7 lidere con un 3,0% de casi resueltos es una señal significativa de que se acercó más a menudo, pero no es una tasa de éxito a nivel de producción. Segundo, no trates el 0,0% de casi resueltos como una calidad de modelo idéntica. Un modelo puede fallar en ProgramBench de muchas maneras. Tercero, espera que los efectos del entorno importen; ProgramBench es un benchmark de agentes, no un benchmark de modelos puro.
Fallas expuestas: por qué las puntuaciones están cerca de cero
Las puntuaciones bajas de ProgramBench exponen varios modos de falla a la vez. La exploración superficial lleva a los agentes a inferir demasiado a partir de muy pocas observaciones. La implementación prematura, fomentada por muchos flujos de trabajo de agentes optimizados para ediciones rápidas, perjudica cuando el principal desafío es descubrir la especificación. La falta de casos negativos significa que los agentes pasan por alto banderas inválidas, errores y códigos de salida. La arquitectura débil sin un esqueleto conduce a implementaciones frágiles que no pueden escalar. La mala autoevaluación impide que los agentes validen sus reemplazos. El exceso de confianza es un problema práctico grave: los agentes a menudo declaran finalización y envían trabajo incompleto, como se señaló en la discusión de lanzamiento de LocalLLaMA. La fragilidad del bucle de herramientas puede acabar incluso con los modelos base más fuertes.
Esos modos de falla son precisamente por lo que ProgramBench es útil. También son la razón por la que una futura tabla de clasificación pública debería reportar más de un número. Para un análisis serio, necesitamos saber si las fallas provinieron de mala exploración, mal código, compilaciones fallidas, límites de tiempo, casos límite faltantes o malas decisiones de parada. why-your-ai-agent-might-ace-the-task-but-flunk-the-process-enter-skillcoach
Cómo ejecutar ProgramBench
El equipo ha publicado el repositorio de GitHub, los conjuntos de datos de Hugging Face y los materiales de Docker/inferencia. El flujo de trabajo local básico es instalar el paquete y evaluar un envío con programbench eval. Los agentes deben preservar la configuración del benchmark: sin acceso a Internet, sin búsqueda directa de código fuente y sin atajos de descompilación. Para los equipos que construyen agentes de codificación, el valor práctico está menos en perseguir la tabla de clasificación actual y más en ejecutar experimentos internos controlados.
Próximos pasos para el benchmark
ProgramBench será más útil si los envíos públicos separan la calidad del modelo de la calidad del entorno, si los resultados de peso abierto obtienen una cobertura más amplia y si la métrica principal de resolución se mueve. BenchLM rastrea ProgramBench en una página de benchmark dedicada y lo mantiene solo como visualización en la tabla de clasificación de codificación hasta que la señal se vuelva más estable. Por ahora, se trata mejor como una luz de advertencia fronteriza sobre los límites de los agentes de codificación actuales en la reconstrucción en sala limpia. all-llms-corrupt-your-documents-when-you-delegate-a-close-look-at-the-delegate-52-benchmark