L'industria dello sviluppo software è in costante evoluzione, e l'intelligenza artificiale (IA) sta ridefinendo il modo in cui i team lavorano. Un trend emergente e dirompente è l'adozione di flussi di lavoro multi-agente, che rappresentano un salto qualitativo rispetto all'impiego di un singolo agente IA. Anziché affidarsi a un unico agente di codifica IA, gli sviluppatori si stanno orientando verso l'utilizzo di un intero team di IA “agente”, ciascuno specializzato in compiti specifici. Questa transizione segna l'inizio di una “bella e nuova” era, come suggerito dal titolo, dove la collaborazione tra più intelligenze artificiali mira a ottimizzare ogni fase del ciclo di vita dello sviluppo software.

Con la crescente diffusione di strumenti IA che supportano il lavoro di programmazione, emerge una chiara tendenza tra gli sviluppatori software: i flussi di lavoro multi-agente. Questo concetto descrive l'impiego parallelo di diversi agenti IA, ognuno dei quali assume compiti specifici all'interno del ciclo di vita dello sviluppo software. Questi compiti possono includere un'ampia gamma di attività essenziali per la creazione e la manutenzione del software, quali:

  • creare strutture applicative di base,
  • scrivere, testare ed eseguire il debug del codice,
  • analizzare i log, oppure
  • fornire soluzioni.

L'idea fondamentale è che un singolo agente IA non è più sufficiente per soddisfare le esigenze complesse e diversificate dello sviluppo moderno.

Guidare un team di IA agente

Harry Wang, chief growth officer presso il fornitore di software Sonar, sottolinea che “un ‘agente di codifica’ generalista non è sufficiente”. La sua visione è che, proprio come un team umano dispone di specialisti in settori quali backend, sicurezza e testing, anche i sistemi di IA agente richiedono più agenti specializzati. Questa specializzazione è cruciale per replicare l'efficienza e la completezza di un team di ingegneri umani.

Il dottor Eran Yahav, co-fondatore e CTO dello specialista di codifica IA Tabnine, spiega che in pratica ci si può immaginare questo come un potente team di ingegneri. “Un agente scrive il codice, un altro lo testa, un terzo crea la documentazione o convalida, mentre un quarto verifica sicurezza e conformità”. Ogni agente in un flusso di lavoro multi-agente è quindi specializzato in un campo specifico, riflettendo così i ruoli di un team di ingegneria composto da esseri umani. Questa suddivisione dei compiti permette di affrontare la complessità dello sviluppo software in modo più efficace e mirato.

Tuttavia, il controllo finale rimane in mani umane. Zach Loyd, fondatore e CEO di Warp, un fornitore di ambienti di sviluppo multi-agente, chiarisce: “Ogni agente lavora sul proprio thread, mentre lo sviluppatore guida e verifica”. Questo approccio garantisce che gli sviluppatori mantengano la supervisione e possano intervenire, assicurando che il processo rimanga allineato con gli obiettivi e gli standard desiderati. Loyd, i cui team utilizzano già flussi di lavoro multi-agente, spiega che dalla prospettiva dello sviluppatore questo cambierà in modo sostenibile il lavoro quotidiano. “Immaginate di sviluppare una nuova funzione, mentre contemporaneamente un agente riassume un registro utente e un altro si occupa delle modifiche ricorrenti al codice. In questo modo potete visualizzare lo stato di ogni agente, intervenire per rivedere i risultati o fornire ulteriori istruzioni se necessario”.

In pratica, i flussi di lavoro che coinvolgono più agenti IA possono assumere diverse forme. Justin Roeck, vice CTO presso lo specialista di sviluppo DX, utilizza con successo i flussi di lavoro multi-agente per il prompting avversario. “In questo caso, lo stesso prompt viene utilizzato su più modelli IA. Gli agenti confrontano i loro risultati o si criticano a vicenda per determinare l'output migliore”. Questo tipo di interazione collaborativa e competitiva tra agenti può portare a risultati più raffinati e robusti.

I vantaggi dei sistemi multi-agente

I flussi di lavoro multi-agente promettono diversi benefici per gli sviluppatori software. In primis, questi includono:

  • tempi di sviluppo più brevi e quindi una delivery accelerata,
  • qualità del codice ottimizzata, nonché
  • un migliore allineamento tra gli output dell'IA e gli obiettivi aziendali.

Il CTO Yahav sottolinea che “i flussi di lavoro agenti parallelizzati riducono lo sforzo manuale, senza compromettere la qualità”. Non solo le revisioni del codice, il testing e la documentazione procedono più velocemente, ma poiché le direttive interne vengono seguite automaticamente e le decisioni dell'IA vengono spiegate, il codice diventa anche più chiaro. Questo non solo migliora l'efficienza ma anche la comprensibilità e la manutenibilità del software.

Per Roeck, i vantaggi dell'utilizzo di più agenti risiedono sia nell'efficienza che nella precisione. Egli attribuisce ciò principalmente alla specializzazione del modello sottostante: “Certo, alcuni agenti padroneggiano specifiche linguaggi di programmazione meglio di altri. Ad esempio, GitHub Copilot sembra preferire TypeScript, mentre Mistral è migliore in Python”. Sfruttare queste specializzazioni permette di ottimizzare la scelta degli strumenti per compiti specifici, massimizzando così l'efficacia del team multi-agente.

