Pattern di orchestrazione multi-agente: una guida pratica

Il 40% dei pilot multiagente fallisce. Ecco come scegliere il giusto pattern di orchestrazione – ed evitare quelli che si rompono.

Indice

I sistemi AI a singolo agente hanno raggiunto il picco nel 2025 — si forniva a un LLM un prompt, alcuni strumenti e un obiettivo, e svolgeva compiti ben definiti in modo ragionevolmente efficace.

Nel 2026, i sistemi multi-agente sono passati dalle demo di ricerca all’infrastruttura di produzione. Gartner riporta un aumento del 1.445% delle richieste relative ai sistemi multi-agente dal Q1 2024 al Q2 2025, mentre il 2026 Connectivity Benchmark Report di Salesforce ha scoperto che le organizzazioni utilizzano in media 12 agenti, con una proiezione di crescita del 67% entro due anni. Il cluster AI Systems copre l’intero stack su cui questi sistemi operano — dall’inferenza e la memoria al routing e l’osservabilità.

Un concreto carico di lavoro di produzione che si basa sui pattern orchestrator-worker e gerarchici descritti qui è Deep Research: un coordinatore scompone una domanda e sub-agenti indipendenti indagano le sue parti prima che i risultati vengano sintetizzati. Sistemi Self-Hosted di Deep Research: 12 Strumenti Confrontati esamina DeerFlow, Open Deep Research e altri dieci sistemi che implementano questa forma planner-più-subagente (o le sue alternative ricorsive e guidate dai gap di evidenze) specificamente per la ricerca.

Pattern di orchestrazione multi-agente per sistemi AI di produzione

Ma ecco cosa viene meno discusso: il 40% dei pilot multi-agente fallisce entro sei mesi dalla implementazione in produzione. Il fallimento non è che i sistemi multi-agente non funzionino. Il fallimento è che i team scelgano il pattern di orchestrazione sbagliato per il loro problema — o ne scelgano uno giusto senza capire come possa andare in tilt.

Questa guida copre i pattern di orchestrazione che reggono in produzione, i modi specifici in cui ciascuno di essi fallisce, e un framework decisionale per scegliere l’architettura giusta.


Il Problema Principale: la Coordinazione è Difficile

Quando ci si sposta da un singolo agente AI a più agenti che lavorano insieme, la prima domanda ingegneristica è: come si coordinano?

Il modello di coordinazione — il pattern di orchestrazione — determina la latenza del sistema, la tolleranza ai guasti, il limite di scalabilità e la complessità del debug. È costantemente la decisione architettonica a più alto impatto nella progettazione multi-agente, condizionando ogni successiva scelta di implementazione.

Ogni sistema multi-agente di produzione corrisponde a uno dei sei pattern canonici, o a un ibrido di due o più. I pattern emergono dai vincoli dei sistemi distribuiti: costo di coordinazione, isolamento dei guasti, requisiti di throughput e osservabilità.


Pattern 1: Orchestrator-Worker

Come Funziona

Orchestrator-Worker è il modello centralizzato hub-and-spoke di coordinazione multi-agente. Un singolo agente orchestratore riceve il compito, lo scompone in sotto-compiti, delega ogni sotto-compito a un agente worker specializzato e aggrega i risultati. I worker non comunicano direttamente tra loro — tutta la coordinazione fluisce attraverso l’orchestratore, che detiene il piano completo e l’autorità decisionale.

graph TD O[Orchestrator
planner] --> WA[Worker A] O --> WB[Worker B] O --> WC[Worker C]

Quando Usarlo

  • Flussi di lavoro trasversali con una chiara scomposizione dei compiti
  • Scenari di triage e routing (assistenza clienti, classificazione incidenti)
  • Carichi di lavoro in cui è richiesto un unico punto di responsabilità
  • Compiti in cui l’orchestratore può usare un modello capace mentre i worker usano modelli più economici e specifici per il compito

Esempio del mondo reale: Salesforce Agentforce 2.0 utilizza orchestrator-worker per scomporre le richieste dei clienti in fasi di ricerca, stesura e revisione.

Come Fallisce

Singolo punto di fallimento. L’orchestratore è sia un collo di bottiglia che un punto di fallimento. Se la chiamata LLM dell’orchestratore richiede 3 secondi e hai 20 worker in attesa di assegnazioni, il limite del tuo throughput di scomposizione è di circa 6,7 compiti al secondo. Se l’orchestratore classifica erroneamente un compito, il worker sbagliato lo riceve — e i tassi di errata classificazione si moltiplicano alla scala.

Overflow del contesto. L’orchestratore accumula contesto da tutti i worker. Con 4 o più worker, l’orchestratore supera frequentemente i limiti di contesto perché detiene simultaneamente la cronologia completa della conversazione per ogni interazione con i worker.

