O SWE-bench é um benchmark para avaliar modelos e agentes de IA em engenharia de software de verdade. Em vez de problemas inventados, ele usa issues reais de repositórios populares de código aberto escritos em Python.

Como funciona

Cada tarefa tem uma issue, que é a descrição de um bug ou melhoria, e o código do projeto no estado anterior à correção. O agente precisa ler o repositório, entender o problema e gerar um patch.

Depois, os testes do projeto rodam com o patch aplicado. Se os testes que antes falhavam passam e os que funcionavam continuam funcionando, a tarefa conta como resolvida.

O resultado costuma ser a porcentagem de tarefas resolvidas. Existem variações, como subconjuntos revisados por humanos para garantir que as tarefas são justas.

Como o resultado depende tanto do modelo quanto do agente em volta dele, a nota mistura os dois. Ferramentas de busca em código, execução de testes e número de tentativas mudam o placar.

Exemplo prático

Uma issue diz que uma função de datas retorna o mês errado em anos bissextos. O agente abre o repositório, localiza a função, escreve a correção e roda os testes.

Terminal
pytest tests/test_datas.py

Se tudo passar e nada mais quebrar, aquela tarefa soma um ponto. Repetido em centenas de tarefas, isso gera a nota final.

Para que serve

O SWE-bench serve para comparar agentes de código em um cenário mais próximo do trabalho diário. Quando uma empresa anuncia um novo modelo, é comum citar a nota nesse teste.

Para quem escolhe ferramentas, ele indica quais modelos lidam melhor com projetos existentes. Mas o placar não garante o mesmo resultado no seu código, então teste com tarefas suas.

Ao comparar notas, confira qual variante foi usada, qual agente rodou e a data, porque os rankings mudam rápido.

Diferença entre SWE-bench e HumanEval

O HumanEval pede uma função pequena e isolada. O SWE-bench pede uma correção dentro de um projeto real, com vários arquivos e testes existentes. O segundo é mais exigente e mais parecido com o dia a dia de um dev.