Phase 14 - Lesson 19
Benchmarks: SWE-bench, GAIA, AgentBench
Tres benchmarks anclan la evaluación de agentes en 2026. SWE-bench prueba la corrección de código. GAIA prueba el uso generalista de herramientas. AgentBench prueba el razonamiento en múltiples entornos. Conozca su composición, su historial de contaminación y lo que no miden.
Type: Learn Languages: Python (stdlib) Prerequisites: Phase 14 · 06 (Tool Use) Time: ~60 minutos
Learning Objectives
- Nombrar el arnés de prueba de SWE-bench (FAIL_TO_PASS) y explicar por que está limitado por pruebas unitarias.
- Explicar por qué existe SWE-bench Verified (OpenAI, 500 tareas) y qué elimina.
- Describir el diseño de GAIA: simple para humanos, difícil para la IA; tres niveles de dificultad.
- Nombrar los ocho entornos de AgentBench y su principal obstáculo para las LLM de código abierto.
- Resumir el hallazgo de contaminación de SWE-bench+ y sus implicaciones.
The Problem
Las tablas de clasificación (leaderboards) indican qué modelo gana en un benchmark. No le dicen:
- Si el benchmark está contaminado (soluciones en los datos de entrenamiento, filtración de pruebas).
- Si el benchmark mide lo que a usted le interesa (código frente a navegación frente a generalista).
- Si el evaluador es robusto (comparación de AST, comprobaciones de estado, revisión humana).
Conozca los tres benchmarks de anclaje y sus modos de fallo antes de citar una cifra.
The Concept
SWE-bench (Jimenez et al., ICLR 2024 oral)
- 2,294 problemas (issues) reales de GitHub de 12 repositorios populares de Python.
- El agente recibe: la base de código en el commit previo a la corrección + la descripción del problema en lenguaje natural.
- El agente produce: un parche (patch).
- Evaluador: aplicar el parche, ejecutar la suite de pruebas del repositorio. El parche debe alternar las pruebas FAIL_TO_PASS (que antes fallaban, ahora pasan) sin romper las pruebas PASS_TO_PASS.
SWE-agent (Yang et al., 2024) alcanzó un 12.5% en su lanzamiento al enfatizar las interfaces agente-computadora (comandos del editor de archivos, sintaxis de búsqueda que el modelo entiende).
SWE-bench Verified
OpenAI, agosto de 2024. Subconjunto de 500 tareas curado por humanos. Elimina problemas ambiguos, pruebas no confiables y tareas donde la corrección no estaba clara. Benchmark principal para "¿su agente entrega parches reales?"
Contamination
- Más del 94% de los problemas de SWE-bench son anteriores a la mayoría de las fechas de corte (cutoffs) de los modelos.
- SWE-bench+ descubrió que el 32.67% de los parches exitosos filtraban soluciones en el texto del problema (el modelo vio la corrección en la descripción), y el 31.08% eran sospechosos debido a una cobertura de prueba débil.
- Verified es más limpio pero no está libre de contaminación.
Implicación práctica: un modelo con una puntuación del 50% en SWE-bench puede obtener un 35% en SWE-bench+. Siempre informe ambos si afirma tener rendimiento en SWE-bench.
GAIA (Mialon et al., Nov 2023)
- 466 preguntas; 300 retenidas para la tabla de clasificación privada en huggingface.co/gaia-benchmark.
- Filosofía de diseño: "conceptualmente simple para los humanos (92%) pero difícil para la IA (GPT-4 con plugins: 15%)."
- Evalúa razonamiento, multimodalidad, navegación web y uso de herramientas.
- Tres niveles de dificultad; el Nivel 3 requiere largas cadenas de herramientas a través de distintas modalidades.
GAIA es lo que se ejecuta para medir la "capacidad generalista". No lo confunda con benchmarks específicos de código.
AgentBench (Liu et al., ICLR 2024)
- 8 entornos que abarcan código (Bash, DB, KG), juegos (Alfworld, LTP), web (WebShop, Mind2Web) y generación abierta.
- Múltiples turnos, ~4k-13k turnos por división.
- Hallazgo principal: el razonamiento a largo plazo, la toma de decisiones y el seguimiento de instrucciones son los obstáculos para que las LLM de código abierto alcancen a las comerciales.
What these do not measure
- Costo operativo en el mundo real (tokens, tiempo de ejecución/reloj de pared).
- Comportamiento de seguridad en condiciones adversas.
- Rendimiento en su dominio (use sus propias evaluaciones, Lección 30).
- Fallos de cola (los benchmarks promedian; los operadores de producción se preocupan por el peor 1%).
Where benchmarking goes wrong
- Fijación en un solo número. Un 50% en SWE-bench dice menos que la distribución de costo + pasos en P50/P75/P95.
- Afirmaciones contaminadas. Reportar SWE-bench sin mencionar Verified o SWE-bench+ es engañoso.
- Benchmark como objetivo de desarrollo. Optimizar para el benchmark diverge de la utilidad en producción.
Build It
code/main.py implementa un arnés simple similar a SWE-bench:
- Tareas sintéticas de corrección de errores (3 tareas).
- Un "agente" programado que propone parches.
- Un ejecutor de pruebas que verifica FAIL_TO_PASS (error ahora corregido) y PASS_TO_PASS (nada roto).
- Un clasificador de dificultad al estilo GAIA basado en la profundidad de descomposición de la pregunta.
Ejecútelo:
python3 code/main.py
La salida muestra la tasa de resolución por tarea + por dificultad y concreta las reglas del evaluador.
Use It
- SWE-bench Verified para agentes de código. Siempre reporte las puntuaciones de Verified.
- GAIA para agentes generalistas. Use la división de la tabla de clasificación privada.
- AgentBench para comparación de múltiples entornos.
- Evaluaciones personalizadas (Lección 30) para la forma real de su producto.
Ship It
outputs/skill-benchmark-harness.md construye un arnés al estilo SWE-bench para cualquier par base-de-código/tarea con controles FAIL_TO_PASS / PASS_TO_PASS.
Exercises
- Adapte el arnés simple para ejecutarlo en un repositorio real (elija uno propio). Escriba 3 pruebas FAIL_TO_PASS para errores conocidos.
- Añada una métrica de conteo de pasos. En sus 3 tareas, ¿cuántos pasos de agente por resolución?
- Lea el artículo de SWE-bench+. Implemente una verificación de filtración de soluciones (comparación de patrones entre el texto del problema y el diff).
- Descargue una pregunta de GAIA de la división pública. Rastreé qué haría un agente de clase GPT-4. ¿Qué herramientas necesita?
- Lea el desglose por entorno de AgentBench. ¿Qué entorno refleja la superficie de su producto? ¿Cómo se ve el "SOTA" allí?
Key Terms
| Término | Lo que dice la gente | Lo que realmente significa |
|---|---|---|
| SWE-bench | "Benchmark de agentes de código" | 2,294 problemas de GitHub; el parche debe alternar las pruebas FAIL_TO_PASS |
| SWE-bench Verified | "SWE-bench limpio" | 500 tareas curadas por humanos, OpenAI |
| FAIL_TO_PASS | "Filtro de corrección" | Pruebas que antes fallaban y deben pasar después del parche |
| PASS_TO_PASS | "Filtro de no regresión" | Pruebas que pasaban y deben seguir pasando |
| GAIA | "Benchmark generalista" | 466 preguntas fáciles para humanos / difíciles para IA con múltiples herramientas |
| AgentBench | "Benchmark multi-entorno" | 8 entornos; múltiples turnos de largo horizonte |
| Contamination | "Filtración en el conjunto de entrenamiento" | Tareas de benchmark presentes en el entrenamiento del modelo |
| SWE-bench+ | "Auditoría de contaminación" | 32.67% de filtración de soluciones encontrada en parches exitosos de SWE-bench |
Further Reading
- Jimenez et al., SWE-bench (arXiv:2310.06770) — el benchmark original
- OpenAI, SWE-bench Verified — el subconjunto curado
- Mialon et al., GAIA (arXiv:2311.12983) — benchmark generalista
- Liu et al., AgentBench (arXiv:2308.03688) — suite multi-entorno