Esplosione dei costi. I flussi di lavoro che costano 0,50 $ nei test possono raggiungere i 50.000 $/mese a 100K esecuzioni. L’orchestratore effettua molteplici chiamate LLM per la scomposizione e l’aggregazione oltre a ogni chiamata dei worker. Alla scala, l’overhead domina il costo dei worker.

Mitigazioni

  • Definire contratti di interfaccia espliciti tra orchestratore e worker
  • Richiedere output strutturati dai worker (schemi JSON, risposte tipizzate)
  • Limitare i budget dei sotto-compiti (limiti di token, limiti di passi) per prevenire costi fuori controllo
  • Valutare una variante gerarchica (vedi Pattern 4) quando il numero di worker supera i 5

Pattern 2: Sequential Pipeline

Come Funziona

Sequential Pipeline è la catena lineare con stato condiviso — una sequenza predefinita di agenti con ordine deterministico, in cui ogni fase trasforma o arricchisce i dati e li passa al successivo. Non c’è diramazione runtime; l’ordine di esecuzione è fisso al momento della progettazione, rendendo il pattern altamente prevedibile ma inflessibile.

graph LR I[Input] --> A1[Agent 1
stage A] A1 --> A2[Agent 2
stage B] A2 --> A3[Agent 3
stage C] A3 --> O[Output]

Quando Usarlo

  • Flussi di lavoro di elaborazione documenti (ingestione → estrazione → validazione → output)
  • Pipeline di generazione di contenuti (ricerca → bozza → editing → pubblicazione)
  • Verifica della conformità (generazione → controllo → revisione → approvazione)
  • Flussi di lavoro di arricchimento dati e ETL

Esempio del mondo reale: Il flusso di lavoro per studi legali di Microsoft Azure utilizza pipeline sequenziali per la generazione di contratti: bozza → revisione → contrassegnature → finale.

Come Fallisce

Propagazione degli errori. Un output errato nella fase 1 si propaga a valle senza possibilità di backtracking. Un’allucinazione nella fase di ricerca produce una bozza difettosa, che l’editor rifinisce in un output finale sicuro ma errato.

Overhead di coordinazione. Una pipeline a 4 agenti aggiunge circa 950 ms di overhead di coordinazione rispetto a 500 ms di tempo di elaborazione. Si sta pagando 3x per lo stesso risultato se la specializzazione non è richiesta. Il consumo di token si somma: 29.000 token in una pipeline a 4 agenti contro 10.000 per un singolo agente che svolge lo stesso lavoro.

Nessuna diramazione condizionale. La pipeline non può adattarsi in base ai risultati intermedi. Se la fase 2 scopre che l’input è malformato, non ha un meccanismo per segnalare alla fase 1 di riprovare — deve o fallire o produrre un output degradato.

Mitigazioni

  • Inserire gate di qualità tra le fasi (agenti di validazione leggeri che controllano l’output prima di passarlo a valle)
  • Aggiungere loop di rielaborazione per le fasi che possono riprovare — motori di workflow durevoli come Temporal gestiscono la semantica di retry in modo affidabile
  • Mantenere le pipeline a un massimo di 3-4 fasi; oltre quel limite, considerare orchestrator-worker per la diramazione condizionale

Pattern 3: Fan-Out / Fan-In

Come Funziona

Fan-Out / Fan-In è esecuzione parallela con aggregazione. Un dispatcher instrada il lavoro a più agenti che operano simultaneamente, quindi un collector aggrega i loro risultati tramite voting, merging ponderato o sintesi LLM. Gli agenti operano indipendentemente durante l’esecuzione e non comunicano tra loro — l’unico confine condiviso è il collector.

graph TD D[Dispatcher] --> AA[Agent A] D --> AB[Agent B] D --> AC[Agent C] AA --> C[Collector
merge] AB --> C AC --> C

Quando Usarlo

  • Analisi multiprospettica in cui punti di vista diversi sono preziosi
  • Revisione del codice concorrente (più revisori in parallelo)
  • 4 o più compiti indipendenti che possono essere scomposti in anticipo
  • Carichi di lavoro in cui il tempo reale (wall-clock time) conta più dell’efficienza dei token

Metrica chiave: Il fan-out riduce il tempo reale del 75% rispetto all’esecuzione sequenziale. Quattro agenti che operano in parallelo completano nel tempo di uno.

Come Fallisce

Limiti di velocità dell’API. Il carico collettivo supera la capacità anche se gli agenti individuali restano entro i limiti. Cinque agenti che effettuano ciascuno 10 richieste al minuto possono superare un limite di 40 RPM che un singolo agente rispetterebbe.

Condizioni di gara quadratiche. I conflitti di stato condiviso scalano come N(N-1)/2. Con 5 agenti, sono 10 potenziali conflitti. Con 10 agenti, sono 45. La gestione dello stato diventa la complessità dominante.

