Descubre al crítico más detallista y el aliado más valioso de Jules

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

Los agentes de codificación de IA como Jules pueden compilar, refactorizar y andamiar el código mientras te enfocas en otras cosas. Esa comodidad y facilidad de uso es emocionante, pero a veces también puede significar errores sutiles, casos extremos perdidos y suposiciones no probadas. Es por eso que estamos presentando una nueva función en Jules que revisa y critica el código antes de que lo veas.


Generación crítica aumentada

El rol es simple, pero poderoso: mientras Jules compila, la funcionalidad crítica desafía. Cada cambio propuesto se somete a una revisión contradictoria antes de su finalización. Piensa en la función de crítica como el revisor de pares de Jules, profundamente familiarizado con los principios de calidad del código y sin miedo a señalar cuando reinventaste un objeto riesgoso.

El crítico se integra directamente en el proceso de generación de código, llamado generación aumentada por el crítico. Para esta primera versión, es un proceso único que evalúa el resultado final en una sola pasada. Las versiones “milestone” futuras tendrán como objetivo convertirte en un verdadero agente de varios pasos, capaz de usar llamadas de herramientas o activar después de subtareas o antes de planificar. Por ahora, revisa la generación completa de una vez. Esto se basará en una investigación de varios pasos, donde un crítico valida los resultados utilizando herramientas externas (como un intérprete de código o un motor de búsqueda) y aprende de esos resultados.


Qué hace el crítico

El crítico no corrige el código, lo marca y luego se lo devuelve a Jules para que lo mejore. Por ejemplo:

  • Un parche que pasa todas las pruebas, pero introduce un error lógico sutil: “El resultado coincide con los casos esperados, pero falla en las entradas invisibles”.

  • Un cambio que compila, pero elimina silenciosamente un campo obligatorio: “firma de función actualizada sin manejar todos los parámetros”.

  • Código que funciona, pero utiliza un enfoque ineficiente: “El algoritmo produce un resultado correcto, pero con una complejidad O(n²) innecesaria”.

Debido a que esto sucede después de la generación del parche y antes de la presentación (posiblemente varias veces si todavía está marcado), Jules puede volver a planificar en tiempo real. Nuestro objetivo es tener menos relaciones públicas deficientes, una mejor cobertura de las pruebas y más seguridad.


No solo otro linter o prueba

Los linters siguen reglas superficiales y fijas; las pruebas validan afirmaciones específicas. La capacidad crítica comprende la intención y el contexto detrás del código. Está más cerca de un método de evaluación sin referencias, juzgando la corrección y la solidez, sin necesidad de una implementación estándar.

También se inspira en la investigación sobre LLM como juez, donde un modelo evalúa el trabajo de otro modelo en cuanto a calidad y corrección. Este tipo de evaluación automatizada es especialmente útil cuando se integra estrechamente con la generación, convirtiendo la revisión en un ciclo de comentarios en vivo.


Así es como funciona:

1: Le pides a Jules que inicie una tarea.

2: La función crítica revisa el parche candidato y su descripción en una sola pasada, haciendo un juicio general.

3: Jules responde a los comentarios antes de terminar, después de lo cual el crítico puede revisar el parche actualizado nuevamente y continuar marcando lo que considere necesario hasta que no queden más problemas.

4: Recibes un código que ya se revisó internamente.

Esto se basa en el aprendizaje de refuerzo actor-crítico (RL), donde un “actor” genera y un “crítico” evalúa. En RL, este bucle actualiza al actor y al crítico en función de una señal de aprendizaje. En nuestra configuración de LLM como crítico, el patrón es similar: proponer y luego evaluar. Sin embargo, en lugar de actualizar los parámetros de aprendizaje, los comentarios influyen en el estado actual y los próximos pasos. Este mismo principio también sustenta la investigación sobre LLM como juez, donde la evaluación del crítico guía la calidad sin volver a entrenarse.


Por qué es importante

En un mundo de iteración rápida, el crítico traslada la revisión a una etapa más temprana del proceso y al acto de la generación en sí. Esto significa que el código que revisas ya se interrogó, ajustó y sometió a pruebas de estrés. Por supuesto, siempre debes revisar cuidadosamente el código generado antes de usarlo.

Los grandes desarrolladores no solo escriben código, lo cuestionan. Y ahora, Jules también hace lo mismo.