Tuttavia, i flussi di lavoro multi-agente sono ancora nella fase iniziale. La necessità di orchestrazione che ne deriva non è attualmente coperta. In pratica, gli agenti IA vengono per lo più attivati manualmente in sequenza. Roeck ammette che l'uso di agenti IA multipli per scopi di prompting avversario comporta una notevole quantità di lavoro manuale. “Aggiornare i prompt e introdurre misure di sicurezza non fa che amplificare questo aspetto. Pertanto, sarà cruciale per il futuro coordinare la comunicazione tra i diversi agenti”.

Anche il CTO di Tabnine, Yahav, concorda: “Senza orchestrazione, i sistemi multi-agente cadono nel caos. Diventano ridondanti, incoerenti o contraddittori. Flussi di lavoro di questo tipo hanno bisogno di un modo per unificare plugin non collegati tra loro in un'architettura singolare – e di una governance basata su politiche per definire come gli agenti IA devono comportarsi”. Questo evidenzia la necessità di un'infrastruttura robusta per gestire le interazioni complesse tra gli agenti.

“La chiave sta nella trasparenza e nel controllo. Gli sviluppatori devono essere in grado di vedere cosa sta facendo ogni agente e a che punto è, e gli agenti devono sapere quando e come chiedere aiuto”, aggiunge Loyd. Il CEO di Warp raccomanda quindi di costruire una base di conoscenza condivisa per gli agenti, al fine di allinearli in modo sostenibile agli standard interni. “Questa dovrebbe includere, ad esempio, convenzioni di codifica, variabili d'ambiente o passaggi comuni per la risoluzione dei problemi. In questo modo, gli agenti rimangono allineati con il modo di lavorare del team – ed evitano sorprese”. Una base di conoscenza centralizzata può fungere da fonte di verità unica per tutti gli agenti, promuovendo coerenza e riducendo l'insorgere di errori.

I rischi dei flussi di lavoro multi-agente

I sistemi multi-agente possono però comportare anche dei rischi, soprattutto se lasciati agire autonomamente senza supervisione. “Se gli agenti dipendono da API esterne o dall'inferenza cloud, i prompt possono rivelare proprietà intellettuale o dati sensibili”, sottolinea Yahav. Come ulteriori possibili problemi, il manager elenca:

  • la mancanza di verificabilità delle modifiche,
  • codice che aggira gli standard interni, e
  • l'accumulo di debito tecnico.

Per affrontare questi rischi, sono necessarie autorizzazioni dettagliate e guardrail per le azioni degli agenti IA, come evidenzia Loyd. A suo avviso, gli sviluppatori dovrebbero continuare a rivedere attentamente ogni riga di codice generata dall'IA, anche per rispettare gli standard di qualità. “I team devono controllare non solo le autorizzazioni degli agenti IA in modo stringente, ma anche la loro capacità di eseguire codice localmente. Registri trasparenti e il controllo completo sulla condivisione dei dati e sulle configurazioni dell'IA sono anch'essi indispensabili”.

Per quanto riguarda le preoccupazioni sulla sicurezza legate all'IA agente, Yahav raccomanda, nei settori regolamentati, di optare per implementazioni air-gapped o on-premises. Il manager di Tabnine consiglia inoltre di creare percorsi di audit per le interazioni dell'IA e di applicare politiche di runtime per gli agenti attivi. Queste misure sono essenziali per garantire la conformità e proteggere i dati sensibili in ambienti critici.

A parte i rischi per la privacy e la sicurezza dei dati, può accadere che gli agenti IA semplicemente non siano all'altezza delle aspettative, come spiega Wang: “I sistemi multi-agente possono impressionare in compiti isolati. Ma manca loro la coesione e la visione d'insieme architettonica per sviluppare applicazioni robuste e di alta qualità. Ad esempio, di recente ho lavorato con un importante strumento di vibe-coding e non sono riuscito ad andare avanti perché un agente IA non poteva cambiare libreria nel mezzo del processo”. Questo esempio evidenzia i limiti attuali e la mancanza di flessibilità di certi agenti.

Questa, tuttavia, è ancora un'esperienza piuttosto innocua. Altri utenti riferiscono, in relazione agli agenti IA, ad esempio di:

  • modifiche al codice che fanno crashare l'applicazione,
  • scanner che non rilevano i problemi,
  • comandi non autorizzati che vengono comunque eseguiti, o
  • file e database che si dissolvono “nell'aria”.

Inoltre, le limitazioni delle finestre di contesto e il comportamento stateless degli agenti complicano l'accesso alla memoria tra agenti, soprattutto nei flussi di lavoro di sviluppo a più livelli. E: i primi adottanti, secondo Roeck, dovrebbero prepararsi a lunghe fasi di sperimentazione: “Preparatevi ai fallimenti. Questo campo non è ancora maturo”.

Suggerimenti e strumenti per implementare sistemi multi-agente

I team di sviluppo che desiderano implementare flussi di lavoro multi-agente ed evitare le insidie dovrebbero seguire i seguenti T