Allucinazione di aggregazione. La sintesi LLM può inventare un consenso. Se l’Agente A dice “sì” e l’Agente B dice “no”, l’aggregatore potrebbe produrre “forse” — un punto di media allucinato che nessuno degli agenti ha suggerito. Richiede una risoluzione esplicita dei conflitti, non solo una sintesi.

Mitigazioni

  • Utilizzare meccanismi di voting espliciti piuttosto che sintesi libera
  • Implementare il rate limiting a livello dispatcher
  • Mantenere stato separato per ogni worker; eseguire il merge nel collector
  • Impostare un numero massimo di agenti (5-8) per mantenere le condizioni di gara gestibili

Pattern 4: Hierarchical

Come Funziona

Hierarchical è delegazione strutturata ad albero con più livelli — un manager di livello superiore delega a supervisori di livello intermedio, che a loro volta delegano a worker di livello foglia. Ogni livello aggiunge un strato di astrazione: strategia in cima, tattica in mezzo ed esecuzione nelle foglie. Le finestre di contesto sono gestite in modo indipendente a ogni livello, quindi nessun singolo agente deve contenere l’intero problema nel contesto.

graph TD TM[Top Manager] --> SA[Supervisor A] TM --> SB[Supervisor B] TM --> SC[Supervisor C] SA --> W1[Worker 1] SB --> W2[Worker 2] SC --> W3[Worker 3]

Quando Usarlo

  • Compiti aziendali complessi multi-dominio che richiedono 20+ agenti
  • Audit di codebase su larga scala in cui diversi moduli richiedono specialisti diversi
  • Elaborazione di massa di documenti (migliaia di documenti in più categorie)
  • Compiti in cui la finestra di contesto di un singolo agente non può contenere l’intero problema

Vantaggio chiave: I sistemi gerarchici scalano in modo logaritmico. Ogni manager gestisce un numero limitato di subordinati, quindi aggiungere worker non aumenta linearmente l’overhead di coordinazione.

Come Fallisce

Accumulazione di latenza. Ogni livello aggiunge latenza. Una gerarchia a 3 livelli richiede almeno 6-12 secondi minimi, accumulati per livello. Il top manager attende tutti i supervisori, che aspettano tutti i worker.

Perdita di informazioni. La sintesi tra i livelli è con perdita di dati (lossy). Un supervisore sintetizza l’output dei worker per il top manager, perdendo dettagli che potrebbero essere critici per la decisione finale.

Isolamento del fallimento del ramo. Un fallimento in un ramo non si propaga agli altri — il che è buono per la tolleranza ai guasti ma cattivo per la coerenza. Diverse branche potrebbero raggiungere conclusioni contraddittorie che il top manager non può risolvere.

Mitigazioni

  • Impostare requisiti di sintesi espliciti per ogni livello
  • Implementare la validazione incrociata tra i rami nel top manager
  • Mantenere la profondità della gerarchia a un massimo di 2-3 livelli
  • Usare output strutturati a ogni livello per ridurre la perdita di informazioni

Pattern 5: Swarm

Come Funziona

Swarm è coordinazione emergente decentralizzata senza autorità centrale. Agenti autonomi prendono decisioni locali basate su stato condiviso (una blackboard) o segnali ambientali, senza un orchestratore che dirige il flusso. Gli agenti scoprono i compiti disponibili, li reclamano e pubblicano i risultati nello spazio condiviso. La coordinazione è emergente — il sistema si auto-organizza attorno al lavoro disponibile, simile a come le api navigano verso una nuova arnia senza un coordinatore centrale.

graph TB SB[Shared Blackboard
tasks · results · observations] AA[Agent A] <--> SB AB[Agent B] <--> SB AC[Agent C] <--> SB AD[Agent D] <--> SB AE[Agent E] <--> SB AF[Agent F] <--> SB

Quando Usarlo

  • Flussi di ricerca in cui il percorso di ricerca ottimale è sconosciuto
  • Raccolta di intelligence competitiva attraverso più fonti
  • Web scraping su larga scala con scoperta dinamica dei target
  • Esplorazione parallela di ipotesi in domini scientifici o analitici

Vantaggio chiave: Uno sciame di 50 agenti di ricerca può esplorare 50 ipotesi in parallelo senza alcun coordinatore centrale che pianifichi la ricerca. Il sistema si auto-organizza attorno al lavoro disponibile.

Come Fallisce

Incubo di debugging. Senza un flusso di controllo centrale, il tracciamento dei fallimenti richiede tracing distribuito e riproduzione della blackboard. Non è possibile seguire un singolo percorso di esecuzione — è necessario ricostruire il comportamento emergente dai log.

