1. Panoramica
Un agente è un programma autonomo che comunica con un modello di AI per eseguire un'operazione basata su un obiettivo utilizzando gli strumenti e il contesto a sua disposizione ed è in grado di prendere decisioni autonome basate sulla verità.
Quando la tua applicazione ha più agenti che lavorano insieme in modo autonomo e congiunto, se necessario, per soddisfare il suo scopo più ampio, e ognuno di questi agenti è indipendente e responsabile di un'area di interesse specifica, la tua applicazione diventa un sistema multi-agente.
Agent Development Kit (ADK)
Agent Development Kit (ADK) è un framework flessibile e modulare per lo sviluppo e il deployment di agenti AI. ADK supporta la creazione di applicazioni sofisticate componendo più istanze di agenti distinte in un sistema multi-agente (MAS).
In ADK, un sistema multi-agente è un'applicazione in cui diversi agenti, che spesso formano una gerarchia, collaborano o si coordinano per raggiungere un obiettivo più grande. La strutturazione dell'applicazione in questo modo offre vantaggi significativi, tra cui maggiore modularità, specializzazione, riusabilità, gestibilità e la possibilità di definire flussi di controllo strutturati utilizzando agenti del workflow dedicati.
Aspetti da tenere presenti per un sistema multi-agente
Innanzitutto, è importante avere una comprensione e un ragionamento adeguati della specializzazione di ogni agente. — "Sai perché hai bisogno di un subagente specifico per qualcosa?", scoprilo prima.
Secondo, come raggrupparli con un agente principale per indirizzare e dare un senso a ciascuna delle risposte.
Terzo, esistono diversi tipi di routing degli agenti che puoi trovare qui in questa documentazione. Scegli quello più adatto al flusso della tua applicazione. Inoltre, quali sono i vari contesti e stati necessari per il controllo del flusso del sistema multi-agente.
Cosa creerai
Creiamo un sistema multi-agente per gestire le ristrutturazioni della cucina. Questo è ciò che faremo. Creeremo un sistema con tre agenti.
- Renovation Proposal Agent
- Agente di controllo di permessi e conformità
- Agente di controllo dello stato dell'ordine
Agente per la proposta di ristrutturazione, per generare il documento della proposta di ristrutturazione della cucina.
Agente per permessi e conformità, per occuparsi di permessi e attività correlate alla conformità.
Agente di controllo dello stato dell'ordine, per controllare lo stato dell'ordine dei materiali lavorando sul database di gestione degli ordini che abbiamo configurato in AlloyDB.
Avremo un agente principale che coordina questi agenti in base al requisito.
Requisiti
2. Prima di iniziare
Crea un progetto
- Nella console Google Cloud, nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud.
- Verifica che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata per un progetto .
Inoltre, se stai leggendo questo articolo e vuoi ottenere dei crediti per iniziare a utilizzare Google Cloud e ADK, utilizza questo link per riscattare i crediti. Per riscattarlo, segui le istruzioni riportate qui. Tieni presente che questo link è valido solo fino alla fine di maggio per l'utilizzo.
- Attiva Cloud Shell facendo clic su questo link. Puoi passare dal terminale Cloud Shell (per eseguire comandi cloud) all'editor (per creare progetti) facendo clic sul pulsante corrispondente in Cloud Shell.
- Una volta eseguita la connessione a Cloud Shell, verifica di essere già autenticato e che il progetto sia impostato sul tuo ID progetto utilizzando il seguente comando:
gcloud auth list
- Esegui questo comando in Cloud Shell per verificare che il comando gcloud conosca il tuo progetto.
gcloud config list project
- Se il progetto non è impostato, utilizza il seguente comando per impostarlo:
gcloud config set project <YOUR_PROJECT_ID>
- Assicurati di avere Python 3.9 o versioni successive
- Abilita le seguenti API eseguendo questi comandi:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com
- Consulta la documentazione per i comandi e l'utilizzo di gcloud.
3. Prototipo
Puoi saltare questo passaggio se decidi di utilizzare il modello "Gemini 2.5 Pro" per il progetto.
Vai a Google AI Studio. Inizia a digitare il prompt. Ecco il mio prompt:
I want to renovate my kitchen, basically just remodel it. I don't know where to start. So I want to use Gemini to generate a plan. For that I need a good prompt. Give me a short yet detailed prompt that I can use.
Modifica e configura i parametri sul lato destro per ottenere una risposta ottimale.
Partendo da questa semplice descrizione, Gemini mi ha fornito un prompt incredibilmente dettagliato per iniziare la ristrutturazione. In pratica, utilizziamo Gemini per ottenere risposte ancora migliori da AI Studio e dai nostri modelli. Puoi anche selezionare modelli diversi da utilizzare, in base al caso d'uso.
Abbiamo scelto Gemini 2.5 Pro. Si tratta di un modello di ragionamento, il che significa che otteniamo ancora più token di output, in questo caso fino a 65.000 token, per analisi in formato lungo e documenti dettagliati. La casella di pensiero di Gemini viene visualizzata quando attivi Gemini 2.5 Pro, che dispone di funzionalità di ragionamento native e può gestire richieste di contesto lunghe.
Vedi lo snippet della risposta di seguito:

