9 pontos por bangdori1 9 일 전 | 4 comentários | Compartilhar no WhatsApp

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%
  • 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

 
pkj3186 9 일 전
  • No entanto, como a própria revisão por IA é não determinística, é preciso vir antes a etapa de medir se "esse meio de verificação está realmente verificando bem?"

Nossa... parece "quem vigia os vigilantes?"

 
bangdori1 8 일 전

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..!

 
epdlemflaj 7 일 전

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.

 
jimmy2056 9 일 전

Eu estava usando o Codex nas etapas de planejamento e validação, então eu estava fazendo certo mesmo.