Nessuna garanzia transazionale. I pattern swarm non possono applicare un ordine rigoroso o coerenza transazionale. Se serve che l’Agente A completi prima che l’Agente B inizi, uno swarm è il pattern sbagliato.

Condizioni di terminazione. Come fa lo sciame a sapere quando fermarsi? Senza criteri di terminazione espliciti, gli agenti possono continuare all’infinito, consumando potenza di calcolo e generando rendimenti decrescenti.

Mitigazioni

  • Implementare condizioni di terminazione esplicite (basate su tempo, conteggio dei risultati o convergenza)
  • Usare una blackboard con entry versionate per tracciare i cambi di stato
  • Aggiungere un agente di monitoraggio che osserva il comportamento dello sciame e può intervenire
  • Impostare budget a livello di agente (passi massimi, token massimi) per prevenire esecuzioni fuori controllo — i dispatcher in stile Kanban forniscono pattern pratici di rate-limit e concorrenza per deploy swarm self-hosted

Pattern 6: Mesh

Come Funziona

Mesh è comunicazione peer-to-peer diretta con connessioni persistenti — gli agenti comunicano tra loro tramite canali espliciti e predefiniti anziché attraverso un hub centrale. Il grafo di comunicazione è tipicamente definito al momento del deployment, quindi l’Agente A sa di aver bisogno dell’Agente B per le query al database e dell’Agente C per la logica di autenticazione. Quando quei peer attraversano servizi, team o vendor separati, il layer di trasporto cambia; vedere Implementare i pattern quando gli agenti attraversano i confini qui sotto.

graph LR A[Agent A] --- B[Agent B] A --- C[Agent C] B --- C

Quando Usarlo

  • Ragionamento collaborativo in cui gli agenti devono condividere stato intermedio
  • Sistemi di coding multi-agente (loop planner ↔ coder ↔ tester)
  • Raffinamento iterativo di artefatti in cui più specialisti contribuiscono
  • Scenari di negoziazione in cui gli agenti rappresentano diversi stakeholder

Vantaggio chiave: Ideale per il raffinamento iterativo. Gli agenti possono passare risultati parziali avanti e indietro, costruendo sul lavoro l’uno dell’altro senza un aggregatore centrale.

Come Fallisce

Esplosione combinatoria. Il numero di connessioni scala come N(N-1)/2. Con 3 agenti, sono 3 connessioni. Con 8 agenti, sono 28. È meglio limitarlo a 3-8 agenti fortemente accoppiati.

Dipendenze circolari. L’Agente A chiama l’Agente B, che chiama l’Agente C, che chiama l’Agente A. Senza rilevamento dei cicli, i pattern mesh possono entrare in loop infiniti.

Complessità di debugging. Il routing non deterministico rende quasi impossibile il tracciamento dei fallimenti. Quando l’output è sbagliato, è necessario ricostruire quali agenti hanno comunicato con quali, in che ordine.

Mitigazioni

  • Definire il grafo di comunicazione al momento del deployment (non a runtime)
  • Implementare il rilevamento dei cicli con limiti massimi di hop
  • Usare il message passing con conferma esplicita
  • Aggiungere un circuit breaker che termina le catene di comunicazione dopo N hop

Implementare i pattern quando gli agenti attraversano i confini

Scegliere una topologia di orchestrazione e scegliere come gli agenti comunicano sono decisioni separate. I sei pattern sopra descrivono come fluisce il lavoro — chi delega a chi, se le fasi vengono eseguite in parallelo, se i peer parlano direttamente. Non prescrivono se quegli agenti risiedono in un singolo processo Python, in un cluster Kubernetes o in tre prodotti SaaS di vendor.

I sistemi multi-agente in-process — grafi LangGraph, crew CrewAI, chat di gruppo AutoGen in un singolo repository — mantengono la coordinazione all’interno di un solo runtime. Il message passing è fatto di chiamate di funzione o stato condiviso. Si ottiene un’iterazione veloce, un debugging semplice e nessun confine di rete da proteggere. È il default giusto finché non si ha una ragione concreta per separare gli agenti in servizi di deployment indipendenti.

Serve un protocollo di wire al confine quando gli agenti sono di proprietà di team diversi, operano su framework diversi o devono essere individuabili senza ri-deployare la chiamata. È lì che A2A vs MCP: Gli Agenti AI hanno davvero bisogno di entrambi i protocolli? diventa il punto decisionale: scoperta standardizzata tramite Agent Cards, ciclo di vita dei compiti e scambio di artefatti tra servizi che non condividono memoria, più un framework per quando quel overhead vale la pena rispetto al restare in-process con solo MCP.

Mappare i pattern al deployment

La topologia scelta continua a contare anche quando gli agenti sono servizi separati. Non ogni pattern si mappa chiaramente ad A2A cross-boundary; alcuni restano interni per natura.