AI Studio ha analizzato i miei dati e ha prodotto tutti questi elementi come armadi, piani di lavoro, alzatina, pavimenti, lavello, coesione, tavolozza dei colori e selezione dei materiali. Gemini cita persino le fonti.
Ripeti l'operazione con scelte di modelli diversi finché il risultato non ti soddisfa. Ma mi chiedo perché fare tutto questo quando hai Gemini 2.5 :)
Comunque, ora prova a vedere l'idea prendere vita con un prompt diverso:
Add flat and circular light accessories above the island area for my current kitchen in the attached image.
Allega un link all'immagine della tua cucina attuale (o a qualsiasi immagine di cucina di esempio). Cambia il modello in "Generazione di immagini di anteprima di Gemini 2.0 Flash" per avere accesso alla generazione di immagini.
Ho ottenuto questo output:

Questo è il potere di Gemini.
Dalla comprensione dei video alla generazione di immagini native, fino alla verifica delle informazioni reali con la Ricerca Google, ci sono cose che possono essere create solo con Gemini.
Da AI Studio, puoi prendere questo prototipo, recuperare la chiave API e scalarlo in un'applicazione agentica completa utilizzando la potenza di Vertex AI ADK.
4. Configurazione dell'ADK
- Crea e attiva l'ambiente virtuale (consigliato)
Dal terminale Cloud Shell, crea un ambiente virtuale:
python -m venv .venv
Attiva l'ambiente virtuale:
source .venv/bin/activate
- Installa ADK
pip install google-adk
5. Struttura del progetto
- Dal terminale di Cloud Shell, crea una directory nella posizione del progetto che preferisci.
mkdir agentic-apps
cd agentic-apps
mkdir renovation-agent
- Vai all'editor di Cloud Shell e crea la seguente struttura del progetto creando i file (inizialmente vuoti):
renovation-agent/
__init__.py
agent.py
.env
requirements.txt
6. Codice sorgente
- Vai a "init.py" e aggiorna con i seguenti contenuti:
from . import agent
- Vai a agent.py e aggiorna il file con i seguenti contenuti dal seguente percorso:
https://github.com/AbiramiSukumaran/adk-renovation-agent/blob/main/agent.py
In agent.py, importiamo le dipendenze necessarie, recuperiamo i parametri di configurazione dal file .env e definiamo root_agent, che coordina i tre sub-agent che abbiamo deciso di creare in questa applicazione. Esistono diversi strumenti che aiutano con le funzioni principali e di supporto di questi subagenti.
- Assicurati di avere il bucket Cloud Storage
Per memorizzare il documento della proposta generato dall'agente. Crealo e fornisci l'accesso in modo che il sistema multi-agente creato con Vertex AI possa accedervi. Ecco come fare:
https://cloud.google.com/storage/docs/creating-buckets#console
Assegna al bucket il nome "next-demo-store". Se gli assegni un altro nome, ricordati di aggiornare il valore di STORAGE_BUCKET nel file .env (nel passaggio di configurazione delle variabili di ambiente).
- Per configurare l'accesso al bucket, vai alla console Cloud Storage e al tuo bucket di archiviazione (nel nostro caso il nome del bucket è "next-demo-storage": https://console.cloud.google.com/storage/browser/next-demo-storage.
Vai ad Autorizzazioni -> Visualizza entità -> Concedi l'accesso. Seleziona Entità come "allUsers" e Ruolo come "Storage Object User".
Make sure to not enable "prevent public access". Since this is a demo/study application we are going with a public bucket. Remember to configure permission settings appropriately when you are building your application.
- Crea elenco delle dipendenze
Elenca tutte le dipendenze in requirements.txt. Puoi copiarlo da repo.
Spiegazione del codice sorgente del sistema multi-agente
Il file agent.py definisce la struttura e il comportamento del nostro sistema multi-agente per la ristrutturazione della cucina utilizzando l'Agent Development Kit (ADK). Analizziamo i componenti chiave:
Definizioni degli agenti
RenovationProposalAgent
Questo agente è responsabile della creazione del documento di proposta di ristrutturazione della cucina. Se vuoi, puoi inserire parametri di input come le dimensioni della cucina, lo stile desiderato, il budget e le preferenze del cliente. In base a queste informazioni, utilizza un modello linguistico di grandi dimensioni (LLM) Gemini 2.5 per generare una proposta dettagliata. La proposta generata viene quindi archiviata in un bucket Cloud Storage.
PermitsAndComplianceCheckAgent
Questo agente si concentra sul garantire che il progetto di ristrutturazione rispetti i codici e le normative edilizie locali. Riceve informazioni sulla ristrutturazione proposta (ad es. modifiche strutturali, lavori elettrici, modifiche all'impianto idraulico) e utilizza il LLM per verificare i requisiti di permesso e le regole di conformità. L'agente utilizza le informazioni di una knowledge base (che puoi personalizzare per accedere ad API esterne e raccogliere i regolamenti pertinenti).
OrderingAgent
Questo agente (puoi commentarlo se non vuoi implementarlo ora) gestisce il controllo dello stato dell'ordine di materiali e attrezzature necessari per la ristrutturazione. Per abilitarlo, devi creare una funzione Cloud Run come descritto nei passaggi di configurazione. L'agente chiamerà quindi questa funzione Cloud Run, che interagisce con un database AlloyDB contenente informazioni sugli ordini. Ciò dimostra l'integrazione con un sistema di database per monitorare i dati in tempo reale.
Agente root (orchestratore)
L'agente root funge da orchestratore centrale del sistema multi-agente. Riceve la richiesta di ristrutturazione iniziale e determina quali subagenti richiamare in base alle esigenze della richiesta. Ad esempio, se la richiesta richiede di verificare i requisiti di autorizzazione, verrà chiamato PermitsAndComplianceCheckAgent. Se l'utente vuole controllare lo stato dell'ordine, viene chiamato OrderingAgent (se abilitato).
L'agente principale raccoglie quindi le risposte degli agenti secondari e le combina per fornire una risposta completa all'utente. Ciò potrebbe comportare il riepilogo della proposta, l'elenco dei permessi richiesti e la fornitura di aggiornamenti sullo stato dell'ordine.
Flusso di dati e concetti chiave
L'utente avvia una richiesta tramite l'interfaccia ADK (il terminale o l'interfaccia utente web).
- La richiesta viene ricevuta da root_agent.
- L'agente root analizza la richiesta e la indirizza agli agenti secondari appropriati.
- Gli agenti secondari utilizzano LLM, knowledge base, API e database per elaborare la richiesta e generare risposte.
- Gli agenti secondari restituiscono le risposte a root_agent.
- L'agente root combina le risposte e fornisce un output finale all'utente.
LLM (modelli linguistici di grandi dimensioni)
Gli agenti si basano molto sugli LLM per generare testo, rispondere a domande ed eseguire attività di ragionamento. Gli LLM sono il "cervello" che consente agli agenti di comprendere e rispondere alle richieste degli utenti. In questa applicazione utilizziamo Gemini 2.5.
Google Cloud Storage
Utilizzato per archiviare i documenti della proposta di ristrutturazione generati. Devi creare un bucket e concedere le autorizzazioni necessarie agli agenti per accedervi.
Cloud Run (facoltativo)
OrderingAgent utilizza una funzione Cloud Run per interfacciarsi con AlloyDB. Cloud Run fornisce un ambiente serverless per eseguire il codice in risposta alle richieste HTTP.
AlloyDB
Se utilizzi OrderingAgent, devi configurare un database AlloyDB per archiviare le informazioni sugli ordini. Nei dettagli nella sezione successiva, "Configurazione del database".
File.env
Il file .env archivia informazioni sensibili come chiavi API, credenziali del database e nomi dei bucket. È fondamentale mantenere questo file sicuro e non eseguirne il commit nel repository. Memorizza anche le impostazioni di configurazione per gli agenti e il tuo progetto Google Cloud. La funzione root_agent o le funzioni di supporto in genere leggono i valori da questo file. Assicurati che tutte le variabili richieste siano impostate correttamente nel file .env. che include il nome del bucket Cloud Storage.
7. Configurazione del database
In uno degli strumenti utilizzati da ordering_agent, chiamato "check_status", accediamo al database degli ordini AlloyDB per ottenere lo stato degli ordini. In questa sezione configureremo il cluster e l'istanza del database AlloyDB.
Crea un cluster e un'istanza
- Vai alla pagina AlloyDB nella console Cloud. Un modo semplice per trovare la maggior parte delle pagine in Cloud Console è cercarle utilizzando la barra di ricerca della console.
- Seleziona CREA CLUSTER da questa pagina:

- Vedrai una schermata come quella riportata di seguito. Crea un cluster e un'istanza con i seguenti valori (assicurati che i valori corrispondano se cloni il codice dell'applicazione dal repository):
- cluster id: "
vector-cluster" - password: "
alloydb" - PostgreSQL 15 / ultima versione consigliata
- Region: "
us-central1" - Networking: "
default"

- Quando selezioni la rete predefinita, viene visualizzata una schermata come quella riportata di seguito.
Seleziona CONFIGURA CONNESSIONE.
- Da qui, seleziona "Utilizza un intervallo IP allocato automaticamente" e fai clic su Continua. Dopo aver esaminato le informazioni, seleziona CREA CONNESSIONE.

- Una volta configurata la rete, puoi continuare a creare il cluster. Fai clic su CREA CLUSTER per completare la configurazione del cluster come mostrato di seguito:

Assicurati di modificare l'ID istanza (che puoi trovare al momento della configurazione del cluster / dell'istanza) in
vector-instance. Se non riesci a modificarlo, ricorda di utilizzare l'ID istanza in tutti i riferimenti futuri.
Tieni presente che la creazione del cluster richiederà circa 10 minuti. Una volta completata l'operazione, dovresti visualizzare una schermata che mostra la panoramica del cluster che hai appena creato.
Importazione dati
Ora è il momento di aggiungere una tabella con i dati del negozio. Vai ad AlloyDB, seleziona il cluster principale e poi AlloyDB Studio:

Potrebbe essere necessario attendere il completamento della creazione dell'istanza. Una volta creato, accedi ad AlloyDB utilizzando le credenziali che hai creato durante la creazione del cluster. Utilizza i seguenti dati per l'autenticazione a PostgreSQL:
- Nome utente : "
postgres" - Database : "
postgres" - Password : "
alloydb"
Una volta eseguita l'autenticazione in AlloyDB Studio, i comandi SQL vengono inseriti nell'editor. Puoi aggiungere più finestre dell'editor utilizzando il segno più a destra dell'ultima finestra.

Inserirai i comandi per AlloyDB nelle finestre dell'editor, utilizzando le opzioni Esegui, Formatta e Cancella in base alle esigenze.
Creare una tabella
Puoi creare una tabella utilizzando l'istruzione DDL riportata di seguito in AlloyDB Studio:
-- Table DDL for Procurement Material Order Status
CREATE TABLE material_order_status (
order_id VARCHAR(50) PRIMARY KEY,
material_name VARCHAR(100) NOT NULL,
supplier_name VARCHAR(100) NOT NULL,
order_date DATE NOT NULL,
estimated_delivery_date DATE,
actual_delivery_date DATE,
quantity_ordered INT NOT NULL,
quantity_received INT,
unit_price DECIMAL(10, 2) NOT NULL,
total_amount DECIMAL(12, 2),
order_status VARCHAR(50) NOT NULL, -- e.g., "Ordered", "Shipped", "Delivered", "Cancelled"
delivery_address VARCHAR(255),
contact_person VARCHAR(100),
contact_phone VARCHAR(20),
tracking_number VARCHAR(100),
notes TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
quality_check_passed BOOLEAN, -- Indicates if the material passed quality control
quality_check_notes TEXT, -- Notes from the quality control check
priority VARCHAR(20), -- e.g., "High", "Medium", "Low"
project_id VARCHAR(50), -- Link to a specific project
receiver_name VARCHAR(100), -- Name of the person who received the delivery
return_reason TEXT, -- Reason for returning material if applicable
po_number VARCHAR(50) -- Purchase order number
);
Inserisci record
Copia l'istruzione della query insert dallo script database_script.sql menzionato sopra nell'editor.
Fai clic su Esegui.
Ora che il set di dati è pronto, creiamo un'applicazione Java Cloud Run Functions per estrarre lo stato.
Crea una funzione Cloud Run in Java per estrarre le informazioni sullo stato dell'ordine
- Crea la funzione Cloud Run da qui: https://console.cloud.google.com/run/create?deploymentType=function
- Imposta il nome della funzione su "check-status" e scegli "Java 17" come runtime.
- Puoi impostare l'autenticazione su "Consenti chiamate non autenticate" poiché si tratta di un'applicazione demo.
- Scegli Java 17 come runtime e Editor incorporato per il codice sorgente.
- A questo punto, il codice segnaposto verrà caricato nell'editor.
Sostituisci il codice segnaposto
- Modifica il nome del file Java in "ProposalOrdersTool.java" e il nome della classe in "ProposalOrdersTool".
- Sostituisci il codice segnaposto in ProposalOrdersTool.java e pom.xml con il codice dei rispettivi file nella cartella "Cloud Run Function" di questo repository.
- In ProposalOrdersTool.java, trova la seguente riga di codice, sostituisci i valori segnaposto con i valori della tua configurazione:
String ALLOYDB_INSTANCE_NAME = "projects/<<YOUR_PROJECT_ID>>/locations/us-central1/clusters/<<YOUR_CLUSTER>>/instances/<<YOUR_INSTANCE>>";
- Fai clic su Crea.
- La funzione Cloud Run verrà creata e di cui verrà eseguito il deployment.
PASSAGGIO IMPORTANTE:
Una volta eseguito il deployment, per consentire alla funzione Cloud Functions di accedere alla nostra istanza di database AlloyDB, creeremo il connettore VPC.
Una volta impostato il deployment, dovresti essere in grado di visualizzare le funzioni nella console Google Cloud Run Functions. Cerca la funzione appena creata (check-status), fai clic su di essa, poi su MODIFICA ED ESEGUI IL DEPLOY DELLE NUOVE REVISIONI (identificata dall'icona MODIFICA (penna) nella parte superiore della console Cloud Run Functions) e modifica quanto segue:
- Vai alla scheda Networking:

- Seleziona "Connettiti a un VPC per il traffico in uscita" e poi "Usa connettori di accesso VPC serverless".
- Nel menu a discesa Rete, fai clic sul menu a discesa Rete e seleziona l'opzione "Aggiungi nuovo connettore VPC" (se non hai ancora configurato quello predefinito) e segui le istruzioni visualizzate nella finestra di dialogo visualizzata:

- Fornisci un nome per il connettore VPC e assicurati che la regione sia la stessa dell'istanza. Lascia il valore Rete come predefinito e imposta Subnet come intervallo IP personalizzato con l'intervallo IP 10.8.0.0 o un valore simile disponibile.
- Espandi MOSTRA IMPOSTAZIONI SCALATURA e assicurati che la configurazione sia impostata esattamente come segue:

- Fai clic su CREA e il connettore dovrebbe essere elencato nelle impostazioni di uscita.
- Seleziona il connettore appena creato.
- Scegli di instradare tutto il traffico tramite questo connettore VPC.
- Fai clic su AVANTI e poi su ESEGUI IL DEPLOYMENT.
- Una volta eseguito il deployment della funzione Cloud Functions aggiornata, dovresti visualizzare l'endpoint generato.
- Dovresti essere in grado di testarlo facendo clic sul pulsante TEST nella parte superiore della console Cloud Run Functions ed eseguendo il comando risultante nel terminale Cloud Shell.
- L'endpoint di cui è stato eseguito il deployment è l'URL che devi aggiornare nella variabile .env
CHECK_ORDER_STATUS_ENDPOINT.
8. Configurazione del modello
La capacità dell'agente di comprendere le richieste degli utenti e generare risposte è basata su un modello linguistico di grandi dimensioni (LLM). L'agente deve effettuare chiamate sicure a questo servizio LLM esterno, che richiede credenziali di autenticazione. Senza un'autenticazione valida, il servizio LLM negherà le richieste dell'agente e quest'ultimo non sarà in grado di funzionare.
- Ottieni una chiave API da Google AI Studio.
- Nel passaggio successivo, in cui configuri il file .env, sostituisci
<<your API KEY>>con il valore effettivo della tua chiave API.
9. Configurazione delle variabili ENV
- Imposta i valori dei parametri nel file .env del modello in questo repository. Nel mio caso, il file .env contiene queste variabili:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=<<your API KEY>>
GOOGLE_CLOUD_LOCATION=us-central1 <<or your region>>
GOOGLE_CLOUD_PROJECT=<<your project id>>
PROJECT_ID=<<your project id>>
GOOGLE_CLOUD_REGION=us-central1 <<or your region>>
STORAGE_BUCKET=next-demo-store <<or your storage bucket name>>
CHECK_ORDER_STATUS_ENDPOINT=<<YOUR_ENDPOINT_TO_CLOUD FUNCTION_TO_READ_ORDER_DATA_FROM_ALLOYDB>>
Sostituisci i segnaposto con i tuoi valori.
10. Esegui l'agente
- Utilizzando il terminale, vai alla directory principale del progetto dell'agente:
cd renovation-agent
- Installa tutte le dipendenze
pip install -r requirements.txt
- Puoi eseguire questo comando nel terminale Cloud Shell per eseguire l'agente:
adk run .
- Puoi eseguire il seguente comando per eseguirlo in una UI web di ADK di cui è stato eseguito il provisioning:
adk web
- Prova con i seguenti prompt:
user>>
Hello. Generate Proposal Document for the kitchen remodel requirement. I have no other specification.
11. Risultato
@ Sistema multi-agente per le attività di ristrutturazione della cucina

12. Deployment in Agent Engine
Ora che hai verificato il corretto funzionamento del sistema multi-agente, rendiamolo serverless e disponibile sul cloud in modo che chiunque / qualsiasi applicazione possa utilizzarlo. Rimuovi il commento dallo snippet di codice riportato di seguito in agent.py dal repository e potrai eseguire il deployment del sistema multi-agente:
# Agent Engine Deployment:
# Create a remote app for our multiagent with agent Engine.
# This may take 1-2 minutes to finish.
# Uncomment the below segment when you're ready to deploy.
app = AdkApp(
agent=root_agent,
enable_tracing=True,
)
vertexai.init(
project=PROJECT_ID,
location=GOOGLE_CLOUD_LOCATION,
staging_bucket=STAGING_BUCKET,
)
remote_app = agent_engines.create(
app,
requirements=[
"google-cloud-aiplatform[agent_engines,adk]>=1.88",
"google-adk",
"pysqlite3-binary",
"toolbox-langchain==0.1.0",
"pdfplumber",
"google-cloud-aiplatform",
"cloudpickle==3.1.1",
"pydantic==2.10.6",
"pytest",
"overrides",
"scikit-learn",
"reportlab",
"google-auth",
"google-cloud-storage",
],
)
# Deployment to Agent Engine related code ends
Esegui di nuovo agent.py dalla cartella del progetto con questo comando:
>> cd adk-renovation-agent
>> python agent.py
Il completamento di questo codice richiede alcuni minuti. Al termine, riceverai un endpoint simile al seguente:
'projects/123456789/locations/us-central1/reasoningEngines/123456'
Puoi testare l'agente di cui è stato eseguito il deployment con il seguente codice aggiungendo un nuovo file " test.py"
import vertexai
from vertexai.preview import reasoning_engines
from vertexai import agent_engines
import os
import warnings
from dotenv import load_dotenv
load_dotenv()
GOOGLE_CLOUD_PROJECT = os.environ["GOOGLE_CLOUD_PROJECT"]
GOOGLE_CLOUD_LOCATION = os.environ["GOOGLE_CLOUD_LOCATION"]
GOOGLE_API_KEY = os.environ["GOOGLE_API_KEY"]
GOOGLE_GENAI_USE_VERTEXAI=os.environ["GOOGLE_GENAI_USE_VERTEXAI"]
AGENT_NAME = "adk_renovation_agent"
MODEL_NAME = "gemini-2.5-pro-preview-03-25"
warnings.filterwarnings("ignore")
PROJECT_ID = GOOGLE_CLOUD_PROJECT
reasoning_engine_id = "<<YOUR_DEPLOYED_ENGINE_ID>>"
vertexai.init(project=PROJECT_ID, location="us-central1")
agent = agent_engines.get(reasoning_engine_id)
print("**********************")
print(agent)
print("**********************")
for event in agent.stream_query(
user_id="test_user",
message="I want you to check order status.",
):
print(event)
Nel codice precedente, sostituisci il valore del segnaposto "<<YOUR_DEPLOYED_ENGINE_ID>>" ed esegui il comando "python test.py". A questo punto, puoi eseguire il codice per interagire con un sistema multi-agente che utilizza Agent Engine e rinnovare la tua cucina.
13. Opzioni di deployment su una riga
Ora che hai testato il sistema multi-agente di cui è stato eseguito il deployment, vediamo metodi più semplici che astraggono il passaggio di deployment che abbiamo eseguito nel passaggio precedente: OPZIONI DI DEPLOYMENT IN UNA RIGA:
- A Cloud Run:
Sintassi:
adk deploy cloud_run \
--project=<<YOUR_PROJECT_ID>> \
--region=us-central1 \
--service_name=<<YOUR_SERVICE_NAME>> \
--app_name=<<YOUR_APP_NAME>> \
--with_ui \
./<<YOUR_AGENT_PROJECT_NAME>>
In questo caso:
adk deploy cloud_run \
--project=<<YOUR_PROJECT_ID>> \
--region=us-central1 \
--service_name=renovation-agent \
--app_name=renovation-app \
--with_ui \
./renovation-agent
Puoi utilizzare l'endpoint di cui è stato eseguito il deployment per le integrazioni downstream.
- A Motore agente:
Sintassi:
adk deploy agent_engine \
--project <your-project-id> \
--region us-central1 \
--staging_bucket gs://<your-google-cloud-storage-bucket> \
--trace_to_cloud \
path/to/agent/folder
In questo caso:
adk deploy agent_engine --project <<YOUR_PROJECT_ID>> --region us-central1 --staging_bucket gs://<<YOUR_BUCKET_NAME>> --trace_to_cloud renovation-agent
Dovresti visualizzare un nuovo agente nella UI di Agent Engine all'interno della console Google Cloud. Per ulteriori dettagli, consulta questo blog.
14. Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo post, segui questi passaggi:
- Nella console Google Cloud, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.
15. Complimenti
Complimenti! Hai creato e interagito correttamente con il tuo primo agente utilizzando l'ADK.