Phase 14 - Lesson 19

Benchmarks: SWE-bench, GAIA, AgentBench

Três benchmarks ancoram a avaliação de agentes em 2026. O SWE-bench testa a correção de código. O GAIA testa o uso geral de ferramentas. O AgentBench testa o raciocínio em múltiplos ambientes. Conheça sua composição, sua história de contaminação e o que eles não medem.

Type: Learn Languages: Python (stdlib) Prerequisites: Phase 14 · 06 (Tool Use) Time: ~60 minutos

Learning Objectives

  • Nomear o harness de teste do SWE-bench (FAIL_TO_PASS) e explicar por que ele é limitado por testes unitários.
  • Explicar por que o SWE-bench Verified (OpenAI, 500 tarefas) existe e o que ele remove.
  • Descrever o design do GAIA: simples para humanos, difícil para IA; três níveis de dificuldade.
  • Nomear os oito ambientes do AgentBench e seu principal obstáculo para LLMs de código aberto.
  • Resumir a descoberta de contaminação do SWE-bench+ e suas implicações.

The Problem

Os rankings (leaderboards) dizem qual modelo vence em um benchmark. Eles não dizem a você:

  • Se o benchmark está contaminado (soluções nos dados de treinamento, vazamento de teste).
  • Se o benchmark mede o que importa para você (código vs. navegação vs. generalista).
  • Se o avaliador é robusto (comparação de AST, verificações de estado, revisão humana).

Conheça os três benchmarks de ancoragem e seus modos de falha antes de citar um número.

The Concept

SWE-bench (Jimenez et al., ICLR 2024 oral)

  • 2.294 problemas (issues) reais do GitHub de 12 repositórios Python populares.
  • O agente recebe: a base de código no commit pré-correção + a descrição do problema em linguagem natural.
  • O agente produz: um patch.
  • Avaliador: aplica o patch, executa a suíte de testes do repositório. O patch deve alternar os testes FAIL_TO_PASS (que falhavam anteriormente, agora passando) sem quebrar os testes PASS_TO_PASS.

O SWE-agent (Yang et al., 2024) atingiu 12,5% no lançamento ao enfatizar interfaces agente-computador (comandos do editor de arquivos, sintaxe de busca que o modelo compreende).

SWE-bench Verified

OpenAI, agosto de 2024. Subconjunto de 500 tarefas curado por humanos. Remove problemas ambíguos, testes não confiáveis e tarefas onde a correção não era clara. Benchmark principal para "seu agente entrega patches reais?"

Contamination

  • Mais de 94% dos problemas do SWE-bench precedem a maioria das datas de corte (cutoffs) dos modelos.
  • O SWE-bench+ descobriu que 32,67% dos patches bem-sucedidos vazaram soluções no texto do problema (o modelo viu a correção na descrição) e 31,08% eram suspeitos devido à cobertura de teste fraca.
  • O Verified é mais limpo, mas não é livre de contaminação.

Implicação prática: um modelo que pontua 50% no SWE-bench pode pontuar 35% no SWE-bench+. Sempre relate ambos se alegar desempenho no SWE-bench.

GAIA (Mialon et al., Nov 2023)

  • 466 perguntas; 300 retidas para o ranking privado em huggingface.co/gaia-benchmark.
  • Filosofia de design: "conceitualmente simples para humanos (92%), mas difícil para IA (GPT-4 com plugins: 15%)."
  • Testa raciocínio, multimodalidade, web e uso de ferramentas.
  • Três níveis de dificuldade; o Nível 3 exige longas cadeias de ferramentas em várias modalidades.

O GAIA é o que você executa para medir "capacidade generalista". Não o confunda com benchmarks específicos de código.

AgentBench (Liu et al., ICLR 2024)

  • 8 ambientes abrangendo código (Bash, DB, KG), jogos (Alfworld, LTP), web (WebShop, Mind2Web) e geração aberta.
  • Múltiplos turnos, ~4k-13k turnos por divisão.
  • Descoberta principal: raciocínio de longo prazo, tomada de decisão e acompanhamento de instruções são os obstáculos para que LLMs de código aberto alcancem os comerciais.

What these do not measure

  • Custo operacional no mundo real (tokens, tempo de execução/relógio de parede).
  • Comportamento de segurança em condições adversárias.
  • Desempenho no seu domínio (use suas próprias avaliações, Lição 30).
  • Falhas de cauda (os benchmarks medem a média; operadores de produção se importam com o pior 1%).

Where benchmarking goes wrong

  • Fixação em número único. Um resultado de 50% no SWE-bench diz menos do que a distribuição de custo + etapas em P50/P75/P95.
  • Alegações contaminadas. Relatar o SWE-bench sem mencionar o Verified ou o SWE-bench+ é enganoso.
  • Benchmark como meta de desenvolvimento. Otimizar para o benchmark diverge da utilidade em produção.

Build It

code/main.py implementa um harness simples semelhante ao SWE-bench:

  • Tarefas sintéticas de correção de bugs (3 tarefas).
  • Um "agente" roteirizado que propõe patches.
  • Um executor de testes que verifica FAIL_TO_PASS (bug agora corrigido) e PASS_TO_PASS (nada quebrado).
  • Um classificador de dificuldade no estilo GAIA baseado na profundidade de decomposição da pergunta.

Execute-o:

python3 code/main.py

A saída mostra a taxa de resolução por tarefa + por dificuldade e torna as regras do avaliador concretas.

Use It

  • SWE-bench Verified para agentes de código. Sempre relate as pontuações do Verified.
  • GAIA para agentes generalistas. Use a divisão do ranking privado.
  • AgentBench para comparação de múltiplos ambientes.
  • Avaliações personalizadas (Lição 30) para o formato real do seu produto.

Ship It

outputs/skill-benchmark-harness.md constrói um harness no estilo SWE-bench para qualquer par base-de-código/tarefa com validações FAIL_TO_PASS / PASS_TO_PASS.

Exercises

  1. Adapte o harness simples para rodar em um repositório real (escolha um dos seus). Escreva 3 testes FAIL_TO_PASS para bugs conhecidos.
  2. Adicione uma métrica de contagem de etapas. Nas suas 3 tarefas, quantas etapas de agente por resolução?
  3. Leia o artigo do SWE-bench+. Implemente uma verificação de vazamento de solução (correspondência de padrão entre o texto do problema e o diff).
  4. Baixe uma pergunta do GAIA da divisão pública. Rastreie o que um agente da classe GPT-4 faria. De quais ferramentas ele precisa?
  5. Leia o detalhamento por ambiente do AgentBench. Qual ambiente espelha a superfície do seu produto? Como é o "SOTA" lá?

Key Terms

Termo O que as pessoas dizem O que realmente significa
SWE-bench "Benchmark de agentes de código" 2.294 problemas do GitHub; o patch deve alternar testes FAIL_TO_PASS
SWE-bench Verified "SWE-bench limpo" 500 tarefas curadas por humanos, OpenAI
FAIL_TO_PASS "Filtro de correção" Testes que falhavam anteriormente e devem passar após o patch
PASS_TO_PASS "Filtro de não regressão" Testes que estavam passando e devem continuar passando
GAIA "Benchmark generalista" 466 perguntas fáceis para humanos / difíceis para IA com múltiplas ferramentas
AgentBench "Benchmark multi-ambiente" 8 ambientes; múltiplos turnos de longo horizonte
Contamination "Vazamento no conjunto de treinamento" Tarefas do benchmark presentes no treinamento do modelo
SWE-bench+ "Auditoria de contaminação" 32,67% de vazamento de solução encontrado em patches bem-sucedidos do SWE-bench

Further Reading

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