Pattern Stesso runtime / framework Cross-boundary (A2A)
Orchestrator-Worker Delega in-process tramite archi del grafo L’assistente primario delega ad Agent Cards specializzate
Sequential Pipeline Fasi cablate in un grafo di runtime unico Raro — le fasi sono solitamente collocate insieme per la latenza
Fan-Out / Fan-In Worker paralleli sotto un singolo orchestratore Poco comune a meno che i worker non siano già servizi separati
Hierarchical Grafi annidati in un singolo processo Agenti di livello dipartimentale come peer A2A sotto un top orchestrator
Swarm Blackboard condivisa, un processo Inusuale cross-boundary — stato condiviso e governance sono più difficili
Mesh Archi di grafo custom in-process Caso d’uso primario A2A — peer tra team, vendor o framework

Orchestrator-Worker e Hierarchical sono le forme cross-boundary più comuni in produzione: un orchestratore orientato all’utente scopre specialisti e traccia i compiti delegati. Mesh diventa la soluzione naturale quando nessun hub singolo dovrebbe possedere il routing — ad esempio, un agente di coding che parla direttamente con un agente di test e un agente di revisione di sicurezza di proprietà di team diversi.

Mesh attraverso confini di proprietà

Quando i partecipanti di mesh attraversano confini di proprietà, gli archi di grafo in-process diventano invii di task A2A. Ogni peer pubblica una Agent Card che descrive le sue abilità, i requisiti di autenticazione e il suo endpoint. I chiamanti scoprono le capacità a runtime o da un registro curato anziché hard-codare gli URL nella configurazione dell’applicazione.

Due stili di deployment competono qui. Grafo predefinito al momento del deployment mantiene la mesh prevedibile: l’Agente A è configurato per chiamare l’Agente B e C, e A2A gestisce il formato di wire e lo stato del task. Scoperta a runtime consente agli orchestratori di scegliere specialisti da un registro quando le abilità o i vendor cambiano, al costo di più parti mobili e governance più rigorosa. La maggior parte dei team inizia con un grafo predefinito e aggiunge la scoperta quando il catalogo di agenti cresce oltre ciò che i file di configurazione possono gestire.

A2A non rimuove le modalità di fallimento della mesh dalla sezione sopra. La crescita combinatoria delle connessioni, i passaggi circolari e il debugging opaco si applicano ancora — semplicemente accadono su HTTP anziché su code in-memory. Mantenere il rilevamento dei cicli e i limiti massimi di hop nell’orchestratore o nel gateway. Il lavoro delegato di lunga durata dovrebbe usare task ID e follow-up asincrono anziché bloccare ogni hop; A2A Streaming e Task Asincroni per Flussi di Lavoro di Agenti di Lunga Durata copre SSE, webhook push e pause input_required a quel confine.

L’identità, l’autorizzazione con scope e le tracce di audit diventano obbligatorie una volta che i peer sono servizi separati. Sicurezza degli Agenti A2A e MCP: Identità, Delega e Tracce di Audit copre gateway, token di delega e cosa registrare a ogni hop.

Modalità di fallimento specifiche per agenti cross-boundary

Tre problemi emergono spesso quando i pattern di orchestrazione lasciano il confine del processo:

Delega circolare tra servizi. L’Agente A del team uno delega all’Agente B del team due, che delega di nuovo ad A o a un terzo agente che alla fine chiama A. Le mitigazioni dalla sezione Mesh — limiti di hop, rilevamento dei cicli, circuit breaker — devono essere applicate nel gateway o nell’orchestratore, non date per scontate perché A2A fornisce messaggi strutturati.

Esplosione di costi nascosta attraverso le catene di delega. Ogni hop A2A può invocare un LLM, strumenti e ulteriore sub-delega. Una topologia che sembrava economica in-process può moltiplicare la spesa di token quando ogni specialista è una chiamata API a fatturazione. Tracciare il costo per task ID e per hop; la sezione Controllo dei Costi sopra si applica direttamente alle catene cross-boundary.

Proprietà non chiara della risposta finale. Quando tre agenti di due vendor contribuiscono ad artefatti, utenti e revisori hanno bisogno di sapere quale agente (e quale modello e strumenti sottostanti) ha prodotto l’output che vedono. Propagare i task ID genitoriali, registrare le catene di delega e trattare la provenienza degli artefatti come un campo di osservabilità di prima classe — non un ripensamento quando qualcosa va storto.

Dove andare a seguire

Questa sezione fa da ponte tra topologia di orchestrazione e scelta del protocollo. Per profondità su ogni layer:


Il Framework Decisionale

Parti dal pattern più semplice che si adatta al tuo problema. La maggior parte dei team sovra-progetta verso topologie multi-agente molto prima che l’approccio single-agent sia stato genuinamente esaurito.

