Google’s Agent Development Kit (ADK) offre due modi principali per gestire i task.
Routing dinamico multi-agente
Nel modello di routing, un coordinatore centrale riceve la richiesta dell'utente e la smista ad agenti specializzati. Il coordinatore decide quale specialista debba intervenire, lo specialista esegue la sua parte di lavoro e il controllo ritorna al genitore.
- Come funziona – Il coordinatore sceglie uno specialista, inoltra il task e poi attende una risposta prima di procedere.
- Pro – La flessibilità è il punto di forza. Poiché l'LLM sceglie il percorso durante l'esecuzione, il sistema si adatta a input nuovi o inaspettati senza dover riscrivere il flusso.
- Contro – Ogni passaggio aggiunge un sovraccarico di rete e di elaborazione, quindi la latenza aumenta rispetto a una pipeline lineare.
Loop di workflow sequenziali
Il modello a loop sostituisce il coordinatore con un singolo LoopAgent che attraversa una sequenza predeterminata di passaggi, condividendo uno stato della sessione mutabile.
- Come funziona – Gli agenti leggono una chiave condivisa, la aggiornano e passano il controllo al passaggio successivo finché la sequenza non termina.
- Pro – Prevedibilità. L'ordine non cambia mai, rendendo il debugging e l'ottimizzazione delle prestazioni semplici e diretti.
- Contro – Rigidità. Qualsiasi necessità di deviare dall'ordine prestabilito impone una riprogettazione del loop.
Test pratico: Un parser di espressioni matematiche
Per vedere questi pattern in azione, abbiamo costruito un semplice parser che valuta espressioni aritmetiche utilizzando quattro agenti specializzati: adder, subtracter, multiplier e divider.
Lezioni dal workflow loop
- Prevenire i loop infiniti – Abbiamo istruito ogni agente a produrre un output testuale e a terminare il proprio turno immediatamente dopo aver aggiornato lo stato condiviso. Senza questa protezione, il loop potrebbe girare all'infinito.
- Mantenere la logica matematica – Abbiamo fornito all'adder istruzioni esplicite per rispettare l'ordine delle operazioni, evitando che violasse le regole della sottrazione.
- Evitare uscite silenziose – Abbiamo obbligato gli agenti a stampare il risultato finale prima di invocare lo strumento di uscita, in modo che l'utente veda l'esito invece di una terminazione improvvisa.
Gestione degli errori
Abbiamo aggiunto una protezione contro la divisione per zero davanti allo specialista divider. La protezione controlla prima il divisore; se è zero, interrompe il processo, salvaguardando l'intero sistema da un'eccezione durante l'esecuzione.
Quale pattern è adatto al tuo progetto?
- Scegli il Multi-Agent Routing quando i task evolvono al volo, gli input variano ampiamente o hai bisogno che l'LLM decida il miglior specialista durante l'esecuzione. Il compromesso è una latenza maggiore, ma il sistema gestisce scenari imprevisti senza modifiche al codice.
- Scegli i Workflow Loop quando hai una pipeline ben definita — ad esempio pulizia, trasformazione e aggregazione dei dati — in cui ogni passaggio deve avvenire in un ordine rigoroso. Il vantaggio è una latenza inferiore e un debugging più semplice, a costo di non poter creare ramificazioni in modo dinamico.
