Ilustración editorial para Gemini 3.1 Pro frente a Gemini 3.7 Flash para mantener código: cómo medir si compensa pagar más
Imagen generada con gpt-image-2.5-sunburst para InferamaFonte ↗
01

A decisão: pagar por uma tarefa resolvida, não por uma impressão

Escolher entre o Gemini 3.1 Pro e o Gemini 3.7 Flash para manter código não se resume a perguntar qual é “melhor”. Para uma equipe, a questão prática é qual modelo conclui uma tarefa específica com um patch correto, quanto custa chegar a esse resultado e quanto tempo é necessário. Um modelo que responde rapidamente, mas introduz uma regressão ou exige várias rodadas de correção, pode ser menos eficiente do que outro cuja chamada custa mais.

Uma comparação útil precisa medir o trabalho concluído. Isso significa avaliar se a alteração atende à solicitação, passa em testes pertinentes e evita modificar áreas que não têm relação com o pedido. Também é preciso contabilizar tentativas malsucedidas, ferramentas, novas tentativas, intervenção humana e execuções que não terminam em um patch aceitável. O custo por chamada, sozinho, não descreve o custo de manter um repositório.

Não há aqui resultados de um teste realizado nos mesmos repositórios e com um harness comum. Portanto, não seria rigoroso afirmar que o Flash é suficiente para tarefas rotineiras, que o Pro justifica seu custo em tarefas complexas ou que um dos dois vence. O que vem a seguir é um protocolo para obter essa resposta e um guia para interpretar os resultados sem apresentar hipóteses como fatos.

02

Quais modelos estão sendo comparados e o que verificar antes de começar

O primeiro passo é fixar a identidade exata de cada sistema. A página oficial consultada identifica o Gemini 3.1 Pro pelo ID `gemini-3.1-pro-preview` e informa que se trata de uma versão Preview. O guia de raciocínio consultado inclui `gemini-3.7-flash` e `gemini-3.1-pro-preview` entre os modelos para os quais apresenta informações de configuração. Esses nomes não devem ser substituídos por rótulos abreviados nos registros do teste: o identificador enviado à API faz parte da configuração experimental.

A disponibilidade e o estado podem mudar. Antes de iniciar as execuções e novamente ao encerrar o teste, é preciso verificar quais identificadores são aceitos, qual canal está sendo usado e se algum modelo deixou de estar disponível ou mudou de estado. Se um modelo mudar durante o ensaio, o artigo deve indicar quais execuções correspondem a cada versão ou separar os períodos; não deve tratá-las silenciosamente como uma única amostra homogênea.

Também devem ser registrados o provedor e o canal de acesso, a data, os parâmetros de geração, o limite de contexto, as regras de parada e qualquer configuração de raciocínio. A documentação oficial descreve opções e valores padrão, mas isso não prova que dois valores com o mesmo nome representem o mesmo esforço computacional, orçamento interno ou comportamento. Uma comparação com níveis “equivalentes” só seria defensável se definisse operacionalmente o que significa equivalência e informasse os parâmetros realmente usados.

As tarifas também não devem ser copiadas de uma tabela antiga nem deduzidas pelo nome do modelo. É preciso verificar os componentes de cobrança válidos na data da execução e explicar o que está incluído: entrada, saída, chamadas de ferramentas ou outras cobranças pertinentes. Se o acesso incluir uma camada intermediária ou uma tarifa diferente da API direta, esse canal deve ser medido e descrito, pois os resultados não se aplicam automaticamente a outro canal.

Registro mínimo antes do teste

Preencha e publique estes dados antes de interpretar as diferenças entre os modelos.

