1. Introducción

En este codelab, compilarás un sistema de auditoría de calidad de código multilingüe y de solución automatizada con la orquestación paralela de varios agentes en Antigravity. En lugar de una revisión tradicional, manual y lineal de varios directorios de servicios separados, implementarás subagentes de IA especializados para inspeccionar diferentes pilas de lenguajes en paralelo.
Crearás un agente coordinador para descubrir el diseño del proyecto, administrar subagentes para ejecutar pruebas de unidades, crear un plan de auditoría, buscar cumplimiento, crear un informe de auditoría y refactorizar de forma autónoma los problemas de codificación de alta prioridad en la base de código.
Qué aprenderás
- Descubrimiento de proyectos: Cómo implementar un agente coordinador para asignar directorios y detectar lenguajes de programación en una arquitectura compleja de microservicios
- Paralelismo orquestado: Cómo distribuir auditorías de código y pruebas de unidades en subagentes de IA independientes y específicos del lenguaje de forma simultánea
- Supervisión humana en el circuito: Cómo guiar a un agente coordinador para que cree un plan de auditoría y se detenga de forma segura para que lo revises y apruebes antes de la ejecución
- Solución automatizada: Cómo implementar subagentes de desarrolladores especializados para refactorizar y resolver de forma autónoma problemas de codificación y cumplimiento de alta prioridad
- Circuitos de verificación: Cómo verificar los cambios de código generados por la IA volviendo a ejecutar automáticamente los conjuntos de pruebas para garantizar que no se hayan introducido regresiones
Requisitos
Para este codelab, necesitarás las siguientes herramientas instaladas de forma local:
- Google Antigravity
- Git
- Uno o más de los siguientes lenguajes configurados en tu entorno: Go, Python, C# / .NET, NodeJS, Java
¡Comencemos!
2. Configuración del entorno
Primero, asegúrate de tener instalado Antigravity.
En segundo lugar, clona Online Boutique, una aplicación de demostración de microservicios en la nube:
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
Crea un proyecto nuevo en Antigravity con el código. En Antigravity, selecciona Create New Project en Projects en el lado izquierdo:

Selecciona la carpeta del repositorio:

Puedes elegir el modo Default para Agent Security Settings y también usar el mismo nombre microservices-demo para el proyecto.
3. Discovery
En una arquitectura de microservicios, una base de código suele incluir varios servicios que abarcan varias carpetas o repositorios y pilas de programación. Esto también se aplica a la aplicación de demostración de Online Boutique.
Antes de iniciar los agentes, descubramos el diseño del proyecto. En este primer paso, implementarás un agente coordinador con Antigravity que descubre varios microservicios en diferentes lenguajes en src/ y coordina subagentes específicos del lenguaje para trabajar en cada microservicio en pasos posteriores.
Primero, pidámosle al agente coordinador que explore la base de código y asigne qué servicios existen en qué directorios y qué lenguajes usan.
En Antigravity, inicia una conversación nueva en el proyecto microservices-demo que creaste anteriormente. Para el modelo, puedes usar el modelo de Gemini más reciente con un nivel de pensamiento medio:

Prueba esta instrucción:
Identify all the microservices located under the src/ directory,
detect which programming language each service is written in, and
output the list as a clean markdown table showing: Service Name,
Directory, and Primary Language.
Al final, Antigravity debería mostrar una tabla de servicios y su lenguaje principal, algo similar a lo siguiente:

4. Seleccionar idiomas
Ahora que asignaste la base de código, debes elegir los lenguajes con los que deseas trabajar. Debes asegurarte de tener los compiladores o las herramientas necesarios para los lenguajes que elijas (p. ej., la herramienta dotnet para C#, javac para Java, etcétera).
Una vez que elijas los lenguajes con los que deseas trabajar, es fundamental verificar el estado de la base de código actual ejecutando las pruebas de unidades respectivas para ese lenguaje.
Puedes usar subagentes especializados y paralelos para ejecutar conjuntos de pruebas en cada lenguaje. Esto destaca la potencia principal de un flujo de trabajo de varios agentes: ejecutar pruebas aisladas de forma simultánea en espacios de trabajo separados y específicos del lenguaje.
Adapta y ejecuta la siguiente instrucción para tu entorno:
I have [C#, Python, Go, Java, Node.js] setup locally.
Run the unit tests for services in these languages
in parallel subagents and report back in a clean markdown
on their pass/fail status.
Deberías ver varios agentes ejecutando pruebas en cada lenguaje. Asegúrate de revisar cada subagente cuando soliciten permisos para ejecutar herramientas como se muestra a continuación:

Una vez que todos los subagentes terminen, deberías recibir un informe sobre las pruebas de unidades, similar al siguiente:

5. Planificar la auditoría
Plan
En flujos de trabajo complejos, iniciar cambios de código sin un plan puede generar conflictos. Queremos establecer un esquema estructurado y transparente de lo que pretendemos auditar. Le pedirás al agente coordinador que diseñe un plan de auditoría con las verificaciones de calidad del código, el manejo de excepciones, las verificaciones de higiene de consultas, etcétera.
Para garantizar la supervisión humana (humano en el circuito), el coordinador escribirá el plan en un artefacto y se detendrá de inmediato para que lo revises.
Prueba esta instrucción para crear un plan de auditoría:
We want to audit these microservices for code quality,
exception handling and database query formatting standards
for the languages I have set up locally. Design an audit plan
detailing what you will check and save it as an Audit Plan artifact.
Do not execute the audit yet. Stop after writing the plan and wait
for my instructions.
Deberías ver un artefacto de plan de auditoría en el chat:

Revisar
Ahora inspeccionarás el plan de auditoría generado para asegurarte de que esté orientado a los archivos y estándares correctos. De manera opcional, puedes agregar restricciones personalizadas (como verificar comentarios intercalados o guías de estilo) antes de dar la aprobación para continuar.
Haz clic en el plan de auditoría generado y deberías ver el plan detallado:

Opcional: Puedes agregar comentarios al plan (p.ej., "asegúrate de que todos los métodos públicos estén bien documentados") si deseas realizar cambios y realizar iteraciones hasta que estés satisfecho con el plan.
6. Ejecutar la auditoría
Ejecutar
Con el plan de auditoría aprobado, ejecutemos la auditoría. El agente coordinador generará subagentes paralelos independientes para cada pila de lenguajes. Cada agente opera de forma simultánea en su propia carpeta de servicio, lo que evita conflictos de archivos y acelera el proceso de análisis. El agente coordinador combinará los resultados en un panel de calidad unificado.
Esta es la instrucción que debes probar a continuación:
Execute the audit plan by spawning the parallel language subagents.
Once they finish scanning, collect their findings into an audit
report artifact, sorted by language and then priority. Include the
file paths, line ranges, snippets, and explanation of why it is a
finding. Stop after writing the report.
Deberías ver varios agentes de nuevo:

Asegúrate de observar cada subagente y otorgarles los permisos que necesitan para ejecutar su auditoría. Al final, deberías ver un artefacto de informe de auditoría:

Revisar
Una vez que abras el informe de auditoría, también deberías ver resultados detallados para cada lenguaje. Por ejemplo, este es un problema de alta prioridad de cartservice en C#:

Consulta el resto del informe de auditoría para ver los resultados.
7. Solución
Diagnosticar problemas de calidad del código es solo la mitad del trabajo. Ahora, usaremos agentes para resolver los problemas. En lugar de escribir código de forma manual, podemos delegar la refactorización a subagentes de desarrolladores con alcance de lenguaje, que pueden reescribir el código para que cumpla con las prácticas recomendadas.
Existen diferentes formas de intentar esto:
- Puedes generar un agente por lenguaje y permitir que todos los agentes solucionen todos los problemas a la vez. Esto podría funcionar, pero también podría ser demasiado para hacer un seguimiento y revisar al mismo tiempo.
- Puedes generar un agente para un lenguaje a la vez y permitir que controle los problemas de ese lenguaje. Esto será más fácil de administrar, pero aún debes poder confiar en que el agente realizará varios cambios en varios archivos.
- Puedes hacer que un agente controle un problema a la vez mientras verificas el resultado antes de pasar al siguiente problema. Este es un enfoque más conservador, pero también garantiza que te mantengas al tanto de cada cambio.
Usaremos el enfoque más conservador n.° 3 con la siguiente instrucción:
Select the top high-priority finding in [pick a language, e.g., C#]
and remediate the finding. Show me the code changes once complete.
Después de unos segundos, deberías ver que el agente trabaja en la prioridad más alta en el lenguaje elegido y la corrige.
Al final, también puedes obtener un artefacto de instructivo que te muestre lo que cambió el agente:

Opcional: En este punto, puedes pedirle al agente que cambie la implementación o, si estás satisfecho con los cambios, puedes pedirle que agregue una prueba de unidades nueva para abarcar los cambios.
8. Verificación
En el desarrollo de software, una corrección no se completa hasta que se verifica. En este último paso, podemos pedirle al agente que ejecute el paquete de pruebas para asegurarnos de que los cambios de código no introduzcan regresiones y volver a ejecutar el analizador de auditoría para verificar que el problema esté completamente resuelto.
En este paso, se muestra el circuito de retroalimentación automatizado completo de planificación, análisis, corrección y verificación.
Ejecuta la siguiente instrucción:
Rerun the unit tests for the changed language. If they pass, rerun
the relevant audit agent to check if the finding is resolved. If it
is resolved, mark the issue as resolved in the audit report.
Deberías ver que se inicia un subagente de ejecutor de pruebas y ejecuta las pruebas, y luego deberías ver que un subagente de auditor actualiza el informe de auditoría. Al final, deberías ver el informe de auditoría actualizado con el estado más reciente:

¡Un problema menos! Ahora, puedes revisar el resto de los problemas, tal vez usando un enfoque menos conservador esta vez en el que permitas que los agentes hagan más trabajo antes de que lo revises.
9. Felicitaciones
¡Felicitaciones! Acabas de completar una revisión de código multilingüe compleja y un flujo de trabajo de solución automatizada con Antigravity.
Al aprovechar la arquitectura de varios agentes de Antigravity, no solo automatizaste las verificaciones estáticas, sino que también orquestaste un equipo automatizado de garantía de calidad. Mientras los agentes de lenguaje especializados trabajaban de forma simultánea en problemas específicos del lenguaje, tu agente coordinador compiló un plan y un informe centralizados y, luego, administró una refactorización de código segmentada.
Conclusiones principales
- Paralelismo orquestado: Aprendiste a distribuir auditorías y pruebas en subagentes independientes y específicos del lenguaje que se ejecutan en paralelo, lo que evita los cuellos de botella de la revisión lineal.
- Human-in-the-Loop: Al revisar y anotar el plan de auditoría generado antes de la ejecución, mantuviste la supervisión de las operaciones autónomas.
- Solución y verificación automatizadas: Viste cómo los agentes de IA no solo pueden diagnosticar discrepancias en la calidad del código, sino también refactorizar el código y verificar sus propios cambios en conjuntos de pruebas locales.