Passo 1: Caratterizza il Tuo Problema

Caratteristica del Problema Pattern Raccomandato
Scomposizione del compito nota, specialisti chiari Orchestrator-Worker
Sequenza fissa, nessuna diramazione necessaria Sequential Pipeline
Sotto-compiti indipendenti, bisogno di parallelismo Fan-Out / Fan-In
Complesso, multi-dominio, 20+ agenti Hierarchical
Esplorazione, spazio di ricerca sconosciuto Swarm
Raffinamento collaborativo, comunicazione peer Mesh

Passo 2: Stima i Tuo Vincoli

Vincolo Pattern da Evitare
Bassa latenza (< 2 secondi) Hierarchical, Mesh
Ordine rigoroso richiesto Swarm, Fan-Out
Punto di responsabilità singolo Swarm, Mesh
Necessità di alta tolleranza ai guasti Orchestrator-Worker, Sequential
Vincolato al budget Fan-Out (parallelo = più token)
Debugging complesso richiesto Swarm, Mesh

Passo 3: Inizia Single-Agent

Il loop canonico dell’agente — un singolo agente con strumenti, ragionamento e iterazione — è ancora il default giusto per agenti a uso generale. Architettura di un Assistente AI copre la fondazione a cinque strati su cui i sistemi single-agent si costruiscono, e vale la pena padroneggiare quella fondazione prima di aggiungere la coordinazione multi-agente. Nota che i sistemi multi-agente sono anche fondamentalmente diversi dal routing multi-modello; per quest’ultimo, vedere Progettazione di Sistemi Multi-Modello, che copre i pattern sequenziali, paralleli e ensemble applicati alla selezione del modello piuttosto che alla coordinazione degli agenti.

Passa al multi-agente solo quando la misurazione dice che devi:

  • La finestra di contesto del singolo agente è insufficiente
  • Il compito richiede parallelismo genuino (il tempo reale conta)
  • La specializzazione fornisce un miglioramento di qualità misurabile
  • Il costo dell’approccio single-agent supera l’overhead multi-agente

Una versione più leggera di questa escalation è già presente negli strumenti di coding individuali: i subagent di Claude Code delegano compiti isolati e intensivi in contesto a un sub-agente con scope limitato all’interno di uno strumento, senza il costo di coordinazione cross-process dei pattern sopra — vale la pena esaurirlo prima di ricorrere a un framework di orchestrazione completo.

Per lavoro in background e agenti proattivi — pianificazione, esecuzione basata su code, loop di polling durevoli — vedere Agenti di Polling negli Assistenti AI: 11 Pattern di Implementazione, che complementa i pattern di orchestrazione multi-agente con il layer di pianificazione sottostante.


Modalità di Fallimento: La Tassonomia MAST

La ricerca da NeurIPS 2025 (MAST — Multi-Agent System Failure Taxonomy) ha analizzato oltre 1.600 tracce di esecuzione attraverso sette popolari framework multi-agente. I fallimenti si distribuiscono in tre categorie radice:

1. Ambiguità nella Specificazione (33% dei fallimenti)

Gli agenti fraintendono i ruoli, duplicano il lavoro o saltano la verifica perché le loro istruzioni sono sottospecificate.

Soluzione: Usa schemi di specificazione. Definisci descrizioni di ruolo esplicite, confini dei compiti e formati di output per ogni agente. Gli schemi strutturati (JSON, modelli Pydantic) battono le istruzioni in linguaggio naturale.

2. Collasso della Coordinazione (33% dei fallimenti)

Gli agenti comunicano usando protocolli non strutturati, portando a perdita di messaggi, condizioni di gara e passaggi circolari.

Soluzione: Implementa protocolli di coordinazione strutturati. Usa message passing tipizzato, meccanismi di conferma e condizioni di terminazione esplicite.

3. Lacune nella Verifica (33% dei fallimenti)

Nessuna validazione indipendente degli output degli agenti. Gli agenti si fidano l’uno dell’output dell’altro senza verifica, permettendo agli errori di propagarsi.

Soluzione: Aggiungi agenti di validazione indipendente. Usa un modello separato o un passo di verifica per validare gli output prima di accettarli. Questo è il pattern maker-checker.


Controllo dei Costi: Il Moltiplicatore Nascosto

I sistemi multi-agente hanno una struttura di costi che scala in modo non lineare:

Pattern Moltiplicatore di Costo (vs singolo agente)
Orchestrator-Worker 2-3x (orchestratore + worker)
Sequential Pipeline 3-4x (ogni fase paga il costo token completo)
Fan-Out / Fan-In 4-5x (tutti gli agenti corrono completamente)
Hierarchical 3-5x (dipende dalla profondità)
Swarm 2-10x (dipende dalla convergenza)
Mesh 3-6x (dipende dal numero di iterazioni)