ElementoO que registrarPor que importa
IdentidadeID exato enviado, provedor e canalEvita atribuir os resultados a um rótulo ambíguo ou a outra versão.
EstadoDisponibilidade e estado no início e no encerramentoPermite detectar mudanças de versão ou interrupções.
ConfiguraçãoRaciocínio, geração, contexto e limitesTorna a execução reproduzível sem presumir equivalência entre modelos.
CobrançaTarifas vigentes e componentes incluídosPermite calcular o custo por tentativa e por tarefa aceita.
AmbienteRepositórios, commits, testes, ferramentas e permissõesDelimita o trabalho que cada modelo podia realizar.
03

Desenho do teste: repositórios, problemas e critérios de aceitação

O conjunto de teste deve ser congelado antes de executar os modelos. Cada tarefa precisa de um repositório e de um commit-base identificáveis, uma descrição do problema, um ambiente que possa ser reconstruído e um critério de aceitação definido previamente. Alterar tarefas ou regras depois de saber qual modelo produziu cada patch aumenta o risco de ajustar a avaliação aos resultados.

É recomendável selecionar problemas de diferentes repositórios e agrupá-los por tipo e dificuldade: diagnóstico de uma falha, correção delimitada, alteração que afeta vários arquivos e tarefa em que os testes existentes não cobrem completamente o comportamento esperado. A distribuição deve ser publicada. Uma coleção dominada por pequenas alterações pode favorecer determinado perfil de trabalho; uma coleção composta principalmente por problemas amplos pode favorecer outro. A diversidade reduz esse risco, mas não o elimina.

Os problemas devem ser genuínos e relevantes para manutenção, mas sua seleção exige cautela. O artigo sobre o SWE-bench descreve um antecedente baseado em problemas derivados de issues reais do GitHub. A documentação sobre conjuntos de dados e harness pode orientar a construção de uma avaliação, mas usar tarefas de um benchmark não garante que um teste específico meça bem o trabalho de uma equipe. Além disso, a OpenAI publicou um alerta sobre limitações do SWE-bench Verified; esse alerta deve ser atribuído à posição da OpenAI, e não apresentado como uma auditoria independente dos modelos comparados aqui.

Para reduzir a contaminação, é preciso verificar se a solução ou um patch equivalente já está no contexto fornecido, nos arquivos da tarefa ou em materiais disponíveis para o sistema. Também é importante descrever que informações cada modelo recebe: issue, histórico, instruções, documentação e testes. Não basta dizer que ambos receberam “o mesmo prompt” se um deles teve acesso a dados adicionais ou a ferramentas diferentes.

As tarefas devem ser executadas em cópias limpas do mesmo commit. O harness, as dependências e os comandos de teste precisam ser mantidos iguais. Um ambiente reproduzível ajuda a separar o efeito do modelo do efeito de uma máquina, de uma versão de dependência ou de uma alteração manual no repositório. Se uma tarefa falhar por causa da infraestrutura, e não do patch, isso deve ser identificado segundo uma regra definida antes da análise dos resultados.

Sequência de avaliação

Aplique o mesmo procedimento a cada combinação de tarefa e modelo.

  1. 01Congele o problema, o commit-base, os testes e o critério de aceitação.
  2. 02Crie um ambiente limpo e forneça ao modelo o mesmo material inicial e as mesmas permissões.
  3. 03Registre chamadas, tokens faturáveis disponíveis, ferramentas, tempos, erros e alterações nos arquivos.
  4. 04Aplique o patch sem intervenção manual e execute os testes predefinidos.
  5. 05Faça uma revisão cega da pertinência da alteração, das regressões e do trabalho desnecessário.
  6. 06Classifique o resultado segundo regras prévias e publique também as tentativas não aceitas.
04

Defina o que significa “tarefa aceita” antes de ver os patches

Passar em um teste não significa automaticamente que a solução é aceitável. Os testes existentes podem não cobrir o requisito central, e um patch pode fazê-los passar por meio de uma alteração ampla demais ou de uma mudança que apenas esconda a falha. A aceitação deve combinar testes automatizados pertinentes com uma revisão humana estruturada.

