Informazioni su questo codelab
1. Panoramica
Un agente è un programma autonomo che interagisce con un modello di IA per eseguire un'operazione basata sugli obiettivi utilizzando gli strumenti e il contesto a sua disposizione ed è in grado di prendere decisioni autonome basate su dati reali.
Quando la tua applicazione ha più agenti che lavorano insieme in modo autonomo e congiunto, come richiesto per soddisfare il suo scopo più ampio, con ciascuno dei suoi agenti che è competente e responsabile in modo indipendente di un'area di interesse specifica, l'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 di IA. 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 agenti diversi, 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 modularità, specializzazione, riutilizzabilità e manutenibilità avanzate, nonché la possibilità di definire flussi di controllo strutturati utilizzando agenti di flusso di lavoro dedicati.
Aspetti da tenere presenti per un sistema multi-agente
Innanzitutto, è importante comprendere e ragionare correttamente sulla specializzazione di ciascun agente. - "Sai perché hai bisogno di un agente secondario specifico per qualcosa", risolvi prima questo problema.
In secondo luogo, come riunirli con un agente principale per instradare e interpretare ciascuna delle risposte.
In terzo luogo, esistono diversi tipi di routing degli agenti che puoi trovare qui in questa documentazione. Assicurati di scegliere quello più adatto al flusso della tua applicazione. Inoltre, quali sono i vari contesti e stati di cui hai bisogno per il controllo del flusso del sistema multi-agente.
Cosa creerai
Costruiamo un sistema multi-agente per gestire le ristrutturazioni della cucina. È quello che faremo. Creeremo un sistema con 3 agenti.
- Agente per le proposte di ristrutturazione
- Agente di controllo di conformità e permessi
- Agente di controllo dello stato dell'ordine
Agente di proposta di ristrutturazione, per generare il documento della proposta di ristrutturazione della cucina.
Agente per permessi e conformità, per occuparsi delle attività relative a permessi e conformità.
Order Status Check Agent, per controllare lo stato degli ordini dei materiali lavorando sul database di gestione degli ordini che abbiamo configurato in AlloyDB.
Avremo un agente principale che orchestra 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 è attivata in un progetto .
Inoltre, se stai leggendo questo articolo e vuoi ricevere alcuni crediti per iniziare a utilizzare Google Cloud e ADK, utilizza questo link per riscattare i crediti. Per utilizzarlo, segui le istruzioni riportate qui. Tieni presente che questo link è valido solo fino alla fine di maggio per il riscatto.
- Attiva Cloud Shell facendo clic su questo link. Puoi passare dal terminale Cloud Shell (per eseguire comandi cloud) all'editor (per compilare i progetti) facendo clic sul pulsante corrispondente in Cloud Shell.
- Una volta connesso a Cloud Shell, verifica di aver già eseguito l'autenticazione e che il progetto sia impostato sul tuo ID progetto utilizzando il seguente comando:
gcloud auth list
- Esegui il seguente 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 i seguenti 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.
In base a questa semplice descrizione, Gemini mi ha fornito un prompt incredibilmente dettagliato per iniziare i lavori di ristrutturazione. In pratica, utilizziamo Gemini per ottenere risposte ancora migliori da AI Studio e dai nostri modelli. Puoi anche selezionare diversi modelli da utilizzare, in base al caso d'uso.
Abbiamo scelto Gemini 2.5 Pro. Si tratta di un modello di pensiero, il che significa che otteniamo ancora più token di output, in questo caso fino a 65.000 token, per analisi nel 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ò accettare richieste di contesto lunghe.
Guarda lo snippet della risposta di seguito:
AI Studio ha analizzato i miei dati e ha prodotto tutti questi elementi, come armadi, piani di lavoro, paraschizzi, pavimenti, lavelli, coesione, tavolozza dei colori e selezione dei materiali. Gemini cita persino le fonti.
Ripeti l'operazione con diversi modelli finché il risultato non ti soddisfa. Ma perché fare tutto questo quando hai Gemini 2.5? :)
Ad ogni modo, 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). Modifica il modello in "Gemini 2.0 Flash Preview Image Generation" 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, acquisire la chiave API e scalarlo in un'applicazione agente completa utilizzando la potenza dell'SDK Vertex AI.
4. Configurazione dell'ADK
- Crea e attiva l'ambiente virtuale (opzione consigliata)
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 terminal 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 di progetto creando i file (vuoti all'inizio):
renovation-agent/
__init__.py
agent.py
.env
requirements.txt
6. Codice sorgente
- Vai a "init.py" e aggiornalo con i seguenti contenuti:
from . import agent
- Vai ad 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 orchestra i tre agenti secondari che abbiamo deciso di creare in questa applicazione. Esistono diversi strumenti che aiutano con le funzioni di base 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 lo chiami in un altro modo, ricordati di aggiornare il valore di STORAGE_BUCKET nel file .env (nel passaggio di configurazione delle variabili ENV).
- 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 accesso. Seleziona entità come "allUsers" e ruolo come "Utente oggetto Storage".
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.
- Creare un elenco di dipendenze
Elenca tutte le dipendenze in requirements.txt. Puoi copiarlo dal repo.
Spiegazione del codice sorgente del sistema multi-agente
Il file agent.py definisce la struttura e il comportamento del nostro sistema multi-agente di ristrutturazione della cucina utilizzando l'Agent Development Kit (ADK). Analizziamo i componenti chiave:
Definizioni degli agenti
RenovationProposalAgent
Questo agente è responsabile della creazione del documento della proposta di ristrutturazione della cucina. Se vuoi, puoi specificare 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 poi archiviata in un bucket Google Cloud Storage.
PermitsAndComplianceCheckAgent
Questo agente si occupa di garantire che il progetto di ristrutturazione rispetti le normative e i codici edilizi locali. Riceve informazioni sulla ristrutturazione proposta (ad es. modifiche strutturali, lavori elettrici, modifiche idrauliche) e utilizza il modello LLM per verificare i requisiti per i permessi e le regole di conformità. L'agente utilizza le informazioni di una knowledge base (che puoi personalizzare per accedere alle API esterne e raccogliere le normative pertinenti).
OrderingAgent
Questo agente (che puoi commentare se non vuoi implementarlo subito) gestisce il controllo dello stato dell'ordine dei materiali e delle attrezzature necessari per la ristrutturazione. Per attivarlo, 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 i dati dell'ordine. Questo dimostra l'integrazione con un sistema di database per monitorare i dati in tempo reale.
Agente principale (orchestratore)
root_agent funge da orchestratore centrale del sistema multi-agente. Riceve la richiesta di ristrutturazione iniziale e determina quali agenti secondari chiamare in base alle esigenze della richiesta. Ad esempio, se la richiesta richiede la verifica dei requisiti per i permessi, verrà chiamato PermitsAndComplianceCheckAgent. Se l'utente vuole controllare lo stato dell'ordine, chiamerà OrderingAgent (se abilitato).
L'agente root_agent raccoglie quindi le risposte degli agenti secondari e le combina per fornire una risposta completa all'utente. Potrebbe essere necessario riepilogare la proposta, elencare le autorizzazioni richieste e fornire aggiornamenti sullo stato dell'ordine.
Flusso di dati e concetti chiave
L'utente avvia una richiesta tramite l'interfaccia ADK (terminale o interfaccia utente web).
- La richiesta viene ricevuta da root_agent.
- L'agente root_agent analizza la richiesta e la inoltra agli agenti secondari appropriati.
- I subagenti utilizzano LLM, knowledge base, API e database per elaborare la richiesta e generare risposte.
- Gli agenti secondari restituiscono le loro risposte all'agente root_agent.
- root_agent combina le risposte e fornisce un output finale all'utente.
Modelli linguistici di grandi dimensioni (LLM)
Gli agenti si basano molto sugli LLM per generare testo, rispondere a domande ed eseguire attività di ragionamento. Gli LLM sono il "cervello" che sta dietro la capacità degli 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 per consentire agli agenti di accedervi.
Cloud Run (facoltativo)
OrderingAgent utilizza una funzione Cloud Run per interfacciarsi con AlloyDB. Cloud Run fornisce un ambiente serverless per eseguire codice in risposta alle richieste HTTP.
AlloyDB
Se utilizzi OrderingAgent, devi configurare un database AlloyDB per archiviare i dati degli ordini. Analizzeremo i dettagli nella sezione successiva "Configurazione del database".
File.env
Il file .env memorizza informazioni sensibili come chiavi API, credenziali del database e nomi dei bucket. È fondamentale mantenere questo file al sicuro e non eseguirlo nel tuo repository. Memorizza anche le impostazioni di configurazione per gli agenti e il tuo progetto Google Cloud. In genere, root_agent o le funzioni di supporto leggono i valori da questo file. Assicurati che tutte le variabili richieste siano impostate correttamente nel file .env. incluso il nome del bucket Cloud Storage
7. Configurazione del database
In uno degli strumenti utilizzati dall'agente di ordinazione, 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
- Esplora la 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:
- Viene visualizzata una schermata come quella riportata di seguito. Crea un cluster e un'istanza con i seguenti valori (assicurati che i valori corrispondano nel caso in cui stia clonando il codice dell'applicazione dal repository):
- cluster id: "
vector-cluster
" - password: "
alloydb
" - PostgreSQL 15 / ultima versione consigliata
- Regione: "
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 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 puoi modificarlo, ricordati di utilizzare l'ID istanza in tutti i riferimenti futuri.
Tieni presente che la creazione del cluster richiede circa 10 minuti. Al termine dell'operazione, dovresti visualizzare una schermata che mostra la panoramica del cluster 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:
Potresti dover attendere il completamento della creazione dell'istanza. Una volta completata la procedura, accedi ad AlloyDB utilizzando le credenziali che hai creato quando hai creato il cluster. Utilizza i seguenti dati per l'autenticazione in PostgreSQL:
- Nome utente : "
postgres
" - Database : "
postgres
" - Password : "
alloydb
"
Una volta autenticato in AlloyDB Studio, i comandi SQL vengono inseriti nell'editor. Puoi aggiungere più finestre di Editor utilizzando il segno Più a destra dell'ultima finestra.
Inserisci i comandi per AlloyDB nelle finestre dell'editor, utilizzando le opzioni Esegui, Formatta e Cancella in base alle tue 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 di query insert
dallo script database_script.sql
sopra indicato 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.
- Poiché si tratta di un'applicazione di dimostrazione, puoi impostare l'autenticazione su "Consenti chiamate non autenticate".
- Scegli Java 17 come runtime e Editor incorporato per il codice sorgente.
- A questo punto, il codice segnaposto verrà caricato nell'editor.
Sostituire 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 "Funzione Cloud Run" in questo repo.
- In ProposalOrdersTool.java, trova la seguente riga di codice e sostituisci i valori segnaposto con quelli 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 di accedere all'istanza del database AlloyDB, creeremo il connettore VPC.
Una volta completato il deployment, dovresti essere in grado di vedere le funzioni nella console di Cloud Run Functions di Google Cloud. Cerca la funzione appena creata (check-status), fai clic su di essa e poi su MODIFICA ED Esegui il deployment DI NUOVE REVISIONI (identificata dall'icona di modifica (penna) nella parte superiore della console di Cloud Run Functions) e modifica quanto segue:
- Vai alla scheda Networking:
- Seleziona "Connettiti a un VPC per il traffico in uscita" e poi "Utilizza 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 già 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 corrisponda a quella dell'istanza. Lascia il valore della rete predefinito e imposta la subnet come intervallo IP personalizzato con l'intervallo IP 10.8.0.0 o un valore simile disponibile.
- Espandi IMPOSTAZIONI DI SCALING DEL DISPLAY e assicurati che la configurazione sia impostata esattamente come segue:
- Fai clic su CREA. Questo connettore dovrebbe essere ora elencato nelle impostazioni di uscita.
- Seleziona il connettore appena creato.
- Scegli di instradare tutto il traffico attraverso questo connettore VPC.
- Fai clic su AVANTI e poi su ESEGUI IL DEPLOY.
- Una volta eseguito il deployment della funzione Cloud aggiornata, dovresti vedere 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 da 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 rifiuterà le richieste dell'agente, che non potrà 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 chiave API.
9. Configurazione delle variabili di ambiente
- Configura i valori per i parametri nel file .env del modello in questo repo. Nel mio caso, il file .env contiene le seguenti 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
- Per eseguire l'agente, puoi eseguire il seguente comando nel terminale Cloud Shell:
adk run .
- Per eseguirlo in un'interfaccia utente web di cui è stato eseguito il provisioning in ADK, puoi eseguire quanto segue:
adk web
- Fai una prova con i seguenti prompt:
user>>
Hello. Generate Proposal Document for the kitchen remodel requirement. I have no other specification.
12. Deployment in Agent Engine
Ora che hai verificato il corretto funzionamento del sistema multi-agente, rendiamolo serverless e disponibile sul cloud per chiunque o qualsiasi applicazione possa utilizzarlo. Rimuovi il commento dallo snippet di codice seguente in agent.py dal repo e potrai implementare il 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 il seguente comando:
>> cd adk-renovation-agent
>> python agent.py
Il completamento dell'operazione 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 riportato sopra, sostituisci il valore del segnaposto "<<YOUR_DEPLOYED_ENGINE_ID>>
" ed esegui il comando "python test.py
". A questo punto, puoi interagire con un sistema multi-agente in cui è implementato Agent Engine e rinnovare la tua cucina.
13. Opzioni di deployment in una riga
Ora che hai testato il sistema multi-agente di cui è stato eseguito il deployment, impariamo metodi più semplici che astraggono il passaggio di deployment eseguito nel passaggio precedente: OPZIONI DI DEPLOYMENT IN UNA SOLA LINEA:
- Per 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 a valle.
- Per il 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 vedere un nuovo agente nell'interfaccia utente di Agent Engine nella 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 ADK.