Redução de custos multi-agente e prevenção de alucinações aprendidas com o sistema uReview da Uber
Como filtrar trechos de código desnecessários antes de chamar o LLM usando parsing AST
Inserir diffs brutos do Git e código-fonte completo em monólitos legados causa uma bomba de custos. Apresentada pela Uber em 2025, a plataforma uReview analisou automaticamente 90% das 65.000 alterações geradas semanalmente em 6 monorepos. No entanto, expor o modelo sem refinamento a bases de código com limites de módulos confusos multiplica o custo de tokens por 6. Um modelo que não compreende classes de fábrica globais exige validações de ponteiro nulo incorretas e gera alucinações. No momento em que comentários inúteis se acumulam, os desenvolvedores desativam as notificações e desenvolvem imunidade a avisos.
É necessário criar um motor de pré-processamento usando o módulo padrão ast do Python para extrair apenas as assinaturas de funções modificadas e as variáveis locais afetadas. Após refinar os metadados estáticos, modificações não funcionais irrelevantes para as alterações são eliminadas por meio de comparação de hash. Em seguida, a assinatura do nó de função de nível inferior que contém a linha alterada e a instrução de modificação real são re-analisadas para criar um payload JSON leve.
Executar um benchmark com 100 módulos legados revela uma diferença gritante. A injeção de arquivos brutos gasta 42.000 tokens e US$ 0,273 por PR. Por outro lado, o uso de compactação JSON com pré-processamento AST reduz para 6.100 tokens e US$ 0,068 por PR. Os custos de API caem 47,3% e a taxa de falsos positivos alucinatórios diminui para 9,4%.
Como cortar loops infinitos entre agentes usando esquemas de máquina de estados
Agrupar um agente de segurança e um agente de lógica de negócios em um chat em grupo interativo faz com que eles fiquem rebatendo saídas e entrem em um loop infinito de ping-pong. A análise de um único PR leva dezenas de minutos e os custos de API disparam. Os agentes não devem se comunicar diretamente. É necessário construir uma estrutura de máquina de estados finitos utilizando esquemas Pydantic e LangGraph.
Cada agente especializado recebe apenas o estado central do pipeline e retorna o resultado avaliado de acordo com suas regras de domínio estritamente no formato de modelo especificado. O Pydantic é usado para definir classes de dados que forçam identificadores, caminhos de arquivo, gravidade e pontuações de confiança nas saídas do agente. Arestas condicionais são aplicadas para interromper à força a máquina de estados quando a contagem de repetições atinge 2 ou quando a confiança de todos os comentários converge para 0,85 ou mais.
De acordo com o padrão OpenTelemetry GenAI Semantic Conventions, a execução de cada agente deve ser encapsulada em um intervalo (span) exclusivo e o uso de tokens deve ser registrado em um backend de rastreamento distribuído. A aplicação dessa estrutura reduz o tempo de depuração que os tech leads gastavam corrigindo o mau funcionamento dos agentes para mais de 6 horas semanais.
Como alcançar 70% de taxa de aceitação por desenvolvedores com um script de validação de whitelist
De acordo com os dados operacionais da ferramenta interna de análise estática Tricorder do Google, não importa o quão precisa seja a indicação da ferramenta: se os desenvolvedores sentirem que não vale a pena corrigir, a animosidade apenas aumenta. Verificadores com taxa de falsos positivos superior a 5% são banidos imediatamente. Para fazer com que mais de 67% dos comentários de revisão automática sejam aceitos, deve-se realizar um lançamento gradual, expandindo por etapas a partir de módulos de menor risco.
O modo shadow é executado por 3 semanas, selecionando camadas sem efeitos colaterais, como camadas de validação DTO e funções puras, para ocultar comentários. Após confirmar 85% de precisão, os comentários em linha são liberados no código de backend de 3 squads de domínio e a taxa de aceitação é monitorada. Coletando logs de feedback semanalmente, um script de loop de feedback é executado para remover automaticamente regras de alto falso positivo que ficam abaixo da taxa de aceitação de 67% da whitelist e enviá-las para uma lista de isolamento. Incorporar esse script de validação de whitelist no pipeline filtra rapidamente as regras inúteis que irritam os desenvolvedores, permitindo atingir uma taxa de aceitação de 70% no sistema de revisão da equipe.