No mínimo, a rubrica deve perguntar se o patch resolve o problema, preserva comportamentos sem relação com ele, introduz regressões conhecidas, modifica apenas o necessário e pode ser mantido. Ela também deve especificar o que acontece quando o resultado parece correto, mas os testes são insuficientes. Nesses casos, podem ser acrescentadas verificações independentes ou a tarefa pode ser classificada como incerta, em vez de forçar uma aprovação ou reprovação sem evidências.

Os revisores devem receber patches anonimizados e aplicar a mesma rubrica sem saber de qual modelo vieram. É recomendável registrar divergências e estabelecer um procedimento para resolvê-las, como uma segunda revisão. A avaliação humana também não é infalível; por isso, devem ser publicados a definição de aceitação, as categorias de rejeição e o percentual de decisões contestadas.

05

Duas perspectivas diferentes: orçamento comum e prazo comum

Uma comparação com o mesmo orçamento e outra com o mesmo tempo respondem a perguntas diferentes. Elas não devem ser combinadas em um único número. Na primeira, cada modelo recebe um limite de gasto por tarefa, incluindo os componentes de cobrança definidos para o teste. Mede-se quantas tarefas são concluídas com um patch aceitável antes de atingir esse limite. Uma tentativa malsucedida consome parte do orçamento e deve continuar aparecendo no resultado.

Na segunda, ambos os modelos recebem o mesmo prazo máximo, medido do início da tarefa até a entrega. O relógio deve incluir esperas, chamadas de ferramentas, novas tentativas e qualquer outra latência que o usuário experimente. Se a revisão humana for medida separadamente, isso precisa ser informado; se for incluída, deve seguir o mesmo procedimento. Caso contrário, comparar apenas o tempo de resposta do modelo com o tempo total de um fluxo de trabalho mistura métricas diferentes.

Para que as condições sejam justas, devem ser definidos antes da execução o gasto máximo, o prazo, o número de novas tentativas, o limite de etapas, as permissões e o critério de parada. Se o modelo atingir o limite sem produzir um patch aceitável, o resultado é uma tarefa não resolvida naquela condição, não uma execução a ser excluída da análise. Essa abordagem permite responder a uma pergunta concreta de compra: o que se consegue com um valor máximo ou dentro de uma janela de tempo determinada.

Como interpretar os dois limites

A mesma execução pode ter resultados diferentes conforme a restrição prioritária.

CondiçãoMétrica principalPergunta respondida
Orçamento comumTarefas aceitas por faixa de gasto e custo por aceitaçãoQue proporção de trabalho útil se obtém com um orçamento fixo?
Tempo comumTarefas aceitas antes do prazo e latência totalQual modelo entrega mais trabalho aceitável dentro de uma janela fixa?
Sem limite comumNão permite atribuição direta de eficiênciaPode descrever o uso real, mas não isola o efeito da restrição.
06

O que medir por tarefa e por grupo

A métrica central deve ser a taxa de aceitação: a proporção de execuções que produzem um patch aceito segundo a rubrica. Para que seja interpretável, deve ser apresentada junto com o número total de tarefas e tentativas, não apenas como percentual. Uma taxa alta em poucas execuções tem um nível de incerteza diferente da mesma taxa em um conjunto amplo.

É preciso informar regressões, testes pertinentes aprovados, alterações desnecessárias, novas tentativas, erros de serviço, intervenção humana e tarefas que terminam sem patch. O gasto pode ser expresso por tentativa e por patch aceito, sempre acompanhado da fórmula e dos componentes de cobrança. Se um modelo não resolver uma tarefa, seu custo não desaparece do denominador: excluir as falhas produziria uma visão artificialmente favorável do custo por sucesso.

A latência deve ser dividida, no mínimo, em tempo do modelo, espera ou fila quando for possível medi-la, operações com ferramentas e tempo total até a entrega. Para as equipes, o tempo de revisão e de correção manual também pode ser relevante. Dois modelos com tempos de geração semelhantes podem impor cargas diferentes se um deles exigir mais verificações ou reparos.

