Crea un revisore di codice multilingue con agenti antigravità paralleli

1. Introduzione

3072ce11df4b71eb.jpeg

In questo codelab, creerai un sistema di controllo della qualità del codice multilingue e di correzione automatizzata utilizzando l'orchestrazione multi-agente parallela in Antigravity. Anziché una revisione tradizionale, manuale e lineare di più directory di servizi separate, eseguirai il deployment di sottoagenti AI specializzati per ispezionare in parallelo diversi stack di lingue.

Creerai un agente coordinatore per scoprire il layout del progetto, gestire i sottoagenti per eseguire i test delle unità, creare un piano di audit, eseguire la scansione per la conformità, creare un report di audit e rifattorizzare autonomamente i problemi di codifica con priorità elevata nella codebase.

Obiettivi didattici

  • Project Discovery:come eseguire il deployment di un agente coordinatore per mappare le directory e rilevare i linguaggi di programmazione in un'architettura di microservizi complessa.
  • Orchestrazione del parallelismo:come distribuire gli audit del codice e i test delle unità tra sottoagenti AI indipendenti e specifici per la lingua in contemporanea.
  • Supervisione umana (human-in-the-loop):come guidare un agente coordinatore per creare un piano di audit e metterlo in pausa in sicurezza per la revisione e l'approvazione prima dell'esecuzione.
  • Correzione automatizzata:come eseguire il deployment di sottoagenti sviluppatori specializzati per rifattorizzare e risolvere autonomamente i problemi di codifica e conformità con priorità elevata.
  • Cicli di verifica:come verificare le modifiche del codice generate dall'AI eseguendo automaticamente le suite di test per assicurarsi che non siano state introdotte regressioni.

Che cosa ti serve

Per questo codelab, devi aver installato localmente i seguenti strumenti:

  • Google Antigravity
  • Git
  • Uno o più dei seguenti linguaggi configurati nel tuo ambiente: Go, Python, C# / .NET, NodeJS, Java

Iniziamo.

2. Configurazione dell'ambiente

Per prima cosa, assicurati di aver installato Antigravity.

Poi, clona Online Boutique, un'applicazione demo di microservizi cloud:

git clone https://github.com/GoogleCloudPlatform/microservices-demo.git

Crea un nuovo progetto in Antigravity con il codice. In Antigravity, seleziona Create New Project (Crea nuovo progetto) in Projects (Progetti) a sinistra:

e8b14447dfcc289b.png

Seleziona la cartella del repository:

b39f0b1843ef1f3d.png

