Les dimos a cuatro agentes de programación las mismas 24 tareas de corrección de errores y de nuevas funciones, y calificamos cada resultado con pruebas ocultas que el agente nunca vio, ejecutadas sobre una copia limpia de su trabajo. También contamos el resultado que más importa cuando le encarga trabajo real a un agente: dijo LISTO y las pruebas ocultas fallaron.
| Agente | Aprobadas | Fáciles | Mundo real | Difíciles | Dijo LISTO, mal | Sin tiempo | Tiempo mediano |
|---|---|---|---|---|---|---|---|
| CodexGPT-6 Astra (esfuerzo alto) | 22/24 | 6/6 | 9/10 | 7/8 | 2 | 0 | 1.8 min |
| Claude SonnetSonnet 5.5 en Claude Code (esfuerzo alto) | 20/24 | 6/6 | 8/10 | 6/8 | 4 | 0 | 26 s |
| Z.ai GLMGLM-5.3 | 17/24 | 6/6 | 6/10 | 5/8 | 5 | 2 | 3.1 min |
| Google AntigravityGemini 3.1 Pro (alto) | 13/24 | 6/6 | 5/10 | 2/8 | 11 | 0 | 2.6 min |
Aprobar significa que las pruebas ocultas pasaron y que todo el conjunto de pruebas existente del proyecto siguió en verde, dentro del límite de 25 minutos. El tiempo mediano es solo tiempo del agente, sin contar la calificación.
aprobada · falló pero dijo LISTO · llegó al límite de 25 minutos
| Tarea | Codex | Claude Sonnet | Z.ai GLM | Google Antigravity |
|---|---|---|---|---|
| Piloto fácil. Cuatro errores públicos de proyectos originales (more-itertools, humanize, boltons, click) y dos tareas sintéticas: un error de causa raíz y una función pequeña con línea de comandos. | ||||
| more-itertools | ||||
| humanize | ||||
| boltons | ||||
| click | ||||
| synthetic root-cause bug | ||||
| synthetic feature + CLI | ||||
| Mundo real reconstruido. Código nuevo e independiente que escribimos para reproducir la forma de errores encontrados en revisiones de código anteriores. Se publica solo como elementos numerados. | ||||
| Real-world 1 | ||||
| Real-world 2 | ||||
| Real-world 3 | ||||
| Real-world 4 | ||||
| Real-world 5 | ||||
| Real-world 6 | ||||
| Real-world 7 | ||||
| Real-world 8 | ||||
| Real-world 9 | ||||
| Real-world 10 | ||||
| Errores públicos difíciles. Errores reales de proyectos públicos de código abierto: networkx, pyparsing, sqlglot, lark y flask. | ||||
| networkx: connectivity | ||||
| networkx: ISMAGS | ||||
| networkx: weak views | ||||
| sqlglot: BD literal | ||||
| pyparsing: match previous | ||||
| pyparsing: bounded repeat | ||||
| lark: interactive copy | ||||
| flask: IPv6 | ||||
Lo que revisaban las pruebas ocultas que fallaron. Cada uno de estos se reportó como terminado.
| Z.ai GLM | networkx: weak views | Una vista serializada (pickle) por sí sola vuelve con un enlace muerto a su grafo (4 pruebas ocultas). |
| Claude Sonnet | networkx: weak views | Las mismas 4 pruebas que GLM: una vista serializada por sí sola pierde su grafo. |
| Google Antigravity | networkx: weak views | Las vistas dejaron de guardarse en caché y los grafos serializados perdieron su caché de vistas (6 pruebas). |
| Claude Sonnet | sqlglot: BD literal | La forma entera 0BD se interpreta como alias, y el 1E3BD de Spark 2 pierde su sufijo. |
| Codex | sqlglot: BD literal | El mismo caso 0BD; la escala negativa de Spark 2 provoca un fallo; Hive genera CAST donde se espera TRY_CAST. |
| Google Antigravity | sqlglot: BD literal | Falla con cada literal BD: 123 fallas ocultas. |
| Google Antigravity | networkx: connectivity | Los resultados dirigidos siguen mal en algunas funciones de flujo, y los grafos no conexos ya no generan error (5 pruebas). El reporte decía «para cada función de flujo». |
| Google Antigravity | pyparsing: match previous | Las pruebas ocultas pasaron, pero rompió una prueba existente, así que el conjunto quedó en rojo. |
| Google Antigravity | pyparsing: bounded repeat | Las repeticiones acotadas recortan los nombres de resultados a su primera coincidencia (72 pruebas). |
| Google Antigravity | flask: IPv6 | SERVER_NAME="localhost:0" arranca en el puerto 5000, no en el 0 (1 prueba). |