Questo documento fornisce indicazioni per aiutarti a scegliere un pattern di progettazione per il tuo sistema di AI agentica. I pattern di progettazione degli agenti sono approcci architetturali comuni per creare applicazioni agentiche. Un pattern di progettazione degli agenti offre un framework distinto per organizzare i componenti di un sistema, integrare il modello e orchestrare un singolo agente o più agenti per completare un workflow.
Gli agenti AI sono efficaci per le applicazioni che risolvono problemi a risposta aperta, che potrebbero richiedere un processo decisionale autonomo e una gestione complessa del flusso di lavoro in più passaggi. Gli agenti sono esperti nella risoluzione dei problemi in tempo reale utilizzando dati esterni e nell'automazione di attività che richiedono molte conoscenze. Gli agenti AI sono adatti quando hai bisogno che l'AI completi attività orientate a un obiettivo con un certo grado di autonomia. Per altri casi d'uso, puoi utilizzare applicazioni di AI generativa e assistiva. Per scoprire le differenze tra gli agenti AI e le applicazioni AI non agentiche, consulta Qual è la differenza tra agenti AI, assistenti AI e bot?
Questa guida presuppone che tu abbia una conoscenza di base dei sistemi di AI agentica e di come la loro architettura differisce da quella dei sistemi non agentici, come quelli che utilizzano il ragionamento diretto del modello o la generazione aumentata dal recupero (RAG).
Per un riepilogo delle indicazioni sui pattern degli agenti, consulta la sezione Confrontare i pattern di progettazione più avanti in questo documento.
Panoramica del processo di progettazione
Di seguito sono riportati i passaggi di alto livello per scegliere un pattern di progettazione per il tuo sistema di AI agentica. Questi passaggi sono descritti in dettaglio più avanti in questo documento.
- Definisci i tuoi requisiti: valuta le caratteristiche del tuo workload, tra cui la complessità delle attività, le aspettative di latenza e prestazioni, il budget dei costi e la necessità di intervento umano.
- Esamina i pattern di progettazione degli agenti comuni: scopri i pattern di progettazione comuni in questa guida, che includono sia sistemi con un singolo agente sia sistemi multi-agente.
- Seleziona un pattern: Seleziona il pattern di progettazione appropriato in base alle caratteristiche del tuo carico di lavoro.
Questa procedura non è una decisione una tantum. Devi rivedere periodicamente questi passaggi per perfezionare l'architettura man mano che le caratteristiche del carico di lavoro cambiano, i requisiti si evolvono o diventano disponibili nuove funzionalità Google Cloud .
Definisci i tuoi requisiti
Le domande che seguono non sono elenchi di controllo esaustivi per la pianificazione. Utilizza queste domande come punto di partenza per identificare l'obiettivo principale del tuo sistema di AI agentica e per selezionare il miglior pattern di progettazione.
- Caratteristiche dell'attività: l'attività può essere completata in passaggi del flusso di lavoro predefiniti o è aperta? L'attività deve utilizzare un modello di AI per orchestrare il flusso di lavoro?
- Latenza e prestazioni: devi dare la priorità a risposte rapide o interattive a scapito di accuratezza o risposte di alta qualità? Oppure la tua applicazione può tollerare un ritardo per ottenere un risultato più preciso o completo?
- Costo: qual è il tuo budget per i costi di inferenza? Puoi supportare pattern che richiedono più chiamate al modello per una singola richiesta?
- Intervento umano: la tua attività comporta decisioni importanti, operazioni critiche per la sicurezza o approvazioni soggettive che richiedono un giudizio umano?
Se il tuo workload è prevedibile o altamente strutturato oppure se può essere eseguito con una singola chiamata a un modello di AI, può essere più conveniente esplorare soluzioni non agentiche per il tuo compito. Ad esempio, potresti non aver bisogno di un flusso di lavoro con agenti per attività come riassumere un documento, tradurre un testo o classificare il feedback dei clienti. Per informazioni sulla scelta dei componenti dell'architettura per le applicazioni di AI generativa che non richiedono un'infrastruttura agentica, vedi Scegliere modelli e infrastruttura per la tua applicazione di AI generativa.
Le sezioni seguenti descrivono i pattern di progettazione degli agenti comuni per la creazione di un sistema di AI agentica affidabile ed efficace.
Sistema ad agente singolo
Un sistema con un singolo agente utilizza un modello di AI, un insieme definito di strumenti e un prompt di sistema completo per gestire autonomamente una richiesta dell'utente o per completare un'attività specifica. In questo pattern fondamentale, l'agente si basa sulle capacità di ragionamento del modello per interpretare la richiesta di un utente, pianificare una sequenza di passaggi e decidere quali strumenti utilizzare da un insieme definito. Il prompt di sistema definisce il comportamento dell'agente definendo la sua attività principale, il suo ruolo e le sue operazioni, nonché le condizioni specifiche per l'utilizzo di ogni strumento.
Il seguente diagramma mostra una visione di alto livello di un singolo pattern di agenti:
Un sistema con un singolo agente è ideale per le attività che richiedono più passaggi e l'accesso a dati esterni. Ad esempio, un operatore dell'assistenza clienti deve eseguire una query su un database per trovare lo stato di un ordine oppure un assistente di ricerca deve chiamare le API per riassumere le notizie recenti. Un sistema non agentico non può eseguire queste attività perché non può utilizzare autonomamente gli strumenti o eseguire un piano in più passaggi per sintetizzare una risposta finale.
Se hai appena iniziato a sviluppare agenti, ti consigliamo di iniziare con un solo agente. Quando inizi lo sviluppo dell'agente con un sistema a singolo agente, puoi concentrarti sul perfezionamento della logica di base, del prompt e delle definizioni degli strumenti dell'agente prima di aggiungere componenti architetturali più complessi.
Il rendimento di un singolo agente può essere meno efficace quando utilizza più strumenti e quando le attività aumentano di complessità. Potresti notare un aumento della latenza, una selezione o un utilizzo errato dello strumento o un mancato completamento dell'attività. Spesso puoi mitigare questi problemi perfezionando il processo di ragionamento dell'agente con tecniche come il pattern Reason and Act (ReAct). Tuttavia, se il tuo flusso di lavoro richiede a un agente di gestire diverse responsabilità distinte, queste tecniche potrebbero non essere sufficienti. Per questi casi, valuta la possibilità di utilizzare un sistema multi-agente, che può migliorare la resilienza e le prestazioni delegando competenze specifiche ad agenti specializzati.
Sistemi multi-agente
Un sistema multi-agente coordina più agenti specializzati per risolvere un problema complesso che un singolo agente non può gestire facilmente. Il principio fondamentale è decomporre un obiettivo di grandi dimensioni in sotto-attività più piccole e assegnare ciascuna sotto-attività a un agente dedicato con un'abilità specifica. Questi agenti interagiscono poi tramite flussi di lavoro collaborativi o gerarchici per raggiungere l'obiettivo finale. I pattern multi-agente forniscono un design modulare che può migliorare la scalabilità, l'affidabilità e la manutenibilità del sistema complessivo rispetto a un singolo agente con un prompt monolitico.
In un sistema multi-agente, ogni agente richiede un contesto specifico per svolgere il proprio compito in modo efficace. Il contesto può includere documentazione, preferenze storiche, link pertinenti, cronologia delle conversazioni o eventuali vincoli operativi. Il processo di gestione di questo flusso di informazioni è chiamato ingegneria del contesto. L'ingegneria del contesto include strategie come l'isolamento del contesto per un agente specifico, la persistenza delle informazioni in più passaggi o la compressione di grandi quantità di dati per migliorare l'efficienza.
La creazione di un sistema multi-agente richiede ulteriori considerazioni in termini di valutazione, sicurezza, affidabilità e costi rispetto a un sistema ad agente singolo. Ad esempio, i sistemi multi-agente devono implementare controlli di accesso precisi per ogni agente specializzato, progettare un sistema di orchestrazione solido per garantire una comunicazione affidabile tra gli agenti e gestire l'aumento dei costi operativi derivanti dal sovraccarico computazionale dell'esecuzione di più agenti. Per un'architettura di riferimento di esempio per creare un sistema multi-agente, vedi Sistemi di AI multi-agente in Google Cloud.
Pattern sequenziale
Il pattern sequenziale multi-agente esegue una serie di agenti specializzati in un ordine lineare predefinito in cui l'output di un agente funge da input diretto per l'agente successivo. Questo pattern utilizza un agente del flusso di lavoro sequenziale che opera su una logica predefinita senza dover consultare un modello di AI per l'orchestrazione dei suoi subagenti.
Il seguente diagramma mostra una visualizzazione di alto livello di un pattern sequenziale multi-agente:
Utilizza il pattern sequenziale per processi altamente strutturati e ripetibili in cui la sequenza di operazioni non cambia. Ad esempio, una pipeline di elaborazione dei dati potrebbe utilizzare questo pattern per fare in modo che un agente di estrazione dei dati recuperi prima i dati non elaborati, poi li passi a un agente di pulizia dei dati per la formattazione, che a sua volta passa i dati puliti a un agente di caricamento dei dati per salvarli in un database.
Il pattern sequenziale può ridurre la latenza e i costi operativi rispetto a un pattern che utilizza un modello di AI per orchestrare il flusso di lavoro delle attività. Tuttavia, questa efficienza ha un costo in termini di flessibilità. La struttura rigida e predefinita della pipeline rende difficile l'adattamento a condizioni dinamiche o l'omissione di passaggi non necessari, il che può causare un'elaborazione inefficiente o portare a una latenza cumulativa più elevata se un passaggio non necessario è lento.
Pattern parallelo
Nel pattern parallelo multi-agente, noto anche come pattern simultaneo, più subagenti specializzati eseguono un'attività o delle sottoattività in modo indipendente contemporaneamente. Gli output dei subagenti vengono poi sintetizzati per produrre la risposta consolidata finale. Simile a un pattern sequenziale, il pattern parallelo utilizza un agente del flusso di lavoro parallelo per gestire come e quando vengono eseguiti gli altri agenti senza dover consultare un modello di AI per orchestrare i relativi subagenti.
Il seguente diagramma mostra una visualizzazione di alto livello di un pattern parallelo multi-agente:
Utilizza il pattern parallelo quando le attività secondarie possono essere eseguite contemporaneamente per ridurre la latenza o raccogliere prospettive diverse, ad esempio raccogliere dati da fonti diverse o valutare più opzioni contemporaneamente. Ad esempio, per analizzare il feedback dei clienti, un agente parallelo potrebbe distribuire una singola voce di feedback a quattro agenti specializzati contemporaneamente: un agente di analisi del sentiment, un agente di estrazione delle parole chiave, un agente di classificazione e un agente di rilevamento dell'urgenza. Un agente finale raccoglie questi quattro output in un'unica analisi completa del feedback.
Il pattern parallelo può ridurre la latenza complessiva rispetto a un approccio sequenziale perché può raccogliere informazioni diverse da più fonti contemporaneamente. Tuttavia, questo approccio introduce compromessi in termini di costi e complessità. L'esecuzione di più agenti in parallelo può aumentare l'utilizzo immediato delle risorse e il consumo di token, il che comporta costi operativi più elevati. Inoltre, il passaggio di raccolta richiede una logica complessa per sintetizzare risultati potenzialmente in conflitto, il che aumenta il sovraccarico di sviluppo e manutenzione del sistema.
Pattern loop
Il pattern di agente loop multi-agente esegue ripetutamente una sequenza di subagenti specializzati finché non viene soddisfatta una condizione di terminazione specifica. Questo pattern utilizza un agente del flusso di lavoro loop che, come altri agenti del flusso di lavoro, opera su una logica predefinita senza consultare un modello di AI per l'orchestrazione. Una volta che tutti i subagenti hanno completato le loro attività, l'agente di loop valuta se è soddisfatta una condizione di uscita. La condizione può essere un numero massimo di iterazioni o uno stato personalizzato. Se la condizione di uscita non è soddisfatta, l'agente di loop riavvia la sequenza di subagenti. Puoi implementare un pattern di loop in cui la condizione di uscita viene valutata in qualsiasi punto del flusso. Utilizza il pattern di loop per le attività che richiedono miglioramenti iterativi o autocorrezione, ad esempio la generazione di contenuti e la revisione da parte di un agente critico fino a quando non soddisfano uno standard di qualità.
Il seguente diagramma mostra una visione di alto livello di un pattern di loop multi-agente:
Il pattern dell'agente loop fornisce un modo per creare workflow complessi e iterativi. Consente agli agenti di perfezionare il proprio lavoro e continuare l'elaborazione fino al raggiungimento di una qualità o di uno stato specifico. Tuttavia, il compromesso principale di questo pattern è il rischio di un loop infinito. Se la condizione di terminazione non è definita correttamente o se i subagenti non riescono a produrre lo stato necessario per l'interruzione, il ciclo può essere eseguito indefinitamente. Ciò può comportare costi operativi eccessivi, un elevato consumo di risorse e potenziali blocchi del sistema.
Rivedere e criticare il pattern
Il pattern di revisione e critica multi-agente, noto anche come pattern di generatore e critico, migliora la qualità e l'affidabilità dei contenuti generati utilizzando due agenti specializzati, in genere in un flusso di lavoro sequenziale. Il pattern di revisione e critica è un'implementazione del pattern dell'agente loop.
Nel pattern di revisione e critica, un agente generatore crea un output iniziale, ad esempio un blocco di codice o un riepilogo di un documento. Successivamente, un agente critico valuta questo output in base a un insieme predefinito di criteri, come l'accuratezza fattuale, il rispetto delle regole di formattazione o le linee guida per la sicurezza. In base alla valutazione, il critico può approvare i contenuti, rifiutarli o restituirli al generatore con un feedback per la revisione.
Il seguente diagramma mostra una visione generale di un pattern di revisione e critica multi-agente:
Questo pattern è adatto per le attività in cui gli output devono essere molto accurati o devono rispettare vincoli rigorosi prima di essere presentati a un utente o utilizzati in un processo downstream. Ad esempio, in un flusso di lavoro di generazione di codice, un agente generatore potrebbe scrivere una funzione per soddisfare la richiesta di un utente. Il codice generato viene poi passato a un agente critico che funge da revisore della sicurezza. Il compito dell'agente critico è controllare il codice rispetto a una serie di vincoli, ad esempio eseguire la scansione per individuare vulnerabilità di sicurezza o verificare che superi tutti i test delle unità, prima che il codice venga approvato per l'uso.
Il pattern di revisione e critica può migliorare la qualità, l'accuratezza e l'affidabilità dell'output perché aggiunge un passaggio di verifica dedicato. Tuttavia, questa garanzia di qualità comporta un costo diretto in termini di aumento della latenza e delle spese operative. Il workflow richiede almeno una chiamata aggiuntiva al modello per la valutazione del critico. Se il processo include cicli di revisione in cui i contenuti vengono restituiti per essere perfezionati, sia la latenza che i costi si accumulano a ogni iterazione.
Pattern di perfezionamento iterativo
Il pattern di perfezionamento iterativo utilizza un meccanismo di loop per migliorare progressivamente un output in più cicli. Il pattern di perfezionamento iterativo è un'implementazione del pattern dell'agente loop.
In questo pattern, uno o più agenti lavorano all'interno di un ciclo per modificare un risultato memorizzato nello stato della sessione durante ogni iterazione. Il processo continua finché l'output non soddisfa una soglia di qualità predefinita o non raggiunge un numero massimo di iterazioni, il che impedisce loop infiniti.
Il seguente diagramma mostra una visione di alto livello di un pattern di perfezionamento iterativo multi-agente:
Questo pattern è adatto per attività di generazione complesse in cui l'output è difficile da ottenere in un unico passaggio. Esempi di queste attività includono la scrittura e il debug di un pezzo di codice, lo sviluppo di un piano dettagliato in più parti o la stesura e la revisione di un documento in formato lungo. Ad esempio, in un flusso di lavoro di scrittura creativa, un agente potrebbe generare una bozza di un post del blog, valutarne il flusso e il tono e poi riscriverla in base alla valutazione. Questo processo si ripete in un ciclo finché il lavoro dell'agente non soddisfa uno standard di qualità predefinito o finché la ripetizione non raggiunge un numero massimo di iterazioni.
Il pattern di perfezionamento iterativo può produrre output molto complessi o raffinati che sarebbero difficili da ottenere in un unico passaggio. Tuttavia, il meccanismo di loop aumenta direttamente la latenza e i costi operativi a ogni ciclo. Questo pattern aggiunge anche complessità architetturale, perché richiede condizioni di uscita progettate con cura, come una valutazione della qualità o un limite massimo di iterazioni, per evitare costi eccessivi o un'esecuzione incontrollata.
Pattern coordinatore
Il pattern di coordinamento multi-agente utilizza un agente centrale, il coordinatore, per dirigere un workflow. Il coordinatore analizza e suddivide la richiesta di un utente in sottoattività, quindi invia ogni sottoattività a un agente specializzato per l'esecuzione. Ogni agente specializzato è un esperto in una funzione specifica, ad esempio l'interrogazione di un database o la chiamata di un'API.
Una caratteristica distintiva del pattern del coordinatore è l'utilizzo di un modello di AI per orchestrare e indirizzare dinamicamente le attività. Al contrario, il pattern parallelo si basa su un flusso di lavoro hardcoded per distribuire le attività per l'esecuzione simultanea senza la necessità di orchestrazione del modello di AI.
Il seguente diagramma mostra una visione generale di un pattern di coordinatore multi-agente:
Utilizza il pattern del coordinatore per automatizzare i processi aziendali strutturati che richiedono il routing adattivo. Ad esempio, un agente dell'assistenza clienti può fungere da coordinatore. L'agente coordinatore analizza la richiesta per determinare se si tratta di una richiesta di stato dell'ordine, di reso del prodotto o di rimborso. In base al tipo di richiesta, il coordinatore indirizza l'attività all'agente specializzato appropriato.
Il pattern del coordinatore offre flessibilità rispetto a flussi di lavoro più rigidi e predefiniti. Utilizzando un modello per indirizzare le attività, il coordinatore può gestire una gamma più ampia di input e adattare il flusso di lavoro in fase di runtime. Tuttavia, questo approccio introduce anche dei compromessi. Poiché il coordinatore e ogni agente specializzato si basano su un modello per il ragionamento, questo pattern comporta più chiamate al modello rispetto a un sistema con un singolo agente. Sebbene il pattern del coordinatore possa portare a un ragionamento di qualità superiore, aumenta anche la velocità effettiva dei token, i costi operativi e la latenza complessiva rispetto a un sistema con un singolo agente.
Pattern di scomposizione gerarchica delle attività
Il pattern di decomposizione gerarchica delle attività multi-agente organizza gli agenti in una gerarchia multilivello per risolvere problemi complessi che richiedono una pianificazione approfondita. Il pattern di decomposizione gerarchica delle attività è un'implementazione del pattern del coordinatore. Un agente principale di primo livello, o radice, riceve un'attività complessa ed è responsabile della scomposizione dell'attività in diverse sottoattività più piccole e gestibili. L'agente principale delega ogni sotto-attività a un subagente specializzato a un livello inferiore. Questo processo può ripetersi su più livelli, con agenti che decompongono progressivamente le attività assegnate finché non sono abbastanza semplici da essere eseguite direttamente da un agente worker al livello più basso.
Il seguente diagramma mostra una visione di alto livello di un pattern di decomposizione gerarchica delle attività multiagente:
Utilizza il pattern di decomposizione gerarchica delle attività per problemi ambigui e aperti che richiedono un ragionamento in più fasi, come le attività che comportano ricerca, pianificazione e sintesi. Ad esempio, per completare un progetto di ricerca complesso, un agente coordinatore scompone l'obiettivo di alto livello in più attività, come la raccolta di informazioni, l'analisi dei risultati e la sintesi del report finale. L'agente coordinatore delega quindi queste attività a subagenti specializzati, come un agente per la raccolta dei dati, un agente di analisi e un agente che scrive report, per l'esecuzione o l'ulteriore scomposizione.
Il pattern di decomposizione gerarchica delle attività è ideale per risolvere problemi altamente complessi e ambigui perché li scompone sistematicamente in sotto-attività gestibili. Questo pattern può generare risultati più completi e di qualità superiore rispetto a pattern più semplici. Tuttavia, questa funzionalità avanzata introduce compromessi significativi. La struttura multilivello aggiunge una notevole complessità architetturale, il che rende il sistema più difficile da progettare, eseguire il debug e gestire. I più livelli di delega e ragionamento comportano anche un numero elevato di chiamate al modello, il che aumenta significativamente sia la latenza complessiva sia i costi operativi rispetto ad altri pattern.
Pattern Sciame
Il pattern multi-agent swarm utilizza un approccio di comunicazione collaborativo e all-to-all. In questo pattern, più agenti specializzati collaborano per perfezionare in modo iterativo una soluzione a un problema complesso.
Il seguente diagramma mostra una visione generale di un pattern di swarm multiagente:
Il pattern swarm utilizza un agente dispatcher per indirizzare una richiesta utente a un gruppo collaborativo di agenti specializzati. L'agente dispatcher interpreta la richiesta e determina quale agente dello sciame è più adatto per iniziare l'attività. In questo pattern, ogni agente può comunicare con tutti gli altri agenti, il che consente loro di condividere i risultati, criticare le proposte e basarsi sul lavoro degli altri per perfezionare in modo iterativo una soluzione. Qualsiasi agente dello sciame può trasferire l'attività a un altro agente che ritiene più adatto a gestire il passaggio successivo oppure può comunicare la risposta finale all'utente tramite l'agente coordinatore.
In genere, uno sciame non ha un supervisore o un agente coordinatore centrale per mantenere il processo in linea. L'agente dispatcher non orchestra il flusso di lavoro dell'agente, a differenza del pattern del coordinatore. L'agente dispatcher facilita la comunicazione tra gli agenti secondari dello sciame e l'utente. Per assicurarti che lo sciame alla fine si fermi e restituisca un risultato, devi definire una condizione di uscita esplicita. Questa condizione è spesso un numero massimo di iterazioni, un limite di tempo o il raggiungimento di un obiettivo specifico, ad esempio il raggiungimento di un consenso.
Utilizza il pattern Swarm per problemi ambigui o molto complessi che traggono vantaggio dal dibattito e dal perfezionamento iterativo. Ad esempio, la progettazione di un nuovo prodotto potrebbe coinvolgere un agente di ricerche di mercato, un agente di ingegneria e un agente di modellazione finanziaria. Gli agenti condividerebbero le idee iniziali, discuterebbero i compromessi tra funzionalità e costi e convergerebbero collettivamente su una specifica di progettazione finale che bilanci tutti i requisiti in competizione.
Il pattern a sciame simula un team collaborativo di esperti, pertanto può produrre soluzioni creative e di qualità eccezionalmente elevata. Tuttavia, rappresenta il pattern multi-agente più complesso e costoso da implementare. La mancanza di un agente che utilizzi un modello di AI per l'orchestrazione può introdurre il rischio di loop improduttivi o l'impossibilità di convergere su una soluzione. Pertanto, devi progettare una logica sofisticata per gestire la complessa comunicazione tra agenti, controllare il flusso di lavoro iterativo e gestire i costi operativi e la latenza significativi associati all'esecuzione di una conversazione dinamica e multi-turn tra più agenti.
Pattern Reason and Act (ReAct)
Il pattern ReAct è un approccio che utilizza il modello di AI per inquadrare i suoi processi di pensiero e le sue azioni come una sequenza di interazioni in linguaggio naturale. In questo pattern, l'agente opera in un ciclo iterativo di pensiero, azione e osservazione finché non viene soddisfatta una condizione di uscita.
- Pensiero: il modello ragiona sull'attività e decide cosa fare dopo. Il modello valuta tutte le informazioni raccolte per determinare se la richiesta dell'utente ha ricevuto una risposta completa.
- Azione: in base al suo processo di pensiero, il modello esegue una delle due azioni seguenti:
- Se l'attività non è completata, seleziona uno strumento e poi forma una query per raccogliere ulteriori informazioni.
- Se l'attività è completata, formula la risposta finale da inviare all'utente, terminando il ciclo.
- Osservazione: il modello riceve l'output dallo strumento e salva le informazioni pertinenti nella sua memoria. Poiché il modello salva l'output pertinente, può basarsi su osservazioni precedenti, il che aiuta a evitare che si ripeta o perda il contesto.
Il ciclo iterativo termina quando l'agente trova una risposta definitiva, raggiunge un numero massimo preimpostato di iterazioni o si verifica un errore che gli impedisce di continuare. Questo ciclo iterativo consente all'agente di creare dinamicamente un piano, raccogliere prove e modificare il suo approccio mentre lavora per trovare una risposta finale.
Il seguente diagramma mostra una visione generale del pattern ReAct:
Utilizza il pattern ReAct per attività complesse e dinamiche che richiedono pianificazione e adattamento continui. Ad esempio, considera un agente robotico che deve generare un percorso per passare da uno stato iniziale a uno stato obiettivo:
- Pensiero: il modello ragiona sul percorso ottimale per passare dallo stato attuale allo stato obiettivo. Durante il processo di pensiero, il modello esegue l'ottimizzazione in base a metriche come il tempo o l'energia.
- Azione: il modello esegue il passaggio successivo del piano spostandosi lungo un segmento di percorso calcolato.
- Osservazione: il modello osserva e salva il nuovo stato dell'ambiente. Il modello salva la sua nuova posizione e qualsiasi modifica all'ambiente che percepisce.
Questo ciclo consente all'agente di rispettare i vincoli dinamici, ad esempio evitare nuovi ostacoli o seguire le norme sul traffico, aggiornando costantemente il suo piano in base alle nuove osservazioni. L'agente continua il suo ciclo iterativo finché non raggiunge il suo obiettivo o non si verifica un errore.
Un singolo agente ReAct può essere più semplice ed economico da implementare e gestire rispetto a un complesso sistema multi-agente. Il pensiero del modello fornisce una trascrizione del ragionamento del modello, che aiuta a eseguire il debug. Tuttavia, questa flessibilità introduce dei compromessi. La natura iterativa e in più passaggi del ciclo può comportare una latenza end-to-end più elevata rispetto a una singola query. Inoltre, l'efficacia dell'agente dipende in larga misura dalla qualità del ragionamento del modello di AI. Pertanto, un errore o un risultato fuorviante di uno strumento in una fase di osservazione può propagarsi e causare un errore nella risposta finale.
Pattern human-in-the-loop
Il pattern human-in-the-loop integra i punti di intervento umano direttamente nel flusso di lavoro di un agente. In un checkpoint predefinito, l'agente mette in pausa l'esecuzione e chiama un sistema esterno per attendere che una persona riveda il suo lavoro. Questo pattern consente a una persona di approvare una decisione, correggere un errore o fornire l'input necessario prima che l'agente possa continuare.
Il seguente diagramma mostra una visione di alto livello di un pattern human-in-the-loop:
Utilizza il pattern human-in-the-loop per le attività che richiedono la supervisione umana, un giudizio soggettivo o l'approvazione finale per le azioni critiche. Queste azioni includono l'approvazione di una transazione finanziaria di grandi dimensioni, la convalida del riepilogo di un documento sensibile o la fornitura di feedback soggettivi sui contenuti creativi generati. Ad esempio, a un agente potrebbe essere assegnato il compito di anonimizzare un set di dati dei pazienti per la ricerca. L'agente identificherebbe e oscurerebbe automaticamente tutte le informazioni sanitarie protette, ma si fermerebbe a un checkpoint finale. Quindi, attende che un responsabile della conformità umano convalidi manualmente il set di dati e ne approvi il rilascio, il che contribuisce a garantire che non vengano esposti dati sensibili.
Il pattern Human-in-the-Loop migliora la sicurezza e l'affidabilità inserendo il giudizio umano nei punti decisionali critici del flusso di lavoro. Questo pattern può aggiungere una complessità architettonica significativa perché richiede di creare e gestire il sistema esterno per l'interazione con l'utente.
Pattern di logica personalizzata
Il pattern di logica personalizzata offre la massima flessibilità nella progettazione del flusso di lavoro. Questo approccio consente di implementare una logica di orchestrazione specifica che utilizza codice, ad esempio istruzioni condizionali, per creare flussi di lavoro complessi con più percorsi di ramificazione.
Il seguente diagramma illustra un esempio di utilizzo di un pattern di logica personalizzata per acquisire una procedura di rimborso:
Nel diagramma precedente, il seguente è il flusso di lavoro dell'agente per l'agente di rimborso del cliente di esempio:
- L'utente invia una query all'agente per i rimborsi dei clienti che funge da agente coordinatore.
- La logica personalizzata del coordinatore richiama innanzitutto un agente di verifica parallelo, che invia simultaneamente due subagenti: l'agente di verifica dell'acquirente e l'agente di idoneità al rimborso.
- Una volta raccolti i risultati, l'agente coordinatore esegue uno strumento per
verificare se la richiesta è idonea per un rimborso.
- Se l'utente è idoneo, il coordinatore indirizza l'attività
a un agente di elaborazione dei rimborsi, che chiama lo strumento
process_refund
. - Se l'utente non è idoneo, il coordinatore indirizza l'attività a un flusso sequenziale separato, a partire dall'agente del credito dello store e dall'agente di decisione del credito di elaborazione.
- Se l'utente è idoneo, il coordinatore indirizza l'attività
a un agente di elaborazione dei rimborsi, che chiama lo strumento
- Il risultato del percorso intrapreso viene inviato all'agente di risposta finale per formulare la risposta per l'utente.
L'esempio di agente di rimborso clienti richiede una soluzione unica per l'orchestrazione a livello logico, che va oltre gli approcci strutturati offerti da altri pattern. Questo flusso di lavoro combina i pattern perché esegue un controllo parallelo e poi esegue un ramo condizionale personalizzato che indirizza a due processi downstream completamente diversi. Questo tipo di flusso di lavoro complesso e con pattern misti è il caso d'uso ideale per il pattern di logica personalizzata.
Utilizza il pattern di logica personalizzata quando hai bisogno di un controllo granulare sull'esecuzione dell'agente o quando il tuo flusso di lavoro non rientra in uno degli altri pattern descritti in questo documento. Tuttavia, questo approccio aumenta la complessità dello sviluppo e della manutenzione. Sei responsabile della progettazione, dell'implementazione e del debug dell'intero flusso di orchestrazione, che richiede un maggiore impegno di sviluppo e può essere più soggetto a errori rispetto all'utilizzo di un pattern predefinito supportato da uno strumento di sviluppo di agenti come Agent Development Kit (ADK).
Per informazioni sugli agenti personalizzati e su come implementare la logica personalizzata utilizzando l'ADK, vedi Agenti personalizzati.
Confronta i pattern di progettazione
La scelta di un pattern di agenti è una decisione architettonica fondamentale. Ogni pattern offre diversi compromessi in termini di flessibilità, complessità e prestazioni. Per determinare il pattern appropriato per il tuo workload, prendi in considerazione i pattern di progettazione nelle sezioni seguenti.
Workflows deterministici
I flussi di lavoro deterministici includono attività prevedibili e sequenziali e hanno un percorso del flusso di lavoro chiaramente definito dall'inizio alla fine. I passaggi delle attività sono noti in anticipo e la procedura non cambia molto da un'esecuzione all'altra. Di seguito sono riportati i pattern di progettazione degli agenti per i workflow deterministici:
Caratteristiche del workload | Pattern di progettazione dell'agente |
---|---|
|
Pattern sequenziale multi-agente |
|
Pattern parallelo multiagente |
|
Pattern di perfezionamento iterativo multi-agente |
Workflows che richiedono l'orchestrazione dinamica
Workflows che richiedono un'orchestrazione dinamica includono problemi complessi in cui gli agenti devono determinare il modo migliore per procedere. Il sistema di AI agentica deve pianificare, delegare e coordinare dinamicamente le attività senza un copione predefinito. Di seguito sono riportati i pattern di progettazione degli agenti per i workflow che richiedono un'orchestrazione autonoma e dinamica:
Caratteristiche del workload | Pattern di progettazione dell'agente |
---|---|
|
Pattern con un solo agente |
|
Pattern di coordinamento multi-agente |
|
Pattern di scomposizione gerarchica delle attività multi-agente |
|
Pattern multi-agent swarm |
Workflows che prevedono iterazioni
Workflows che prevedono l'iterazione includono attività in cui l'output finale viene ottenuto attraverso cicli di perfezionamento, feedback e miglioramento. Di seguito sono riportati i pattern di progettazione degli agenti per i workflow che prevedono l'iterazione:
Caratteristiche del workload | Pattern di progettazione dell'agente |
---|---|
|
Pattern ReAct |
|
Pattern di loop multi-agente |
|
Pattern di revisione e critica multi-agente |
|
Pattern di perfezionamento iterativo multi-agente |
Workflows con requisiti speciali
Workflows con requisiti speciali includono attività che non seguono i pattern di autonomia comuni. Le tue attività possono includere una logica aziendale unica o richiedere il giudizio e l'intervento umano in punti critici. Il tuo sistema di AI agentica è una macchina creata su misura per uno scopo specifico. Di seguito sono riportati i pattern di progettazione degli agenti per i workflow con requisiti speciali:
Caratteristiche del workload | Pattern di progettazione dell'agente |
---|---|
|
Pattern Human-in-the-Loop |
|
Pattern di logica personalizzata |
Passaggi successivi
- Scopri di più su come creare e gestire sistemi multi-agente utilizzando le primitive ADK.
- Scopri come ospitare app e agenti di AI su Cloud Run.
- Scopri di più su Agentic Design Patterns: A Hands-On Guide to Building Intelligent Systems.
- Scopri come creare un agente con Agent Development Kit.
- Scopri di più su come creare sistemi di AI multi-agente in Google Cloud.
- Per ulteriori architetture di riferimento, diagrammi e best practice, esplora il Cloud Architecture Center.
Collaboratori
Autore: Samantha He | Technical Writer
Altri collaboratori:
- Abdul Saleh | Software Engineer
- Amina Mansour | Head of Cloud Platform Evaluations Team
- Amit Maraj | Developer Relations Engineer
- Casey West | Architecture Advocate, Google Cloud
- Jack Wotherspoon | Developer Advocate
- Joe Fernandez | Staff Technical Writer
- Joe Shirey | Cloud Developer Relations Manager
- Karl Weinmeister | Head of Cloud Product Developer Relations
- Kumar Dhanagopal | Sviluppatore di soluzioni cross-prodotto
- Lisa Shen | Senior Outbound Product Manager, Google Cloud
- Mandy Grover | Head of Architecture Center
- Mark Lu | Technical Writer
- Megan O'Keefe | Developer Advocate
- Olivier Bourgeois | Developer Relations Engineer
- Shir Meir Lador | Engineering Manager, Developer Relations
- Vlad Kolesnikov | Developer Relations Engineer