Os resultados devem ser detalhados por tipo e dificuldade da tarefa, além de apresentar um resumo geral. O número agregado pode ocultar que um modelo resolve melhor pequenas alterações enquanto o outro evita falhas em mudanças que envolvem vários arquivos. Não se deve chamar de “melhor” o resultado que lidera uma média se o perfil de tarefas do leitor for diferente.

07

Repetições, falhas do serviço e incerteza

A resposta de um modelo pode variar entre execuções, mesmo quando a tarefa e o ambiente são mantidos. Por isso, uma única execução por problema não basta para descrever a estabilidade. O número de repetições deve ser definido antes do início, justificado pelo escopo do ensaio e mantido igual para cada modelo e tarefa. Quando as condições do serviço impedirem a conclusão de uma execução, é preciso distinguir um erro de infraestrutura de um resultado malsucedido do modelo, sem apagar o dado.

É necessário mostrar a variação e a incerteza, não apenas uma média. Podem ser publicados contagens, intervalos apropriados e resultados por tarefa; a escolha do método estatístico depende do desenho e deve ser descrita. Se o conjunto for pequeno, a conclusão deve ser limitada: uma diferença observada nesses casos não demonstra que ela se manterá em outras linguagens, repositórios, equipes ou níveis de dificuldade.

A sensibilidade ao harness também importa. Alterar o prompt, o limite de ferramentas, o orçamento de contexto ou as regras de parada pode mudar o resultado. Um teste controlado identifica o efeito de uma configuração específica; não mede uma capacidade universal, independente da forma de uso. Se forem realizados ensaios adicionais com outras configurações, eles devem ser apresentados como tal e não misturados ao resultado principal.

08

Matriz de decisão para equipes de engenharia

Sem resultados do teste, a matriz não pode atribuir uma vantagem empírica ao Gemini 3.1 Pro ou ao Gemini 3.7 Flash. Ainda assim, ela pode ajudar a transformar os dados coletados em uma decisão adequada ao trabalho da equipe. A comparação deve considerar o patamar mínimo de qualidade: se um modelo não atingir a taxa de aceitação ou o nível de segurança exigido, um custo baixo não compensa por si só.

Para tarefas rotineiras e bem delimitadas, a equipe pode primeiro avaliar se o Flash atinge esse patamar dentro do orçamento e do prazo disponíveis. Isso é uma hipótese a verificar, não uma característica demonstrada aqui. Para tarefas difíceis, com alterações extensas ou consequências relevantes, é preciso verificar se o Pro aumenta a taxa de aceitação ou reduz a intervenção humana o suficiente para justificar o gasto adicional, sem presumir que o nome Pro garante esse resultado.

Em ambos os casos, o fluxo deve manter a revisão humana quando o risco da alteração exigir. Se os dois modelos produzirem patches que frequentemente precisam de correções, ou se os testes disponíveis não permitirem verificar o comportamento, a conclusão razoável pode ser que nenhum deles atende ao critério de automação para essa classe de trabalho. A decisão também pode ser híbrida, desde que o encaminhamento entre modelos seja medido e não se presuma que escolher um modelo conforme a dificuldade melhora o resultado.

Regras práticas depois de obter os dados

Estas regras dependem de resultados verificados nas tarefas da própria equipe.

Resultado do testeDecisão a considerarCuidado
O Flash atinge o patamar de aceitação e respeita o orçamento em tarefas delimitadasTestar o Flash nesse grupo de tarefas, com supervisão proporcional ao riscoNão extrapolar para alterações complexas ou repositórios não avaliados.
O Pro melhora a aceitação ou reduz correções em tarefas complexasCalcular se a melhoria justifica o custo e a latência adicionaisComparar o custo total por patch aceito, não apenas o preço por chamada.
Ambos falham com frequência ou causam regressõesManter a execução manual ou reformular o fluxo e os testesNão reduzir o critério de aceitação apenas para declarar um vencedor.
As diferenças são pequenas ou muito variáveisAmpliar a amostra ou decidir com base nas restrições operacionaisNão transformar uma diferença incerta em conclusão geral.
09