Strategie di ottimizzazione dei costi:

  1. Usa modelli più economici per i worker. L’orchestratore ha bisogno di capacità di ragionamento; i worker possono usare modelli più piccoli e veloci.
  2. Limita i budget di esecuzione. Imposta token massimi, passi massimi e tempo massimo per ogni agente.
  3. Implementa la terminazione precoce. Fermare gli agenti che hanno chiaramente fallito o avuto successo.
  4. Cache del contesto condiviso. Usa il prefix caching (vLLM, SGLang RadixAttention) per evitare di ricalcolare i system prompt condivisi.
  5. Monitora il costo per-agente. Traccia il consumo di token per agente, non solo il costo totale. Identifica gli agenti più costosi e ottimizzali per primi.

Per un trattamento più approfondito delle strategie di ottimizzazione dei token — compressione dei prompt, caching, batching e selezione intelligente dei modelli — vedere Ridurre i Costi LLM: Strategie di Ottimizzazione dei Token. Le tecniche si applicano ugualmente alle chiamate individuali degli agenti all’interno di un sistema multi-agente.


Osservabilità: Vedere Dentro la Scatola Nera

I sistemi multi-agente falliscono in modi che rendono inadeguato il debugging tradizionale. Quando più agenti si coordinano, i problemi si propagano attraverso i confini degli agenti, i percorsi di esecuzione diventano imprevedibili e l’identificazione delle cause radice richiede visibilità nei flussi di lavoro distribuiti. Osservabilità per Sistemi LLM copre l’intero stack di osservabilità di produzione — metriche, tracing distribuito, log, SLO e confronti di tool — su cui i sistemi multi-agente fanno affidamento. Per lo strumentale degli endpoint di inferenza vLLM e llama.cpp con Prometheus e Grafana, vedere Monitorare l’Inferenza LLM in Produzione.

Componenti Essenziali di Osservabilità

1. Tracing Distribuito

Cattura il grafo completo delle interazioni attraverso tutti gli agenti. I tool tradizionali ti mostrano se i componenti sono in esecuzione, ma il debugging multi-agente richiede di capire come i componenti interagiscono e dove la coordinazione va in tilt.

Span chiave da tracciare:

  • Passo di scomposizione dell’orchestratore
  • Esecuzione di ogni worker
  • Passo di aggregazione
  • Comunicazione inter-agente (mesh/swarm)

2. Blackboard Replay

Per i pattern swarm e mesh, mantenere una blackboard versionata che possa essere riprodotta. Questo permette di ricostruire il comportamento emergente che ha portato a un fallimento.

3. Attribuzione dei Costi

Traccia il consumo di token per agente, per passo. Identifica quali agenti stanno consumando risorse sproporzionate.

4. Monitoraggio della Convergenza

Per i pattern swarm e mesh, monitora se il sistema sta convergendo o divergendo. Imposta alert per:

  • Numero di agenti che supera i limiti attesi
  • Numero di iterazioni che supera le soglie
  • Qualità dell’output in degradazione nel tempo

Matrice di Supporto dei Framework

Pattern LangGraph AutoGen CrewAI OpenAI Agents SDK
Orchestrator-Worker ✅ Nativo ✅ Nativo ✅ Nativo ✅ Nativo
Sequential Pipeline ✅ Archi del grafo ✅ Sequenziale ✅ Catene di agenti ✅ Handoff
Fan-Out / Fan-In ✅ Superstep ✅ Chat di gruppo ✅ Crew ✅ Parallelo
Hierarchical ✅ Grafi annidati ✅ Gerarchico ❌ Limitato ❌ Limitato
Swarm ❌ Limitato ✅ Swarm ❌ No ❌ No
Mesh ✅ Grafo custom ✅ Chat di gruppo ❌ No ❌ No

Unire il Tutto: Un Esempio di Produzione

I sistemi del mondo reale raramente si mappano chiaramente su un singolo pattern — la maggior parte dei deployment di produzione combina due o tre approcci, ciascuno che gestisce la parte del flusso di lavoro per cui è meglio adatto. I pattern infrastrutturali come Microservizi Go per l’Orchestrazione AI/ML descrivono la coreografia a livello di servizio e i pattern di saga che sostengono queste architetture ibride alla scala.

Considera un sistema di assistenza clienti che gestisce richieste tecniche:

  1. Triage (Orchestrator-Worker): Ticket in ingresso → orchestratore classifica → instrada allo specialista
  2. Ricerca (Fan-Out): L’agente specializzato esegue query parallele (base di conoscenza, storico ticket, documenti prodotto)
  3. Bozza (Sequential): Ricerca → bozza risposta → controllo qualità
  4. Escalation (Hierarchical): Se il controllo qualità fallisce, escalation all’agente senior → revisione umana

