Questo documento fornisce indicazioni per aiutarti a scegliere i componenti architetturali per le tue applicazioni di AI agentica in Google Cloud. Descrive come valutare le caratteristiche dell'applicazione e del workload per scegliere un prodotto o un servizio appropriato che soddisfi al meglio le tue esigenze. Il processo di progettazione di un'architettura di AI agentica è iterativo. Dovresti rivalutare periodicamente la tua architettura man mano che cambiano le caratteristiche del tuo workload, che si evolvono i tuoi requisiti o che diventano disponibili nuovi prodotti e funzionalità di Google Cloud .
Gli agenti AI sono efficaci per le applicazioni che risolvono problemi aperti, che potrebbero richiedere un processo decisionale autonomo e una gestione complessa del workflow in più fasi. Gli agenti sono esperti nella risoluzione di problemi in tempo reale utilizzando dati esterni e nell'automatizzazione di attività che richiedono molte conoscenze. Queste funzionalità consentono agli agenti di fornire un valore aziendale maggiore rispetto alle funzionalità assistive e generative di un modello di AI.
Puoi utilizzare gli agenti AI per problemi deterministici con passaggi predefiniti. Tuttavia, altri approcci possono essere più efficienti ed economici. Ad esempio, non hai 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 su soluzioni di AI alternative non basate su agenti, consulta le seguenti risorse:
- Qual è la differenza tra agenti AI, assistenti AI e bot?
- Scegliere modelli e infrastruttura per la tua applicazione di AI generativa
Panoramica dell'architettura dell'agente
Un agente è un'applicazione che raggiunge un obiettivo elaborando l'input, eseguendo ragionamenti con gli strumenti disponibili e intraprendendo azioni in base alle sue decisioni. Un agente utilizza un modello di AI come motore di ragionamento principale per automatizzare attività complesse. L'agente utilizza un insieme di strumenti che consentono al modello di AI di interagire con sistemi esterni e origini dati. Un agente può utilizzare un sistema di memoria per mantenere il contesto e imparare dalle interazioni. L'obiettivo di un'architettura agentica è creare un sistema autonomo in grado di comprendere l'intento di un utente, creare un piano in più passaggi ed eseguirlo utilizzando gli strumenti disponibili.
Il seguente diagramma mostra una panoramica generale dei componenti dell'architettura di un sistema agentico:
L'architettura del sistema basata su agenti include i seguenti componenti:
- Framework front-end: una raccolta di componenti, librerie e strumenti predefiniti che utilizzi per creare l'interfaccia utente (UI) della tua applicazione.
- Framework di sviluppo dell'agente: i framework e le librerie che utilizzi per creare e strutturare la logica dell'agente.
- Strumenti dell'agente: la raccolta di strumenti, come API, servizi e funzioni, che recuperano dati ed eseguono azioni o transazioni.
- Memoria dell'agente: il sistema utilizzato dall'agente per archiviare e richiamare le informazioni.
- Modelli di progettazione degli agenti: approcci architettonici comuni per strutturare l'applicazione agentica.
- Runtime dell'agente: l'ambiente di calcolo in cui viene eseguita la logica dell'applicazione dell'agente.
- Modelli di AI: il motore di ragionamento principale che alimenta le capacità decisionali del tuo agente.
- Runtime del modello: l'infrastruttura che ospita e gestisce il tuo modello di AI.
Le sezioni seguenti forniscono un'analisi dettagliata dei componenti per aiutarti a prendere decisioni su come creare la tua architettura. I componenti che scegli influenzeranno le prestazioni, la scalabilità, il costo e la sicurezza dell'agente. Questo documento si concentra sui componenti architetturali essenziali che utilizzi per creare ed eseguire il deployment della logica di ragionamento ed esecuzione principale di un agente. Argomenti come i framework di sicurezza dell'AI responsabile e la gestione dell'identità degli agenti non rientrano nell'ambito di questo documento.
Framework frontend
Il framework front-end è una raccolta di componenti, librerie e strumenti predefiniti che utilizzi per creare la UI della tua applicazione con agenti. Il framework frontend che scegli definisce i requisiti per il backend. Un'interfaccia semplice per una demo interna potrebbe richiedere solo un'API HTTP sincrona, mentre un'applicazione di livello di produzione richiede un backend che supporti protocolli di streaming e una gestione dello stato solida.
Prendi in considerazione le seguenti categorie di framework:
- Framework per prototipazione e strumenti interni: per lo sviluppo rapido, le demo interne e le applicazioni proof-of-concept, scegli framework che diano la priorità all'esperienza e alla velocità degli sviluppatori. Questi framework in genere prediligono un modello semplice e sincrono chiamato modello richiesta-risposta. Un modello richiesta-risposta ti consente di creare un'interfaccia utente funzionale con codice minimo e un backend più semplice rispetto a un framework di produzione. Questo approccio è ideale per testare rapidamente la logica degli agenti e le integrazioni degli strumenti, ma potrebbe non essere adatto ad applicazioni altamente scalabili e rivolte al pubblico che richiedono interazioni in tempo reale. I framework comuni in questa categoria includono Mesop e Gradio.
- Framework di produzione: per applicazioni scalabili, reattive e ricche di funzionalità per utenti esterni, scegli un framework che consenta componenti personalizzati. Questi framework richiedono un'architettura di backend in grado di supportare un'esperienza utente moderna. Un framework di produzione deve includere il supporto dei protocolli di streaming, una progettazione API stateless e un sistema di memoria esterno e solido per gestire lo stato della conversazione in più sessioni utente. I framework comuni per le applicazioni di produzione includono Streamlit, React e il Flutter AI Toolkit.
Per gestire la comunicazione tra questi framework e il tuo agente AI, puoi utilizzare il protocollo di interazione agente-utente (AG-UI). AG-UI è un protocollo aperto che consente agli agenti AI di backend di interagire con il tuo framework frontend. AG-UI indica al framework frontend quando eseguire il rendering della risposta dell'agente, aggiornare lo stato dell'applicazione o attivare un'azione lato client. Per creare applicazioni AI interattive, combina AG-UI con Agent Development Kit (ADK). Per informazioni sull'ADK, vai alla sezione successiva "Framework di sviluppo di agenti".
Framework di sviluppo di agenti
I framework di sviluppo di agenti sono librerie che semplificano il processo di creazione, test e deployment di applicazioni di AI agentica. Questi strumenti di sviluppo forniscono componenti e astrazioni predefiniti per le funzionalità principali degli agenti, tra cui cicli di ragionamento, memoria e integrazione di strumenti.
Per accelerare lo sviluppo di agenti in Google Cloud, ti consigliamo di utilizzare ADK. ADK è un framework open source, basato su opinioni e modulare che fornisce un livello elevato di astrazione per la creazione e l'orchestrazione di flussi di lavoro da semplici attività a sistemi multi-agente complessi.
ADK è ottimizzato per i modelli Gemini e Google Cloud, ma è progettato per la compatibilità con altri framework. ADK supporta altri modelli di AI e runtime, quindi puoi utilizzarlo con qualsiasi modello o metodo di deployment. Per i sistemi multi-agente, ADK supporta l'interazione tramite stati di sessione condivisi, delega basata su modelli per indirizzare le attività tra gli agenti e invocazione esplicita che consente a un agente di chiamare un altro agente come funzione o strumento.
Per aiutarti a iniziare rapidamente, ADK fornisce esempi di codice in Python, Java e Go che mostrano una serie di casi d'uso in più settori. Sebbene molti di questi esempi mettano in evidenza i flussi conversazionali, l'ADK è adatto anche alla creazione di agenti autonomi che eseguono attività di backend. Per questi casi d'uso non interattivi, scegli un pattern di progettazione dell'agente che eccelle nell'elaborazione di una singola richiesta autonoma e che implementa una gestione degli errori efficace.
Sebbene tu possa scegliere di utilizzare un framework di AI generativa, come Genkit, ti consigliamo di utilizzare l'ADK. Genkit fornisce primitive che puoi utilizzare per sviluppare la tua architettura di agenti. Tuttavia, un framework di agenti dedicato come ADK fornisce strumenti più specializzati.
Strumenti per gli agenti
L'efficacia di un agente dipende dalla sua capacità di interagire con sistemi esterni tramite strumenti. Gli strumenti dell'agente sono funzioni o API disponibili per il modello di AI e che l'agente utilizza per migliorare l'output e consentire l'automazione delle attività. Quando colleghi un agente AI a sistemi esterni, gli strumenti trasformano l'agente da un semplice generatore di testo in un sistema in grado di automatizzare attività complesse e in più passaggi.
Per attivare le interazioni con gli strumenti, scegli uno dei seguenti pattern di utilizzo degli strumenti:
| Caso d'uso | Pattern di utilizzo dello strumento |
|---|---|
| Devi eseguire un'attività comune come completare una ricerca sul web, eseguire un calcolo o un codice ed è necessario accelerare lo sviluppo iniziale. | Strumenti integrati |
| Vuoi creare un sistema modulare o multi-agente che richieda strumenti interoperabili e riutilizzabili. | Model Context Protocol (MCP) |
| Devi gestire, proteggere e monitorare un numero elevato di strumenti basati su API su scala aziendale. | Piattaforma di gestione delle API |
| Devi eseguire l'integrazione con un'API interna o di terze parti specifica che non dispone di un server MCP. | Strumenti per le funzioni personalizzate |
Quando selezioni gli strumenti per il tuo agente, valutali in base alle loro capacità funzionali e alla loro affidabilità operativa. Dai la priorità agli strumenti che sono osservabili, facili da eseguire il debug e che includono una gestione degli errori efficace. Queste funzionalità ti aiutano a garantire di poter monitorare le azioni e risolvere rapidamente gli errori. Inoltre, valuta la capacità dell'agente di selezionare lo strumento giusto per completare correttamente le attività assegnate.
Strumenti integrati
ADK fornisce diversi strumenti integrati che sono integrati direttamente nel runtime dell'agente. Puoi chiamare questi strumenti come funzioni senza configurare protocolli di comunicazione esterni. Questi strumenti forniscono funzionalità comuni, tra cui l'accesso a informazioni in tempo reale dal web, l'esecuzione di codice a livello di programmazione in un ambiente sicuro, il recupero di informazioni da dati aziendali privati per implementare RAG e l'interazione con dati strutturati in database cloud. Gli strumenti integrati funzionano insieme a tutti gli strumenti personalizzati che crei.
MCP
Per consentire l'interazione tra i componenti del sistema agentico, devi stabilire protocolli di comunicazione chiari. MCP è un protocollo aperto che fornisce un'interfaccia standardizzata per consentire agli agenti di accedere e utilizzare gli strumenti, i dati e gli altri servizi necessari.
MCP separa la logica di ragionamento principale dell'agente dall'implementazione specifica dei suoi strumenti, in modo simile a come una porta hardware standard consente a diverse periferiche di connettersi a un dispositivo. MCP semplifica l'integrazione degli strumenti perché fornisce un elenco crescente di connettori predefiniti e un modo coerente per creare integrazioni personalizzate. La flessibilità di integrare gli strumenti promuove l'interoperabilità tra diversi modelli e strumenti.
Puoi connetterti a un server MCP remoto, se disponibile, oppure puoi ospitare il tuo server MCP. Quando ospiti il tuo server MCP, hai il controllo completo su come esporre API proprietarie o di terze parti ai tuoi agenti. Per ospitare il tuo server MCP personalizzato, esegui il deployment come applicazione containerizzata su Cloud Run o GKE.
Piattaforma di gestione delle API
Una piattaforma di gestione delle API è un sistema centralizzato che consente di proteggere, monitorare e controllare i servizi interni o esterni tramite le API. Una piattaforma di gestione delle API fornisce una posizione centralizzata per catalogare tutte le API della tua organizzazione, semplifica il modo in cui esponi i dati e fornisce l'osservabilità tramite il monitoraggio dell'utilizzo.
Per gestire gli strumenti basati su API del tuo agente su larga scala aziendale su Google Cloud, ti consigliamo di utilizzare l'hub delle API Apigee. L'hub API consente agli agenti di connettersi istantaneamente ai dati tramite chiamate HTTP dirette, connettori predefiniti, API personalizzate registrate nell'hub o accesso diretto alle origini dati. Google Cloud Questo approccio offre ai tuoi agenti accesso immediato alle informazioni di cui hanno bisogno senza la complessità di creare pipeline personalizzate di caricamento e integrazione dei dati.
Una piattaforma di gestione delle API e un protocollo di comunicazione come MCP risolvono problemi architetturali diversi. Un protocollo di comunicazione standardizza il formato di interazione tra l'agente e lo strumento, il che garantisce che i componenti siano riutilizzabili e sostituibili. Al contrario, una piattaforma di gestione delle API governa il ciclo di vita e la sicurezza dell'endpoint API, gestendo attività come autenticazione,limitazione di frequenzaza e monitoraggio. Questi pattern sono complementari. Ad esempio, un agente può utilizzare MCP per comunicare con uno strumento e questo strumento può a sua volta essere un endpoint API sicuro che l'hub API gestisce e protegge.
Strumento Funzione personalizzata
Uno strumento di funzione offre nuove funzionalità a un agente. Puoi scrivere uno strumento di funzione personalizzato per fornire al tuo agente funzionalità specializzate, ad esempio per l'integrazione con un'API esterna o un sistema aziendale proprietario. La scrittura di uno strumento di funzione personalizzato è il pattern più comune per estendere le capacità di un agente oltre ciò che gli strumenti integrati possono offrire.
Per creare uno strumento di funzione personalizzato, scrivi una funzione nel tuo linguaggio di programmazione preferito e poi fornisci una descrizione chiara e in linguaggio naturale del suo scopo, dei parametri e dei valori restituiti. Il modello dell'agente utilizza questa descrizione per ragionare su quando è necessario lo strumento, quali input fornire e come interpretare l'output per completare la richiesta di un utente.
Puoi anche creare uno strumento di funzione personalizzata che implementa una funzione agente come strumento. Una funzione di agente come strumento espone un agente come funzione richiamabile che un altro agente può richiamare. Questa tecnica consente di creare sistemi multi-agente complessi in cui un agente può coordinare e delegare attività specializzate ad altri agenti specializzati. Per ulteriori informazioni sui pattern di progettazione degli agenti e sul coordinamento dell'orchestration multi-agente, consulta la sezione sui pattern di progettazione degli agenti più avanti in questo documento.
Memoria dell'agente
La capacità di un agente di ricordare le interazioni passate è fondamentale per fornire un'esperienza conversazionale coerente e utile. Per creare agenti stateful e sensibili al contesto, devi implementare meccanismi per la memoria a breve termine e a lungo termine. Le sezioni seguenti esplorano le scelte di progettazione e i servizi che puoi utilizzare per implementare la memoria a breve e lungo termine per il tuo agente. Google Cloud
Memoria a breve termine
La memoria a breve termine consente a un agente di mantenere il contesto all'interno di una singola conversazione in corso. Per implementare la memoria a breve termine, devi gestire sia la sessione sia il relativo stato.
- Sessione: una sessione è il thread conversazionale tra un utente e l'agente, dall'interazione iniziale alla fine del dialogo.
- Stato: Lo stato è l'insieme dei dati che l'agente utilizza e raccoglie all'interno di una sessione specifica. I dati di stato raccolti includono la cronologia dei messaggi che l'utente e l'agente si sono scambiati, i risultati di eventuali chiamate di strumenti e altre variabili di cui l'agente ha bisogno per comprendere il contesto della conversazione.
Di seguito sono riportate le opzioni per implementare la memoria a breve termine con l'ADK:
- Archiviazione in memoria: per lo sviluppo, i test o le applicazioni semplici che vengono eseguite su una singola istanza, puoi archiviare lo stato della sessione direttamente nella memoria dell'applicazione. L'agente utilizza una struttura di dati, ad esempio un dizionario o un oggetto, per archiviare un elenco di coppie chiave-valore e aggiorna questi valori durante la sessione. Tuttavia, quando utilizzi l'archiviazione in memoria, lo stato della sessione non è persistente. Se l'applicazione viene riavviata, perde tutta la cronologia delle conversazioni.
- Gestione dello stato esterno: per le applicazioni di produzione che richiedono scalabilità e affidabilità, ti consigliamo di creare un'applicazione agente stateless e di gestire lo stato della sessione in un servizio di archiviazione esterno. In questa architettura, ogni volta che l'applicazione dell'agente riceve una richiesta, recupera lo stato attuale della conversazione dallo store esterno, elabora il nuovo turno e salva lo stato aggiornato nello store. Questo design ti consente di scalare orizzontalmente l'applicazione perché qualsiasi istanza può gestire la richiesta di qualsiasi utente. Le scelte comuni per la gestione dello stato esterno includono Memorystore for Redis, Firestore o sessioni di Vertex AI Agent Engine.
Memoria a lungo termine
Memoria a lungo termine fornisce all'agente una knowledge base persistente che esiste in tutte le conversazioni per i singoli utenti. La memoria a lungo termine consente all'agente di recuperare e utilizzare informazioni esterne, imparare dalle interazioni passate e fornire risposte più accurate e pertinenti.
Di seguito sono riportate le opzioni per implementare la memoria a lungo termine con ADK:
- Archiviazione in memoria: per lo sviluppo e i test, puoi archiviare lo stato della sessione direttamente nella memoria dell'applicazione. Questo approccio è
semplice da implementare, ma non è persistente. Se l'applicazione viene riavviata,
perde la cronologia delle conversazioni. In genere, questo pattern viene implementato utilizzando un provider in memoria all'interno di un framework di sviluppo, ad esempio
InMemoryMemoryServiceincluso in ADK per i test. - Archiviazione esterna: per le applicazioni di produzione, gestisci la knowledge base dell'agente in un servizio di archiviazione esterno e persistente. Un servizio di archiviazione esterno garantisce che le conoscenze dell'agente siano durature, scalabili e accessibili in più istanze dell'applicazione. Utilizza Memory Bank per l'archiviazione a lungo termine con qualsiasi runtime dell'agente su Google Cloud.
Pattern di progettazione degli agenti
I pattern di progettazione degli agenti sono approcci architetturali comuni per creare applicazioni basate su agenti. Questi pattern offrono un framework distinto per organizzare i componenti di un sistema, integrare il modello di AI e orchestrare un singolo agente o più agenti per eseguire un workflow. Per determinare quale approccio è il migliore per il tuo flusso di lavoro, devi considerare la complessità e il flusso di lavoro delle tue attività, i requisiti di latenza, prestazioni e costi.
Un sistema con un singolo agente si basa sulle capacità di ragionamento di un modello per interpretare la richiesta di un utente, pianificare una sequenza di passaggi e decidere quali strumenti utilizzare. Questo approccio è un punto di partenza efficace che ti consente di concentrarti sul perfezionamento della logica di base, dei prompt e delle definizioni degli strumenti prima di aggiungere complessità architetturale. Tuttavia, le prestazioni di un singolo agente possono peggiorare man mano che le attività e il numero di strumenti aumentano di complessità.
Per problemi complessi, un sistema multi-agente coordina più agenti specializzati per raggiungere un obiettivo che un singolo agente non può gestire facilmente. Questo design modulare può migliorare la scalabilità, l'affidabilità e la manutenibilità del sistema. Tuttavia, introduce anche ulteriori considerazioni su valutazione, sicurezza e costi rispetto a un sistema con un singolo agente.
Quando sviluppi un sistema multi-agente, devi implementare controlli di accesso precisi per ogni agente specializzato, progettare un sistema di orchestrazione efficace per garantire una comunicazione affidabile tra gli agenti e gestire l'aumento dei costi operativi derivanti dal sovraccarico di calcolo dell'esecuzione di più agenti. Per facilitare la comunicazione tra gli agenti, utilizza il protocollo Agent2Agent (A2A) con ADK. A2A è un protocollo standard aperto che consente agli agenti AI di comunicare e collaborare su diverse piattaforme e framework, indipendentemente dalle tecnologie sottostanti.
Per saperne di più sui pattern di progettazione degli agenti comuni e su come selezionarne uno in base ai requisiti del tuo workload, consulta Scegliere un pattern di progettazione per il tuo sistema di AI agentica.
Modelli di AI
Le applicazioni agentiche si basano sulle capacità di ragionamento e comprensione di un modello per fungere da orchestratore principale delle attività. Per questo ruolo di agente principale, ti consigliamo di utilizzare Gemini Pro.
I modelli Google, come Gemini, forniscono l'accesso ai modelli proprietari più recenti e potenti tramite un'API gestita. Questo approccio è ideale per ridurre al minimo l'overhead operativo. Al contrario, un modello open source autogestito fornisce il controllo approfondito necessario per il perfezionamento su dati proprietari. I carichi di lavoro con requisiti rigorosi di sicurezza e residenza dei dati richiedono anche un modello self-hosted, perché ti consente di eseguirlo all'interno della tua rete.
Per migliorare le prestazioni dell'agente, puoi modificare le capacità di ragionamento del modello. Modelli come gli ultimi modelli Gemini Pro e Flash sono dotati di un processo di pensiero integrato che migliora il ragionamento e la pianificazione in più passaggi. Per il debug e il perfezionamento, puoi esaminare i riepiloghi dei pensieri del modello o le versioni sintetizzate dei suoi pensieri interni per comprendere il suo percorso di ragionamento. Puoi controllare le capacità di ragionamento del modello regolando il budget di pensiero, ovvero il numero di token di pensiero, in base alla complessità dell'attività. Un budget di pensiero più elevato consente al modello di eseguire ragionamenti e pianificazioni più dettagliati prima di fornire una risposta. Un budget di pensiero più elevato può migliorare la qualità delle risposte, ma potrebbe anche aumentare la latenza e il costo.
Per ottimizzare le prestazioni e i costi, implementa il routing dei modelli per selezionare dinamicamente il modello più appropriato per ogni attività in base alla complessità, al costo o ai requisiti di latenza dell'attività. Ad esempio, puoi indirizzare richieste semplici a un modello linguistico di piccole dimensioni (SLM) per attività strutturate come la generazione di codice o la classificazione del testo e riservare un modello più potente e costoso per il ragionamento complesso. Se implementi il routing dei modelli nella tua applicazione agente, puoi creare un sistema conveniente che mantenga prestazioni elevate.
Google Cloud fornisce l'accesso a un'ampia selezione di modelli Google, modelli partner e modelli aperti che puoi utilizzare nella tua architettura agentica. Per ulteriori informazioni sui modelli disponibili e su come scegliere un modello adatto alle tue esigenze, consulta Model Garden su Vertex AI.
Runtime del modello
Un runtime del modello è l'ambiente che ospita e pubblica il tuo modello di AI e che rende disponibili le sue capacità di ragionamento al tuo agente.
Scegliere un runtime del modello
Per selezionare il runtime migliore quando ospiti i tuoi modelli di AI, segui queste indicazioni:
| Caso d'uso | Runtime del modello |
|---|---|
| Hai bisogno di un'API completamente gestita per pubblicare modelli Gemini, modelli partner, modelli aperti o modelli personalizzati con sicurezza, scalabilità e strumenti di AI generativa di livello aziendale. | Vertex AI |
| Devi eseguire il deployment di un modello containerizzato aperto o personalizzato e dare la priorità alla semplicità e all'efficienza dei costi serverless per il traffico variabile. | Cloud Run |
| Hai bisogno del massimo controllo sull'infrastruttura per eseguire un modello containerizzato aperto o personalizzato su hardware specializzato o per soddisfare requisiti complessi di sicurezza e networking. | GKE |
Le sezioni seguenti forniscono una panoramica dei runtime di esecuzione del modello precedenti, incluse le funzionalità chiave e le considerazioni di progettazione. Questo documento è incentrato su Vertex AI, Cloud Run e GKE. Tuttavia, Google Cloud offre altri servizi che potresti prendere in considerazione per un runtime del modello:
- API Gemini: L'API Gemini è progettata per gli sviluppatori che hanno bisogno di un accesso rapido e diretto ai modelli Gemini senza le funzionalità di governance aziendale spesso richieste da sistemi agentici complessi.
- Compute Engine: Compute Engine è un prodotto Infrastructure as a Service (IaaS) adatto alle applicazioni legacy. Introduce un overhead operativo significativo rispetto ai runtime moderni basati su container.
Per ulteriori informazioni sulle funzionalità che distinguono tutte le opzioni di servizio per i runtime del modello, consulta Infrastruttura di hosting dei modelli.
Vertex AI
Vertex AI fornisce un ambiente serverless completamente gestito che ospita i tuoi modelli di AI. Puoi utilizzare e ottimizzare i modelli Google, i modelli partner e i modelli open source tramite un'API sicura e scalabile. Questo approccio astrae tutta la gestione dell'infrastruttura e ti consente di concentrarti sull'integrazione dell'intelligenza del modello nelle tue applicazioni.
Quando utilizzi Vertex AI come runtime del modello, le funzionalità e le considerazioni chiave includono quanto segue:
- Controllo dell'infrastruttura: un'API completamente gestita per i tuoi modelli. Google gestisce l'infrastruttura sottostante.
- Sicurezza: le impostazioni di sicurezza gestite e le certificazioni di conformità standard sono sufficienti per le tue esigenze. Per fornire protezione per prompt e risposte e per garantire pratiche di AI responsabile, puoi integrare Model Armor in Vertex AI.
- Disponibilità dei modelli: accesso a un'ampia selezione di modelli, inclusi i più recenti modelli Gemini, tramite un'API gestita.
- Costo: modello di prezzi a consumo che si adatta al traffico della tua applicazione. Per ulteriori informazioni, consulta Costo di creazione e deployment di modelli di AI in Vertex AI.
Cloud Run
Cloud Run fornisce un runtime serverless che ospita i tuoi modelli all'interno di container personalizzati. Cloud Run offre un equilibrio tra la semplicità completamente gestita di Vertex AI e il controllo approfondito dell'infrastruttura di GKE. Questo approccio è ideale quando hai bisogno della flessibilità di eseguire il modello in un ambiente containerizzato senza gestire server o cluster.
Quando utilizzi Cloud Run come runtime del modello, le funzionalità e le considerazioni chiave includono quanto segue:
- Controllo dell'infrastruttura: esegui qualsiasi modello in un container personalizzato, che fornisce il controllo completo sull'ambiente software, mentre la piattaforma gestisce l'infrastruttura serverless sottostante.
- Sicurezza: fornisce sicurezza tramite istanze di calcolo effimere e isolate e consente connessioni sicure a risorse private utilizzando il traffico VPC diretto in uscita o un connettore di accesso VPC serverless. Per ulteriori informazioni, consulta Networking privato e Cloud Run.
- Disponibilità del modello: utilizza modelli aperti come Gemma o i tuoi modelli personalizzati. Non puoi ospitare o pubblicare modelli Gemini su Cloud Run.
- Costo: offre un modello di prezzo pay-per-use basato sulle richieste che si riduce a zero, il che lo rende molto conveniente per i modelli con traffico sporadico o variabile. Per maggiori informazioni, consulta la pagina Prezzi di Cloud Run.
GKE
GKE offre il massimo controllo e la massima flessibilità per l'hosting dei tuoi modelli di AI. Per utilizzare questo approccio, esegui i modelli in container su un cluster GKE che configuri e gestisci. GKE è la scelta ideale quando devi eseguire modelli su hardware specializzato, collocarli con le tue applicazioni per una latenza minima o richiedere un controllo granulare su ogni aspetto dell'ambiente di pubblicazione.
Quando utilizzi GKE come runtime del modello, le funzionalità e le considerazioni chiave includono quanto segue:
- Controllo dell'infrastruttura: fornisce il controllo granulare massimo sull'intero ambiente di pubblicazione, incluse le configurazioni dei nodi, gli acceleratori di macchine specializzate e il software specifico per la pubblicazione dei modelli.
- Sicurezza: consente il massimo livello di sicurezza e isolamento dei dati perché ti permette di eseguire i modelli interamente all'interno della tua rete e di applicare criteri di sicurezza Kubernetes granulari. Per filtrare il traffico da e verso un cluster GKE e per proteggere tutte le interazioni con i modelli di AI, puoi integrare Model Armor con GKE .
- Disponibilità del modello: utilizza modelli aperti come Gemma o i tuoi modelli personalizzati. Non puoi ospitare o gestire modelli Gemini su GKE.
- Costo: offre un modello di costi basato sulle risorse di calcolo e cluster sottostanti che utilizzi, il che lo rende altamente ottimizzato per carichi di lavoro prevedibili e di grandi volumi quando utilizzi gli sconti per impegno di utilizzo (CUD). Per ulteriori informazioni, consulta i prezzi di Google Kubernetes Engine.
Runtime dell'agente
Per ospitare ed eseguire il deployment della tua applicazione con agenti, devi scegliere un runtime dell'agente. Questo servizio esegue il codice dell'applicazione, la logica di business e l'orchestrazione che scrivi quando utilizzi un framework di sviluppo di agenti. Da questo runtime, l'applicazione effettua chiamate API ai modelli ospitati e gestiti dal runtime del modello che hai scelto.
Scegliere un runtime dell'agente
Per selezionare il runtime quando ospiti i tuoi agenti AI, segui queste indicazioni:
| Caso d'uso | Runtime dell'agente |
|---|---|
| La tua applicazione è un agente Python e richiede un'esperienza completamente gestita con un overhead operativo minimo. | Vertex AI Agent Engine |
| La tua applicazione è containerizzata e richiede scalabilità serverless basata su eventi con flessibilità del linguaggio. | Cloud Run |
| La tua applicazione è containerizzata, ha requisiti stateful complessi e necessita di una configurazione dell'infrastruttura granulare. | GKE |
Se gestisci già applicazioni su Cloud Run o su GKE, puoi accelerare lo sviluppo e semplificare le operazioni a lungo termine utilizzando la stessa piattaforma per il tuo workload agentico.
Le sezioni seguenti forniscono una panoramica di ogni runtime dell'agente, incluse le funzionalità chiave e le considerazioni di progettazione.
Vertex AI Agent Engine
Vertex AI Agent Engine è un runtime completamente gestito e basato su opinioni che puoi utilizzare per eseguire il deployment, il funzionamento e lo scaling delle applicazioni con agenti. Vertex AI Agent Engine astrae l'infrastruttura sottostante, consentendoti di concentrarti sulla logica dell'agente anziché sulle operazioni.
Di seguito sono riportate le funzionalità e le considerazioni per Vertex AI Agent Engine:
- Flessibilità di linguaggio di programmazione e framework: sviluppa agenti in Python con qualsiasi framework supportato.
- Protocolli di comunicazione: coordina agenti e strumenti che utilizzano MCP e A2A. Vertex AI Agent Engine gestisce in modo efficiente il runtime di questi componenti, ma non supporta l'hosting di server MCP personalizzati.
- Memoria: fornisce funzionalità di memoria gestita integrate,
che eliminano la necessità di configurare database esterni per la memoria dell'agente principale.
Requisito Opzioni disponibili Memoria a breve termine Sessioni di Vertex AI Agent Engine Memoria a lungo termine Memory Bank Ricerca e recupero di database - Scalabilità: si adatta automaticamente per soddisfare le esigenze del tuo workload di agenti, eliminando la necessità di configurazione manuale. Vertex AI Agent Engine è basato su Cloud Run e utilizza la scalabilità automatica delle istanze integrata di Cloud Run per fornire questa scalabilità automatica.
- Osservabilità: fornisce servizi integrati di logging, monitoraggio e tracciamento tramite i servizi Google Cloud Observability.
- Sicurezza: offre affidabilità, scalabilità e conformità di livello aziendale
come segue:
- Identità di servizio integrata per chiamate sicure e autenticate alle API Google Cloud.
- Esegui il codice in una sandbox sicura, isolata e gestita con Vertex AI Agent Engine Code Execution.
- Proteggi i tuoi dati con la tua chiave di crittografia gestita dal cliente (CMEK) in Secret Manager.
- Limita le autorizzazioni IAM e utilizza le regole firewall VPC per impedire chiamate di rete indesiderate.
Per informazioni sulle funzionalità di sicurezza di Vertex AI Agent Engine, consulta Sicurezza enterprise.
Vertex AI Agent Engine accelera il percorso verso la produzione perché fornisce un ambiente gestito e appositamente creato che gestisce molti aspetti complessi quando utilizzi gli agenti, come la gestione del ciclo di vita e del contesto. Vertex AI Agent Engine è meno adatto ai casi d'uso che richiedono un'ampia personalizzazione dell'ambiente di calcolo o che richiedono linguaggi di programmazione diversi da Python. Per i carichi di lavoro che hanno requisiti di sicurezza rigorosi per la gestione delle dipendenze private, Cloud Run e GKE offrono un percorso di configurazione più diretto e basato su IAM.
Cloud Run
Cloud Run è una piattaforma serverless completamente gestita che ti consente di eseguire il codice dell'applicazione agente in un container stateless. Cloud Run è ideale quando vuoi eseguire il deployment dell'intera applicazione agente, di singoli componenti o di strumenti personalizzati come endpoint HTTP scalabili senza dover gestire l'infrastruttura sottostante.
Di seguito sono riportate le funzionalità e le considerazioni per Cloud Run:
- Flessibilità di linguaggio di programmazione e framework: quando pacchettizzi l'applicazione in un container, puoi sviluppare agenti in qualsiasi linguaggio di programmazione e con qualsiasi framework.
- Protocolli di comunicazione: orchestra agenti e strumenti che utilizzano MCP e A2A. Ospita client e server MCP con trasporto HTTP trasmissibile su Cloud Run.
- Memoria: le istanze Cloud Run sono stateless,
il che significa che un'istanza perde tutti i dati in memoria dopo la terminazione. Per
implementare la memoria persistente, connetti il servizio a un servizio di archiviazione
Google Cloud gestito:
Requisito Opzioni disponibili Memoria a breve termine Memoria a lungo termine - Firestore
- Memory Bank con Cloud Run
Ricerca e recupero di database - Scalabilità: scala automaticamente il numero di istanze in base al traffico in entrata e riduce anche le istanze a zero. Questa funzionalità contribuisce a rendere Cloud Run conveniente per le applicazioni con carichi di lavoro variabili.
- Osservabilità: fornisce servizi integrati di logging, monitoraggio e tracciamento tramite Google Cloud Observability. Per maggiori informazioni, consulta la panoramica su monitoraggio e logging.
- Sicurezza: fornisce i seguenti controlli di sicurezza per i tuoi
agenti:
- Servizio di identità integrato per chiamate autenticate e sicure alle API Google Cloud.
- Esegui codice non testato in un ambiente sicuro con l'ambiente sandbox Cloud Run o con l'esecuzione di codice di Vertex AI Agent Engine.
- Archivia i dati sensibili utilizzati da Cloud Run configurando i secret in Secret Manager.
- Impedisci chiamate di rete indesiderate limitando le autorizzazioni IAM e utilizzando le regole firewall VPC.
Cloud Run offre una notevole semplicità operativa e convenienza economica perché elimina la gestione dell'infrastruttura. Tuttavia, la natura stateless di Cloud Run richiede l'utilizzo di un servizio di archiviazione per gestire il contesto in un flusso di lavoro in più passaggi. Inoltre, il timeout massimo della richiesta per i servizi Cloud Run è di un'ora, il che potrebbe limitare le attività agentiche di lunga durata.
GKE
Google Kubernetes Engine (GKE) è un servizio di orchestrazione dei container gestito che fornisce un controllo granulare sull'architettura e sull'infrastruttura della tua applicazione con agenti. GKE è adatto a sistemi agentici complessi che richiedono funzionalità robuste e di livello di produzione o se sei già un cliente GKE e vuoi implementare un flusso di lavoro agentico sopra l'applicazione esistente.
Di seguito sono riportate le funzionalità e le considerazioni disponibili su GKE:
- Flessibilità di linguaggio di programmazione e framework: quando pacchettizzi l'applicazione in un container, puoi sviluppare agenti in qualsiasi linguaggio di programmazione e con qualsiasi framework.
- Protocolli di comunicazione: coordina agenti e strumenti che utilizzano MCP e A2A. Ospita client e server MCP su GKE quando li pacchettizzi come container.
- Memoria: i pod GKE sono effimeri.
Tuttavia, puoi creare agent stateful con memoria persistente utilizzando
risorse in-cluster o connettendoti a servizi esterni:
Requisito Opzioni disponibili Memoria a breve termine Memoria a lungo termine - Firestore
- Memory Bank con GKE
Ricerca e recupero di database - StatefulSets e volumi permanenti per l'archiviazione durevole all'interno del cluster.
- Cloud SQL
- AlloyDB per PostgreSQL
- Scalabilità: i cluster GKE eseguono automaticamente il provisioning e scalano i pool di nodi per soddisfare i requisiti del tuo workload.
- Osservabilità: fornisce logging, monitoraggio e tracciamento integrati a livello di cluster, nodo e pod con Google Cloud Observability. Per raccogliere le metriche di terze parti e definite dall'utente configurate e poi inviarle a Cloud Monitoring, puoi anche utilizzare Google Cloud Managed Service per Prometheus. Per ulteriori informazioni, consulta la Panoramica dell'osservabilità di GKE.
- Sicurezza: fornisce controlli di sicurezza granulari per i tuoi agenti.
- Utilizza Workload Identity Federation for GKE per l'autenticazione sicura alle API Google Cloud.
- Isola il codice non attendibile con GKE Sandbox.
- Archivia i dati sensibili utilizzati dai cluster GKE in Secret Manager.
- Limita le autorizzazioni IAM e utilizza le regole firewall VPC e i criteri di rete per impedire chiamate di rete indesiderate.
GKE offre il massimo controllo e la massima flessibilità, consentendoti di eseguire agent stateful complessi. Tuttavia, questo controllo introduce un sovraccarico operativo e una complessità significativi. Devi configurare e gestire il cluster Kubernetes, inclusi i pool di nodi, il networking e le norme di scalabilità, il che richiede più competenze e impegno di sviluppo rispetto a una piattaforma serverless.
Passaggi successivi
- Strumenti per gli agenti:
- Creazione di strumenti personalizzati per gli agenti.
- Tools Make an Agent: From Zero to Assistant with ADK.
- Riepilogo di Agent Factory: un approfondimento sulla valutazione degli agenti, sugli strumenti pratici e sui sistemi multi-agente.
- Come eseguire il deployment di un server MCP sicuro su Cloud Run.
- Memoria dell'agente:
- Pattern di progettazione degli agenti:
- Runtime dell'agente:
- Altre risorse di AI agentica su Google Cloud:
- Per ulteriori architetture di riferimento, diagrammi e best practice, esplora il Cloud Architecture Center.
Collaboratori
Autore: Samantha He | Technical Writer
Altri collaboratori:
- 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 | Director of Cloud Product Developer Relations
- Kumar Dhanagopal | Sviluppatore di soluzioni cross-product
- Lisa Shen | Senior Outbound Product Manager, Google Cloud
- Mandy Grover | Head of Architecture Center
- Megan O'Keefe | Developer Advocate
- Olivier Bourgeois | Developer Relations Engineer
- Polong Lin | Developer Relations Engineering Manager
- Shir Meir Lador | Developer Relations Engineering Manager
- Vlad Kolesnikov | Developer Relations Engineer