Podemos confiar em reviews de IA?
(medium.com)Compartilho o processo de medir quantitativamente e melhorar a qualidade, enquanto operava uma ferramenta interna de review com IA, para responder às perguntas: "Podemos confiar em reviews de IA?" e "Ela realmente está validando bem?"
Contexto
- Código gerado por IA tem 1,7x mais issues por PR e 75% mais erros de lógica do que código humano (CodeRabbit)
- Após incidentes com código de IA, a Amazon tornou obrigatória a aprovação de PRs por seniors, e a Shopify proibiu auto-merge de PRs com IA
- Nesse cenário, o review com IA foi introduzido como um meio de validação para detectar issues e erros mais cedo
- Porém, como o próprio review com IA é não determinístico, é preciso primeiro medir se "esse meio de validação realmente está validando bem"
Construção de benchmark próprio
- Hotfix PR → rastreamento retroativo até o PR original para medir "no momento do PR original, o review com IA conseguiria ter detectado esse bug?"
- Incluídos apenas casos julgáveis com base apenas no diff do PR; casos que exigiam contexto externo foram excluídos
- A avaliação foi feita com GPT-4o mini como LLM-as-a-Judge. Mesmo que o valor absoluto seja impreciso, ele é suficiente para comparação relativa
- Pontuação inicial: 33. A sensação de que "estávamos indo bem" era uma ilusão causada por pouquíssimos casos de sucesso
Falha 1 (orquestração de subagentes)
- Foi tentada uma estrutura com subagentes especialistas por área, coordenados por um agente principal
- Resultado: taxa de detecção ↓, custo 1,5~3x ↑
- Três causas
- Perda de informação por compressão de contexto
- Campo de visão reduzido por limitação de escopo
- Lacunas de responsabilidade entre áreas cruzadas
Falha 2 (contaminação do benchmark)
- Ao automatizar o ajuste de prompts em loop, o sistema convergiu para uma lista de instruções do tipo "verifique Division by Zero"
- O SWE-bench também já está contaminado
- Confirmou-se que benchmarks externos não servem para fundamentar a escolha de modelo
Nova métrica (Adoption Rate)
- adopted: o review levou de fato a mudanças no código
- engaged: não houve mudança, mas houve interação em resposta (reconhecimento do valor de validação cruzada)
- noised: não houve nem mudança nem resposta
- Forma de avaliação: comparação entre o commit SHA no momento do review e o SHA no momento do merge; se houver mudança em até ±3 linhas da linha comentada, classifica como adopted
A/B entre Opus 4.6 e GPT-5.2 Codex
- Divisão de modelo por PR par/ímpar, comparação em cerca de 100 PRs
- Opus 4.6: rápido e criativo, mas com falta de rigor; aprova com facilidade
- GPT-5.2 Codex: mais lento, mas minucioso; mesmo no momento de pedir novo review, ainda faz apontamentos adicionais válidos
- Após fixar no Codex, a taxa semanal de adoção chegou ao pico de 60%
Três medidas que aumentaram a taxa de adoção
- Question: quando não houver certeza, perguntar em vez de apontar
- Seções Intent/Decisions no template de PR
- Intent: inserção, via skill
create-pr, de respostas à pergunta "por que isso é necessário?" - Decisions: extração automática, via hook Claude Stop, das decisões tomadas na sessão de conversa
- Falsos positivos causados pela falta de contexto do reviewer caíram em até 29%
- Intent: inserção, via skill
- Resolução automática de threads: ao confirmar a aplicação do review, a IA fecha a thread sozinha
Resultado
- Taxa mensal de adoção de 63% alcançada (em 2026-04-17)
- Como todas as ações foram baseadas em dados, também é possível decidir os próximos experimentos com fundamento
- Como Adoption Rate também não garante que "adoção = resposta certa", é preciso manter cautela com a possibilidade de contaminação dessa métrica também
4 comentários
Nossa... parece "quem vigia os vigilantes?"
O "meio de verificação" mencionado acima se referia ao revisor de IA. A intenção era dizer que, como a IA não é determinística, é preciso primeiro haver uma linha de base (benchmark) para medir a qualidade das revisões feitas por IA, mas, do ponto de vista de quem lê, isso também pode ser entendido como a necessidade de primeiro questionar a validade do próprio benchmark.
Acho que escrevi a frase de forma ambígua e acabei causando confusão. Obrigado por apontar isso..!
Pessoalmente, uso modelos diferentes para escrever código e para fazer a revisão.
Pela minha experiência, o Claude tende a considerar como bem escrito o código que o próprio Claude gerou, e o ChatGPT tende a achar melhor o código que o próprio ChatGPT escreveu.
Eu estava usando o Codex nas etapas de planejamento e validação, então eu estava fazendo certo mesmo.