Benchmark técnico · Modelos de código
Avaliando os principais modelos de código para geração de código efêmero
Dez modelos de fronteira, quarenta tarefas de propósito único, executadas e avaliadas quanto a se o código realmente roda, realmente funciona e quanto custa. A conclusão: para programas pequenos, a correção está praticamente resolvida — e um modelo barato mais uma passada de auto-revisão iguala os melhores modelos por uma fração do preço.
A categoria
O que é "código efêmero"
Código efêmero é código de propósito único e vida curta, gerado sob demanda para fazer um só trabalho — processar um arquivo, chamar uma API, transformar um payload, controlar um navegador — e então descartado ou regenerado, em vez de mantido como uma base de código.
Esses programas são pequenos: quase sempre com menos de mil linhas, geralmente menos de cem. Têm um contrato estreito — algumas entradas, um efeito colateral ou um resultado — e nenhuma necessidade da arquitetura, abstração ou longevidade de código de aplicação. São o encanamento que conecta um sistema a outro para uma única execução.
Esse tamanho é exatamente a faixa em que os modelos de hoje são mais fortes. Uma tarefa que cabe em um arquivo, não exige raciocínio entre módulos e pode ser verificada rodando-a está perto do ponto ideal da geração de código atual. A pergunta interessante já não é mais se um modelo de topo consegue escrevê-la — vários conseguem, quase sempre — mas qual modelo a produz de forma confiável, barata e correta o suficiente para se confiar sem supervisão.
O argumento
Guarde o prompt, não o código
Se um modelo consegue regenerar uma integração correta de 80 linhas a partir de um parágrafo de intenção, o código deixa de ser o ativo. A especificação passa a ser. Ela é menor, é legível, não apodrece e não está presa a uma linguagem ou versão de biblioteca.
Mantenha especificações compactas em linguagem natural — instrução mais spec, um “micro-prompt” — e gere o código na hora, em vez de armazenar e manter o próprio código.
Um micro-prompt é uma fração do tamanho do código que produz, sobrevive intacto a mudanças de modelo e de linguagem, e não carrega desvio de dependências, ramos mortos nem comentários obsoletos. O artefato gerado vive por uma única execução.
Isso só funciona se a geração for confiável. Um micro-prompt que produz código funcional 70% das vezes é um passivo; a 99%+, com uma passada de reparo automático e barata para cobrir o resto, ele vira infraestrutura. Então a pergunta prática que este benchmark responde é: quão confiável é cada modelo exatamente nessa classe de trabalho, e a que custo?
Método
Como as tarefas foram medidas
Cada modelo recebeu a instrução e a spec de uma tarefa — nada sobre implementação — e a tarefa de produzir um programa completo mais o esquema de entrada. O programa foi então executado em um sandbox local isolado e avaliado em quatro eixos.
- Roda — ele executa sem quebrar e emite um resultado bem-formado?
- Correto — a saída corresponde ao resultado esperado e — nas tarefas de integração — um serviço simulado confirmou que a requisição foi autenticada corretamente? Uma resposta chumbada no código não passa.
- Qualidade — verificações estáticas de contrato mais um revisor LLM pontuando tratamento de erros, limpeza e robustez.
- Custo — gasto real de API, reportado por modelo e por resposta correta.
As 40 tarefas abrangem três famílias: processamento de arquivos e dados (parsear, transformar, agregar), integração com APIs externas em cinco esquemas reais de autenticação — bearer token, HTTP basic, cabeçalho de API-key, OAuth2 client-credentials e mutual TLS com certificados de cliente em PEM e em PKCS#12 — e correção de bugs de defeitos plantados. Cada concorrente rodou três amostras; um estudo de refinamento rodou uma.
Resultados · tiro único
O ranking
A correção é um problema resolvido no topo: quatro modelos são perfeitos nas 40 tarefas. O que os separa é o custo por resposta correta — uma diferença de 30× — e quanta robustez o revisor enxerga no código.
| # | Modelo | Correto | Recusou | Juiz | Custo | Custo / correto |
|---|---|---|---|---|---|---|
| 1 | gemini-3.1-pro | 100.0% | 0 | 0.81 | $5.55 | $0.046 |
| 2 | claude-haiku-4.5 | 100.0% | 0 | 0.79 | $1.94 | $0.016 |
| 3 | minimax-m3melhor valor | 100.0% | 0 | 0.77 | $0.82 | $0.007 |
| 4 | claude-sonnet-4.6 | 100.0% | 0 | 0.70 | $4.53 | $0.038 |
| 5 | gpt-5.5 | 99.2% | 0 | 0.80 | $5.35 | $0.045 |
| 6 | glm-5.1 | 96.7% | 0 | 0.67 | $1.63 | $0.014 |
| 7 | deepseek-v4-pro | 95.8% | 0 | 0.73 | $1.82 | $0.016 |
| 8 | claude-fable-5 | 95.0% | 2 ⚑ | 0.84 | $6.61 | $0.174 |
| 9 | kimi-k2.6 | 93.3% | 0 | 0.80 | $2.12 | $0.019 |
| 10 | qwen3-coder-nextmais barato | 93.3% | 0 | 0.60 | $0.60 | $0.005 |
40 tarefas × 3 amostras. Correto exige autenticação verificada, não apenas saída correspondente. Juiz é a nota de robustez de um revisor independente (0–1). ⚑ Recusou = o filtro de conteúdo do modelo se negou a gerar a tarefa. minimax-m3 é o vencedor em valor: correção perfeita por 5–7× menos que os outros modelos impecáveis. qwen3-coder-next é o mais barato de todos.
Resultados · custo até acertar
Uma passada de reparo fecha a lacuna
Os modelos que erram no tiro único raramente erram por muito. Devolver uma tentativa falha para uma única revisão recupera quase tudo — e funciona de duas formas. Com feedback de execução (a mensagem de erro real), todo modelo chega a 100% na segunda passada. Com apenas auto-revisão — sem rodar teste, o modelo só relê o próprio código contra a spec — a maioria também chega lá. Esse segundo modo é o que você pode rodar em qualquer lugar, sem um oráculo.
| Modelo | exec · p@1 | p@2 | p@3 | revisão · p@1 | p@2 | p@3 | Custo / correto |
|---|---|---|---|---|---|---|---|
| gemini-3.1-pro | 100 | 100 | 100 | 100 | 100 | 100 | $0.048 |
| claude-haiku-4.5 | 100 | 100 | 100 | 100 | 100 | 100 | $0.016 |
| minimax-m3 | 98 | 100 | 100 | 100 | 100 | 100 | $0.007 |
| claude-sonnet-4.6 | 100 | 100 | 100 | 98 | 100 | 100 | $0.038 |
| gpt-5.5 | 100 | 100 | 100 | 98 | 100 | 100 | $0.031 |
| glm-5.1 | 92 | 100 | 100 | 98 | 100 | 100 | $0.015 |
| deepseek-v4-pro | 100 | 100 | 100 | 100 | 100 | 100 | $0.017 |
| kimi-k2.6 | 100 | 100 | 100 | 100 | 100 | 100 | $0.017 |
| qwen3-coder-next | 100 | 100 | 100 | 92 | 95 | 95 | $0.005 |
p@k = fração correta em até k passadas (% correto). exec e revisão são execuções separadas de amostra única, então seu pass@1 difere por ruído; a convergência até o pass@2 é o sinal. Só o qwen3-coder-next estaciona na auto-revisão — nem sempre consegue autodiagnosticar o último bug sem rodar o código. Todos os outros chegam a 100% com uma única revisão, com ou sem oráculo.
A fronteira de valor
Junte os dois resultados. Um modelo barato com uma passada de auto-revisão — minimax-m3 a ~US$0,007, qwen a ~US$0,005 por programa correto — chega à mesma correção dos modelos de fronteira que custam de 5 a 10× mais. Para trabalho gerado na hora e descartado, pagar preço de fronteira por chamada compra quase nada; o laço de modelo-barato-mais-reparo é o design eficiente.
Resultados · dificuldade
Onde os modelos de fato quebram
Notas agregadas escondem o formato da dificuldade. Tarefas de arquivo e dados são pontos praticamente de graça para todos. A separação está inteiramente no manejo de credenciais — certificados mutual-TLS e fluxos OAuth — exatamente onde integrações reais ficam difíceis.
| Modelo | Arquivo / dados | Correção de bug | API (todas) | Mutual TLS | OAuth2 |
|---|---|---|---|---|---|
| gemini-3.1-pro | 100 | 100 | 100 | 100 | 100 |
| claude-haiku-4.5 | 100 | 100 | 100 | 100 | 100 |
| minimax-m3 | 100 | 100 | 100 | 100 | 100 |
| claude-sonnet-4.6 | 100 | 100 | 100 | 100 | 100 |
| gpt-5.5 | 100 | 100 | 99 | 93 | 100 |
| glm-5.1 | 100 | 94 | 95 | 93 | 92 |
| deepseek-v4-pro | 100 | 100 | 93 | 73 | 100 |
| qwen3-coder-next | 100 | 97 | 89 | 73 | 75 |
| kimi-k2.6 | 88 | 100 | 93 | 80 | 100 |
| claude-fable-5 | 100 | 100 | 92 | 80 | 75 |
Correção em tiro único por família de tarefa (%). As duas falhas reais mais comuns: passar o conteúdo do certificado onde a biblioteca espera o caminho do arquivo, e importar um helper de PKCS#12 sem importar seu submódulo. Ambas são o tipo de erro que uma única passada com feedback de execução corrige na hora.
O que aprendemos
Conclusões
A correção está saturando
Em tarefas de menos de 1000 linhas, quatro de dez modelos foram impecáveis e o resto errou por dígitos únicos. A fronteira de dificuldade desse trabalho migrou de "consegue?" para "a que custo e confiabilidade?".
Refinamento supera capacidade bruta
Uma passada de reparo leva todo concorrente a 100% com feedback de execução, e quase todos só com auto-revisão. Modelo-barato-mais-laço domina modelo-caro-em-tiro-único tanto em custo quanto em confiabilidade.
Auth é o teste de verdade
Trabalho de arquivo e dados é trivial para todo modelo. Mutual-TLS e OAuth separam o campo — modelos mais baratos caem para 73–80% em certificados de cliente. Se você faz benchmark em tarefas de brinquedo, todo modelo parece igual.
Robustez ≠ correção
O revisor premiou código defensivo e bem protegido; os modelos concisos-mas-corretos pontuaram menos nesse eixo apesar de resultados funcionais perfeitos. Correção e qualidade de código são sinais genuinamente distintos.
O preço varia 30×
As mesmas 40 tarefas custaram US$0,60 no modelo mais barato e até US$6,61 no mais caro — com correção igual ou melhor para o barato. Custo por acerto, não capacidade bruta, é a métrica que deve guiar a escolha de modelo aqui.
Fique de olho no filtro de segurança
O filtro de conteúdo de um modelo recusou de imediato duas tarefas de credencial e pagamento. Para automação que legitimamente lida com segredos e dinheiro, um modelo que se recusa a fazer o trabalho é uma restrição rígida, não uma nota de rodapé.
Conclusão
Gere na hora, e barato
Para código efêmero — os programas pequenos e de propósito único que conectam sistemas por uma única execução — a economia se inverteu. O código já não vale a pena guardar; o prompt que o produz, sim.
O benchmark torna concreto o argumento prático. A confiabilidade nessa classe de trabalho é alta em todo modelo de topo e praticamente perfeita assim que você adiciona uma única passada de reparo automático. Essa passada funciona mesmo sem a capacidade de rodar o código, então cabe dentro de um pipeline de geração. E a diferença de custo entre a fronteira e o nível de valor é de uma ordem de grandeza, sem penalidade de correção.
Então a arquitetura eficiente não é uma biblioteca de utilitários mantidos, nem um modelo de fronteira chamado uma vez e cegamente confiado. É um micro-prompt compacto, um modelo barato e capaz, e um laço de auto-revisão — código invocado quando preciso, verificado e descartado. Você mantém a intenção. O modelo mantém todo o resto.
Para onde isso aponta
Estenda a ideia e a própria ferramenta muda de forma. Controle de versão e sistemas de build tratam o código como fonte da verdade — mas se o código é efêmero, a fonte da verdade sobe um nível, para os prompts e o estado atual do projeto. O precedente já existe: frameworks de migração de banco de dados não guardam o banco, guardam as instruções ordenadas que o constroem mais um marcador de onde você está na sequência. O banco é derivado; as migrações são o ativo.
É razoável esperar frameworks de código construídos sobre o mesmo princípio — que versionam um projeto como uma sequência de micro-prompts e um estado resolvido, e regeneram o código de fato sob demanda a partir deles. O código vira um artefato de build, como um binário compilado é hoje. A engenharia difícil e duradoura se desloca para como esses prompts são capturados, ordenados, reproduzidos e armazenados — é aí que o valor se assenta quando o código deixa de valer a pena guardar.