Materiais para reproduzir o teste e limites das conclusões

Uma comparação que pretenda orientar uma decisão de engenharia deve publicar o protocolo, as tarefas incluídas, os commits-base, a configuração de cada modelo, os limites e a rubrica de aceitação. Quando as permissões e licenças permitirem, também é recomendável disponibilizar os patches, registros anonimizados, resultados dos testes e motivos de rejeição. Exclusões e tentativas malsucedidas fazem parte das evidências; não são detalhes secundários.

O harness pode se apoiar em práticas de avaliação reproduzível, como executar patches em ambientes isolados e controlar a aplicação das alterações. A documentação do harness do SWE-bench descreve uma abordagem com ambientes Docker para executar tarefas e avaliá-las. Isso é uma referência metodológica; não significa que usar esse harness, por si só, garanta que o teste represente o fluxo de trabalho de uma empresa.

Os resultados só sustentarão conclusões sobre os modelos, as versões, as tarefas, a configuração e a data documentados. Não permitem inferir automaticamente o comportamento de outros produtos do Google, de outras versões ou de outros provedores. Também não substituem a avaliação em repositórios privados, com as regras de segurança e revisão de cada equipe. A pergunta “quando vale a pena pagar mais por tarefa resolvida?” só pode ser respondida depois de definir o que conta como tarefa resolvida e medir o custo completo no contexto relevante.

Por enquanto, a resposta editorial rigorosa não é declarar um vencedor, mas estabelecer uma condição para decidir: comparar os dois modelos com tarefas congeladas, aceitação cega, limites comuns de gasto e tempo e divulgação da incerteza. Se esses dados mostrarem diferenças consistentes e úteis para o perfil da equipe, será possível recomendar uma opção para esse uso. Caso contrário, o mais honesto será informar que as evidências disponíveis não permitem distingui-los.

Lista de verificação para publicação

Antes de fazer uma recomendação, confirme se o relatório registra estes elementos.

  1. 01IDs, estados, canais e datas de execução dos dois modelos.
  2. 02Parâmetros de raciocínio e geração, sem declarar equivalentes níveis com o mesmo nome.
  3. 03Tarefas, repositórios, commits, critérios de seleção e verificações contra contaminação.
  4. 04Ferramentas, permissões, limites, novas tentativas e regras de parada.
  5. 05Definição de aceitação, revisão cega, divergências e regressões.
  6. 06Resultados por tarefa e categoria, incluindo falhas, dados ausentes, gasto, latência e incerteza.
  7. 07Tarifas verificadas para a data e método de cálculo do custo por patch aceito.
  8. 08Exclusões, materiais reproduzíveis e limites explícitos de generalização.

Questões em aberto

  • Não foram fornecidos resultados experimentais, número de execuções, tarefas avaliadas, taxas de aceitação, regressões, latências ou custos para esses dois modelos.
  • Os identificadores aceitos, a disponibilidade, o estado Preview e as configurações podem mudar; devem ser verificados nas datas de execução e de encerramento editorial.
  • Não foram incluídas tarifas vigentes nem dados de cobrança, portanto não é possível calcular o custo comparativo.
  • Não foram especificados repositórios, tarefas, rubrica, ferramentas, limites, repetições ou método estatístico; as recomendações empíricas dependem da realização desse teste.
  • O alerta sobre o SWE-bench Verified vem de uma publicação da OpenAI e deve ser atribuído como posição da empresa, não como avaliação independente.
10

Continue a explorar

10

Fontes consultadas

03

Correções e transparência

Se encontrar informação incorreta ou desatualizada, envie-nos a página e a fonte que devemos rever.

Propor uma correção