Puoi scegliere la modalità Default (Predefinita) per Agent Security Settings (Impostazioni di sicurezza dell'agente) e utilizzare lo stesso nome microservices-demo per il progetto.

3. Discovery

In un'architettura di microservizi, una codebase in genere coinvolge più servizi che si estendono su più cartelle o repository e stack di programmazione. Questo vale anche per l'applicazione demo Online Boutique.

Prima di avviare gli agenti, scopriamo il layout del progetto. In questo primo passaggio, eseguirai il deployment di un agente coordinatore con Antigravity che rileva vari microservizi in lingue diverse in src/ e coordina i sottoagenti specifici per la lingua per lavorare su ogni microservizio nei passaggi successivi.

Per prima cosa, chiedi all'agente coordinatore di esplorare la codebase e di mappare i servizi esistenti nelle directory e le lingue utilizzate.

In Antigravity, avvia una nuova conversazione nel progetto microservices-demo che hai creato in precedenza. Per il modello, puoi utilizzare l'ultimo modello Gemini con un livello di pensiero medio:

1a88687c5fe37b04.png

Prova questo prompt:

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.

Alla fine, Antigravity dovrebbe restituire una tabella di servizi e la relativa lingua principale, simile a questa:

2e37b2e607596573.png

4. Seleziona le lingue

Ora che hai mappato la codebase, devi scegliere le lingue con cui vuoi lavorare. Devi assicurarti di avere i compilatori/strumenti necessari per le lingue scelte (ad es. lo strumento dotnet per C#, javac per Java e così via).

Dopo aver scelto le lingue con cui vuoi lavorare, è fondamentale verificare l'integrità della codebase corrente eseguendo i rispettivi test delle unità per quella lingua.

Puoi utilizzare sottoagenti paralleli specializzati per eseguire le suite di test in ogni lingua. In questo modo, viene evidenziata la potenza principale di un workflow multi-agente: eseguire test isolati in contemporanea in spazi di lavoro separati e specifici per la lingua.

Adatta ed esegui il seguente prompt per il tuo ambiente:

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.

Dovresti vedere più agenti che eseguono test in ogni lingua. Assicurati di esaminare ogni sottoagente quando chiede le autorizzazioni per eseguire gli strumenti, come mostrato di seguito:

a3c1834909975020.png

Al termine dell'esecuzione di tutti i sottoagenti, dovresti ricevere un report dettagliato sui test delle unità, simile al seguente:

e8ce8e16f195ea8c.png

5. Pianifica l'audit

Piano

Nei workflow complessi, l'avvio delle modifiche del codice senza un piano può causare conflitti. Vogliamo stabilire un progetto strutturato e trasparente di ciò che intendiamo controllare. Chiederai all'agente coordinatore di progettare un piano di audit con i controlli della qualità del codice, la gestione delle eccezioni, i controlli dell'igiene delle query e così via.

Per garantire la supervisione umana (human-in-the-loop), il coordinatore scriverà il piano in un artefatto e lo metterà immediatamente in pausa per la tua revisione.

Prova questo prompt per creare un piano di audit:

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.

Dovresti vedere un artefatto del piano di audit nella chat:

a7eb6b75b28fd788.png

Rivedi

Ora esaminerai il piano di audit generato per assicurarti che sia rivolto ai file e agli standard corretti. (Facoltativo) Puoi aggiungere vincoli personalizzati (ad esempio, controllare i commenti in linea o le guide di stile) prima di approvare la procedura.

Fai clic sul piano di audit generato e dovresti vedere il piano dettagliato:

9b36c0ca827fdc53.png

Facoltativo: puoi aggiungere commenti al piano (ad es. "assicurati che tutti i metodi pubblici siano ben documentati") se vuoi apportare modifiche ed eseguire l'iterazione finché non sei soddisfatto del piano.

6. Esegui l'audit

Esegui

Con il piano di audit approvato, eseguiamo l'audit. L'agente coordinatore genererà sottoagenti paralleli indipendenti per ogni stack di lingue. Ogni agente opera in contemporanea nella propria cartella di servizio, evitando conflitti di file e accelerando il processo di scansione. L'agente coordinatore unirà i risultati in una dashboard di qualità unificata.

Ecco il prompt da provare:

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.

Dovresti vedere di nuovo più agenti:

9c282924eb33cc34.png

Assicurati di osservare ogni sottoagente e di concedere le autorizzazioni necessarie per eseguire l'audit. Alla fine, dovresti vedere un artefatto del report di audit:

6706295f5cf7292b.png

Rivedi

Dopo aver aperto il report di audit, dovresti vedere anche i risultati dettagliati per ogni lingua. Ad esempio, ecco un problema con priorità elevata da cartservice in C#:

aca90d0da393bffc.png

Dai un'occhiata al resto del report di audit per vedere i risultati.

7. Risoluzione

La diagnosi dei problemi di qualità del codice è solo metà della battaglia. Ora utilizzeremo gli agenti per risolvere i problemi. Anziché scrivere il codice manualmente, possiamo delegare il refactoring ai sottoagenti sviluppatori con ambito linguistico, che possono riscrivere il codice in modo che sia conforme alle best practice.

Esistono diversi modi per tentare questa operazione:

  1. Puoi generare un agente per lingua e lasciare che tutti gli agenti risolvano tutti i problemi contemporaneamente. Questa soluzione potrebbe funzionare, ma potrebbe anche essere troppo difficile da monitorare e rivedere contemporaneamente.
  2. Puoi generare un agente per una lingua alla volta e lasciare che gestisca i problemi per quella lingua. Questa soluzione sarà più gestibile, ma devi comunque essere in grado di fidarti dell'agente per apportare più modifiche a più file.
  3. Puoi fare in modo che un agente gestisca un problema alla volta mentre controlli il risultato prima di passare al problema successivo. Questo è un approccio più conservativo, ma ti assicura anche di rimanere aggiornato su ogni modifica.

Adotteremo l'approccio più conservativo n. 3 con il seguente prompt:

Select the top high-priority finding in [pick a language, e.g., C#]
and remediate the finding. Show me the code changes once complete.

Dopo alcuni secondi, dovresti vedere l'agente lavorare sulla priorità più alta nella lingua scelta e risolverla.

Alla fine, potresti anche ricevere un artefatto Walkthrough che mostra le modifiche apportate dall'agente:

9e79c7bb1e102aee.png

Facoltativo:a questo punto, puoi chiedere all'agente di modificare l'implementazione oppure, se sei soddisfatto delle modifiche, puoi chiedere all'agente di aggiungere un nuovo test delle unità per coprire le modifiche.

8. Verifica

Nello sviluppo software, una correzione non è completa finché non è stata verificata. In questo passaggio finale, possiamo chiedere all'agente di eseguire la suite di test per assicurarsi che le modifiche del codice non abbiano introdotto regressioni e di eseguire di nuovo lo scanner di audit per verificare che il problema sia completamente risolto.

Questo passaggio mostra il ciclo di feedback automatizzato completo di pianificazione, scansione, correzione e verifica.

Esegui il seguente prompt:

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.

Dovresti vedere un sottoagente Test Runner che si avvia ed esegue i test e poi un sottoagente Auditor che aggiorna il report di audit. Alla fine, dovresti vedere il report di audit aggiornato con lo stato più recente:

36ac20baa92d1602.png

Un problema risolto. Ora puoi esaminare il resto dei problemi, magari utilizzando un approccio meno conservativo questa volta, in cui lasci che gli agenti lavorino di più prima di eseguire la revisione.

9. Complimenti

Complimenti! Hai appena completato un complesso workflow di revisione del codice multilingue e di correzione automatizzata utilizzando Antigravity.

Sfruttando l'architettura multi-agente di Antigravity, non hai solo automatizzato i controlli statici, ma hai orchestrato un team di controllo qualità automatizzato. Mentre gli agenti linguistici specializzati lavoravano in contemporanea su problemi specifici per la lingua, l'agente coordinatore ha compilato un piano e un report centralizzati e successivamente ha gestito un refactoring del codice mirato.

Concetti principali

  • Orchestrazione del parallelismo: hai imparato a distribuire audit e test tra sottoagenti indipendenti e specifici per la lingua in esecuzione in parallelo, evitando i colli di bottiglia della revisione lineare.
  • Human-in-the-Loop: esaminando e annotando il piano di audit generato prima dell'esecuzione, hai mantenuto la supervisione sulle operazioni autonome.
  • Correzione e verifica automatizzate: hai visto come gli agenti AI possono non solo diagnosticare le discrepanze della qualità del codice, ma anche rifattorizzare il codice e verificare le proprie modifiche rispetto alle suite di test locali.