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

  1. Adapte el arnés simple para ejecutarlo en un repositorio real (elija uno propio). Escriba 3 pruebas FAIL_TO_PASS para errores conocidos.
  2. Añada una métrica de conteo de pasos. En sus 3 tareas, ¿cuántos pasos de agente por resolución?
  3. 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).
  4. Descargue una pregunta de GAIA de la división pública. Rastreé qué haría un agente de clase GPT-4. ¿Qué herramientas necesita?
  5. 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

0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).