Conheça o crítico mais severo e também o aliado mais valioso do Jules

12 DE AGOSTO DE 2025
Kathy Korevec Director of Product Google Labs
Mehadi Hassen Research Engineer
Yiguang (Amanda) Zhang Research Engineer

Agentes de codificação por IA como o Jules podem criar, refatorar e fazer o scaffolding do código enquanto você se concentra em outras tarefas. A conveniência e a facilidade de uso são excelentes, mas também podem representar bugs sutis, casos de borda não detectados e suposições não testadas. É por isso que estamos introduzindo um novo recurso no Jules que revisa e faz a crítica do código antes que você tenha acesso a ele.


Geração aprimorada por crítica

A função é simples, mas avançada: enquanto o Jules cria, o recurso de crítica desafia. Cada alteração proposta passa pela revisão adversária antes da conclusão. Pense no recurso de crítica como o colega revisor do Jules, altamente familiarizado com os princípios de qualidade de código e sem medo de dar sua opinião quando você tenta se arriscar a reinventar a roda.

A crítica é integrada diretamente ao processo de geração de código, algo chamado de geração aprimorada por crítica. Nesta primeira versão, esse é um processo único que avalia a saída final em uma única passagem. Os marcos futuros terão como objetivo fazer disso um verdadeiro agente com várias etapas, capaz de usar chamadas de ferramentas ou ser acionado após subtarefas ou antes do planejamento. Mas, por enquanto, ele revisa a geração completa de uma só vez. Isso utilizará a pesquisa em várias etapas, na qual um crítico valida as saídas usando ferramentas externas (como um interpretador de código ou um mecanismo de pesquisa) e aprende com esses resultados.


O que faz o crítico

O crítico não corrige o código. Ele o sinaliza e o devolve ao Jules para que sejam feitas melhorias. Por exemplo:

  • Um patch que é aprovado em todos os testes, mas introduz um erro lógico sutil: "A saída corresponde aos casos esperados, mas falha com entradas não vistas".

  • Uma alteração que é compilada, mas que silenciosamente descarta um campo obrigatório: "Assinatura de função atualizada sem tratamento de todos os parâmetros".

  • Um código que funciona, mas usa uma abordagem ineficiente: "O algoritmo produz um resultado correto, mas tem complexidade de O(n²) desnecessária".

Como isso acontece após a geração do patch e antes do envio (possivelmente várias vezes, se ainda estiver sinalizado), o Jules pode replanejar em tempo real. Nossa meta é ter menos problemas em PRs, melhor cobertura de testes e segurança reforçada.


Muito mais que uma ferramenta de inspeção ou um teste

As ferramentas de inspeção (linters) seguem regras superficiais e fixas; os testes validam declarações específicas. O recurso de crítica compreende a intenção e o contexto por trás do código. Ele está mais próximo de um método de avaliação livre de referência, verificando se o código está correto e é confiável, sem precisar de uma implementação final.

Ele também se baseia nas pesquisas de LLM como juiz, nas quais um modelo avalia o trabalho de outro modelo quanto à qualidade e exatidão. Esse tipo de julgamento automatizado é especialmente útil quando integrado totalmente à geração, transformando a revisão em um loop de feedback em tempo real.


Veja como funciona:

1 – Você pede ao Jules para iniciar uma tarefa.

2 – O recurso de crítica revisa o patch candidato e sua descrição em uma única passagem, fazendo um julgamento geral.

3 – O Jules responde ao feedback antes de finalizar e, então, o crítico pode revisar o patch atualizado novamente e continuar sinalizando quaisquer pontos que julgar necessários até que não haja mais problemas.

4 – Você recebe um código que já foi revisado internamente.

Isso tem como base o aprendizado por reforço (RL, na sigla em inglês) entre agente e crítico, no qual um "agente" gera e um "crítico" avalia. No RL, esse loop atualiza o agente e o crítico com base em um sinal de aprendizado. Em nossa configuração de LLM como crítico, o padrão é semelhante: propor e, em seguida, avaliar. No entanto, em vez de atualizar os parâmetros de aprendizado, o feedback influencia o estado atual e as próximas etapas. Esse mesmo princípio também sustenta a pesquisa no LLM como juiz, na qual a avaliação do crítico orienta a qualidade sem a necessidade de retreinamento.


Por que isso é importante

Em um mundo de rápida iteração, o crítico move a revisão para o início do processo e para o próprio ato de geração. Isso significa que o código que você revisa já foi questionado, refinado e submetido a testes de estresse. Obviamente, você deve sempre revisar o código gerado com cuidado antes de usá-lo.

Os grandes desenvolvedores não só escrevem código: eles o questionam. E, agora, o Jules também faz isso.