Uma IA consegue manter código legado sem quebrar nada?
O LEB — LLM Engineering Benchmark — entrega a um agente de IA um sistema legado em produção, com falhas plantadas e consumidores que dependem de como ele se comporta hoje. Ele mede o trabalho que domina a engenharia de verdade: achar as falhas, corrigi-las, manter todos os contratos intactos e explicar as decisões como um engenheiro sênior explicaria.
Por que mais um benchmark
A maioria dos benchmarks mede código escrito do zero, ou uma issue isolada resolvida. Nenhum dos dois é o que a engenharia é na maior parte do tempo: evoluir um sistema do qual outras pessoas já dependem. O LEB pontua segurança, arquitetura, bugs, performance, código limpo, compatibilidade e a qualidade da explicação — e tira pontos do agente que reescreve tudo, troca tecnologia sem necessidade ou quebra um contrato público.
Reescrever do zero não é engenharia. É fuga.
Como funciona um run
-
01
Um sistema legado, com falhas plantadas
O agente recebe o código, um manifesto da sua superfície pública — o contrato — e uma tarefa neutra: reportar os problemas, corrigir o que deve ser corrigido, manter a compatibilidade e justificar cada decisão. Ele nunca sabe quais falhas existem, quantas são nem onde estão.
-
02
O agente trabalha sozinho
No modo A ele tem ferramentas e um orçamento de turnos; no modo S, um prompt e uma resposta. Ele devolve o código alterado, um relatório técnico e um índice dos achados, cada um com uma confiança de 0 a 100.
-
03
Máquinas conferem o código
Testes de caracterização rodam no legado e na entrega: comportamento público que mudou é regressão. Depois, probes atacam cada falha corrigível — o payload de injeção, o conjunto vazio, o contador de queries — e dizem se ela ainda está lá.
-
04
Um juiz confere o relatório
Cada achado é comparado com a Matriz Oficial de Falhas, um gabarito oculto que também tem iscas: falhas plausíveis que não existem e custam pontos quando reportadas. Um segundo juiz avalia a explicação às cegas. Um montador determinístico transforma tudo em 0–1000.
LEB-100 e LEB-300
O LEB é uma escada: cada nível é um sistema legado maior que o de baixo, e uma instância é um sistema concreto num nível. Um agente é comparado só com outros na mesma instância, nunca com um nível em geral. Hoje existem duas instâncias.
| Comparado em | LEB-100-A | LEB-300-A |
|---|---|---|
| Tamanho | Cerca de 300 linhas, em um ou dois arquivos. | Cerca de 3.000 linhas, em vários arquivos. |
| O que testa | O básico: achar uma falha, corrigi-la e manter o contrato intacto. | Navegação: as falhas atravessam arquivos, então o agente precisa percorrer o código em vez de lê-lo de cima a baixo. |
| Dificuldade | Falhas fáceis, moderadas e difíceis, nenhuma de nível especialista. | Falhas de nível especialista podem aparecer a partir deste nível. |
| A execução | Modo A, 30 turnos. | Modo A, 60 turnos, em duas etapas. |
| O gabarito | Público desde 13 de julho de 2026. Um modelo pode tê-lo visto no treino, e o placar marca os que podem. | Privado. A instância está ativa, então só o SHA-256 do gabarito é publicado. |
| O que é publicado | Cada entrega, relatório mecânico, veredito e scorecard, e os resultados em planilhas. | Só o agregado: o total, o selo, a pontuação em cada categoria, as execuções, o custo e o tempo. |
| Em que pé está | A instância de referência: todos os agentes avaliados até agora rodaram nela. | Um piloto exploratório: a dificuldade dela não foi homologada. |
Os dois valem 1000 pontos, nas mesmas sete categorias e com os mesmos selos. A comparação que faz sentido é dentro de uma instância, então uma nota do LEB-300 nunca é posta ao lado de uma do LEB-100.
O LEB-100-A é onde o método foi provado. O gabarito dele é público, então um modelo que treinou nele pode conhecer as falhas de antemão, e o placar marca esses. O LEB-300-A é o nível acima e mantém o gabarito privado, para que a mesma instância continue medindo agentes novos.
As instâncias
Cada uma tem uma página própria, com os resultados e o que ler antes de citá-los.
-
LEB-100-A
Uma aplicação PHP legada de cerca de 300 linhas: o painel de chamados de suporte de um provedor de internet. Todo run é publicado, com a entrega, o veredito e o scorecard.
Abrir o LEB-100-A -
LEB-300-A
O nível acima, uma aplicação de cerca de 3.000 linhas. A instância está ativa, então só o agregado de cada agente é publicado.
Abrir o LEB-300-A
1000 pontos, e como eles se perdem
Toda instância vale exatamente 1000: os pontos brutos de cada categoria são normalizados pelo seu peso, então as notas se comparam entre instâncias do mesmo nível.
Compatibilidade começa em 100 e só desce. Migrar de mysqli para PDO sem necessidade custa 20; mudar uma assinatura pública custa 30, por função.
Penalidades globais saem do total: bug novo −15, cada teste de caracterização quebrado −20, reescrita desnecessária −25, cada isca reportada −5.
- Segurança SEC 250
- Arquitetura ARCH 200
- Bugs BUG 150
- Performance PERF 150
- Código limpo CLN 100
- Compatibilidade COMP 100
- Explicação EXPL 50
Selos
- LEB Platinum 900–1000 · pronta para legado crítico
- LEB Gold 750–899 · engenharia sólida
- LEB Silver 600–749 · útil com supervisão
- LEB Bronze 400–599 · requer revisão integral
- Reprovada < 400 · risco ao sistema
Os runs acontecem longe do gabarito
Os agentes rodam numa VM Linux dedicada isolada do GitHub. Os nomes dele resolvem para loopback, as faixas de endereço dele (os prefixos que anuncia e os endereços de borda que publica) são rotas blackhole, e a VM não tem conectividade IPv6. Os bloqueios por endereço entraram em 30 de setembro de 2026. Os runs de 29 de setembro tiveram só o bloqueio por nome: nenhum agente alcançava o GitHub pelo nome, mas uma conexão deliberada direto a um endereço dele não era barrada, e os logs de sessão mostram que nenhuma foi tentada. Todos os runs publicados de 30 de setembro tiveram todas as camadas. O que um modelo viu no treino é outra questão, respondida pelo corte de treino que cada run registra.
Onde o método está
A especificação, a pontuação e as ferramentas são públicas no repositório ai-benchmark. Os runs do primeiro nível também estão lá, com os scorecards, e em duas planilhas na página do LEB-100.