Questo approccio ibrido usa quattro pattern perché nessun singolo pattern gestisce l’intero flusso di lavoro in modo ottimale. L’insight chiave: componi i pattern, non forzare un singolo pattern a fare tutto.


Punti Chiave

  1. Inizia semplice. Single-agent con strumenti è il default. Escala al multi-agente solo quando la misurazione lo richiede.
  2. Abbinare il pattern al problema. Orchestrator-worker per la scomposizione, pipeline per le sequenze fisse, fan-out per il parallelismo, gerarchico per la scala, swarm per l’esplorazione, mesh per la collaborazione.
  3. Aspettati modalità di fallimento. Ogni pattern ha modi specifici in cui va in tilt. Progetta mitigazioni prima di deployare.
  4. I costi scalano in modo non lineare. I sistemi multi-agente moltiplicano il consumo di token. Budgetizza per 2-5x il costo di un singolo agente.
  5. L’osservabilità è indiscutibile. Senza tracing distribuito e attribuzione dei costi, non puoi fare il debug o ottimizzare i sistemi multi-agente.
  6. Componi i pattern. La maggior parte dei sistemi di produzione usa 2-3 pattern combinati. Non forzare un singolo pattern a gestire tutto.

Il panorama multi-agente sta maturando rapidamente. I team che hanno successo sono quelli che capiscono i tradeoff, scelgono i pattern deliberatamente e costruiscono l’osservabilità dal primo giorno.


Domande Frequenti

Cos’è l’orchestrazione multi-agente? L’orchestrazione multi-agente è il modello di coordinazione che governa come più agenti AI lavorano insieme su un compito. Il pattern che scegli — hub-and-spoke, pipeline, fan-out, gerarchico, swarm o mesh — determina la latenza del sistema, la tolleranza ai guasti, il limite di scalabilità e la complessità del debugging. Ogni pattern fa tradeoff diversi e va in tilt in modi diversi.

Quale pattern multi-agente è migliore per i sistemi AI di produzione? La maggior parte dei sistemi di produzione inizia con orchestrator-worker. Fornisce una responsabilità chiara, flusso di controllo debuggabile e costi prevedibili. Escala al gerarchico quando il numero di worker supera 5-8 e al fan-out quando compiti paralleli indipendenti dominano il carico di lavoro. Swarm e mesh restano pattern di nicchia riservati rispettivamente ai flussi di lavoro di esplorazione e alla stretta collaborazione peer.

Perché il 40% dei pilot multi-agente fallisce? Le tre cause radice secondo la tassonomia MAST da NeurIPS 2025 sono l’ambiguità nella specificazione (gli agenti fraintendono i ruoli o saltano i passi di verifica), i collassi della coordinazione (messaging non strutturato porta a perdita di messaggi e passaggi circolari) e le lacune nella verifica (nessuna validazione indipendente degli output degli agenti, permettendo agli errori di propagarsi senza controllo). Ogni categoria rappresenta circa un terzo di tutti i fallimenti attraverso oltre 1.600 tracce di esecuzione analizzate.

Quanto costa di più un sistema multi-agente rispetto a un singolo agente? Aspettati da 2 a 10 volte il costo dei token a seconda del pattern. Orchestrator-worker è il più economico a 2-3x. Fan-out e swarm sono i più costosi a 4-10x perché gli agenti corrono in parallelo e ciascuno consuma un budget token completo indipendentemente. Questi moltiplicatori si sommano alla scala — un flusso di lavoro che costa 0,50 $ nei test può raggiungere 50.000 $ al mese a 100K esecuzioni.

Come si fa il debug di un sistema multi-agente quando qualcosa va storto? Inizia con il tracing distribuito — un trace per esecuzione, con span per ogni chiamata di agente, invocazione di tool e passo di aggregazione. Per i pattern swarm e mesh, implementa la riproduzione della blackboard per poter ricostruire il comportamento emergente dai log. L’attribuzione dei costi per-agente aiuta a identificare quali agenti stanno innescando fallimenti a cascata o spese fuori controllo prima che raggiungano la scala di produzione.

Quando i pattern multi-agente hanno bisogno di A2A invece dell’orchestrazione in-process? Resta in-process quando tutti gli agenti condividono un runtime, un repository e un team. Aggiungi A2A al confine quando gli specialisti sono deployati indipendentemente, di proprietà di team o vendor diversi, o devono essere individuati tramite Agent Cards senza ri-deployare la chiamata. Orchestrator-worker e mesh sono le forme cross-boundary più comuni; vedere Implementare i pattern quando gli agenti attraversano i confini per la tabella di mappatura completa.

Iscriviti

Ricevi nuovi articoli su sistemi, infrastruttura e ingegneria AI.