1. Introduzione
Questo lab è incentrato sull'implementazione e sul deployment di un servizio di agent client. Utilizzerai Agent Development Kit (ADK) per creare un agente AI che utilizza strumenti.
In questo lab, creeremo un agente per lo zoo che utilizza Wikipedia per rispondere a domande sugli animali.

Infine, eseguiremo il deployment dell'agente guida turistica in Google Cloud Run, anziché eseguirlo solo localmente.
Prerequisiti
- Un progetto Google Cloud con la fatturazione abilitata.
Obiettivi didattici
- Come strutturare un progetto Python per il deployment dell'ADK.
- Come implementare un agente che utilizza strumenti con google-adk.
- Come eseguire il deployment di un'applicazione Python come container serverless in Cloud Run.
- Come configurare l'autenticazione sicura tra servizi utilizzando i ruoli IAM.
- Come eliminare le risorse cloud per evitare costi futuri.
Che cosa ti serve
- Un account Google Cloud e un progetto Google Cloud
- Un browser web come Chrome
2. Perché eseguire il deployment in Cloud Run?
Cloud Run è un'ottima scelta per l'hosting degli agenti ADK perché è una piattaforma serverless, il che significa che puoi concentrarti sul codice e non sulla gestione dell'infrastruttura sottostante. Ci occupiamo noi del lavoro operativo.
È come un negozio pop-up: si apre e utilizza le risorse solo quando arrivano i clienti (richieste). Quando non ci sono clienti, chiude completamente e non paghi per un negozio vuoto.
Funzionalità principali
Esegue Containers Anywhere:
- Porti un container (immagine Docker) che contiene la tua app.
- Cloud Run lo esegue sull'infrastruttura di Google.
- Nessun problema di applicazione di patch del sistema operativo, configurazione della VM o scalabilità.
Scalabilità automatica:
- Se nessuno utilizza la tua app → vengono eseguite 0 istanze (viene ridimensionata a zero istanze, il che è conveniente).
- Se riceve 1000 richieste, crea tutte le copie necessarie.
Stateless by Default:
- Ogni richiesta potrebbe essere inviata a un'istanza diversa.
- Se devi archiviare lo stato, utilizza un servizio esterno come Cloud SQL, Firestore o Memorystore.
Supporta qualsiasi lingua o framework:
- Finché viene eseguito in un container Linux, Cloud Run non si preoccupa se si tratta di Python, Go, Node.js, Java o .NET.
Pagamento a consumo:
- Fatturazione basata sulle richieste: fatturazione per richiesta + tempo di calcolo (fino a 100 ms).
- Fatturazione basata sulle istanze: fatturazione per l'intera durata dell'istanza (nessuna tariffa per richiesta).
3. Configurazione del progetto
Account Google
Se non hai ancora un Account Google personale, devi crearne uno.
Utilizza un account personale anziché un account di lavoro o della scuola.
Accedi alla console Google Cloud
Accedi a Google Cloud Console utilizzando un Account Google personale.
Abilita fatturazione
Configurare un account di fatturazione personale
Se hai configurato la fatturazione utilizzando i crediti Google Cloud, puoi saltare questo passaggio.
Per configurare un account di fatturazione personale, vai qui per abilitare la fatturazione in Cloud Console.
Alcune note:
- Il completamento di questo lab dovrebbe costare meno di 1 $in risorse cloud.
- Per evitare ulteriori addebiti, puoi seguire i passaggi alla fine di questo lab per eliminare le risorse.
- I nuovi utenti hanno diritto alla prova senza costi di 300$.
Crea un progetto (facoltativo)
Se non hai un progetto attuale che vuoi utilizzare per questo lab, creane uno nuovo qui.
4. Apri editor di Cloud Shell
- Fai clic su questo link per andare direttamente all'editor di Cloud Shell.
- Se ti viene richiesto di concedere l'autorizzazione in qualsiasi momento della giornata, fai clic su Autorizza per continuare.

- Se il terminale non viene visualizzato nella parte inferiore dello schermo, aprilo:
- Fai clic su Visualizza.
- Fai clic su Terminale
.
5. Abilita API
Per utilizzare Cloud Run, Artifact Registry, Cloud Build, Vertex AI e Compute Engine, devi abilitare le rispettive API nel tuo progetto Google Cloud.
- Nel terminale, abilita le API:
Al termine dell'esecuzione, dovresti vedere un output simile al seguente:gcloud services enable \ run.googleapis.com \ artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ aiplatform.googleapis.com \ compute.googleapis.comOperation "operations/acat.p2-[GUID]" finished successfully.
Presentazione delle API
- L'API Cloud Run Admin (
run.googleapis.com) ti consente di eseguire servizi di frontend e backend, batch o siti web in un ambiente completamente gestito. Gestisce l'infrastruttura per il deployment e la scalabilità delle tue applicazioni containerizzate. - L'API Artifact Registry (
artifactregistry.googleapis.com) fornisce un repository sicuro e privato per archiviare le immagini container. È l'evoluzione di Container Registry e si integra perfettamente con Cloud Run e Cloud Build. - L'API Cloud Build (
cloudbuild.googleapis.com) è una piattaforma CI/CD serverless che esegue le build sull'infrastruttura Google Cloud. Viene utilizzato per creare l'immagine container nel cloud dal Dockerfile. - L'API Vertex AI (
aiplatform.googleapis.com) consente all'applicazione di cui è stato eseguito il deployment di comunicare con i modelli Gemini per eseguire attività di AI di base. Fornisce l'API unificata per tutti i servizi AI di Google Cloud. - L'API Compute Engine (
compute.googleapis.com) fornisce macchine virtuali sicure e personalizzabili che vengono eseguite sull'infrastruttura di Google. Sebbene Cloud Run sia gestito, l'API Compute Engine è spesso necessaria come dipendenza di base per varie risorse di networking e di calcolo.
6. Prepara l'ambiente di sviluppo
Crea la directory
- Nel terminale, crea la directory del progetto e le sottodirectory necessarie:
cd && mkdir zoo_guide_agent && cd zoo_guide_agent - Nel terminale, esegui questo comando per aprire la directory
zoo_guide_agentin Esplora dell'editor di Cloud Shell:cloudshell open-workspace ~/zoo_guide_agent - Il riquadro di esplorazione a sinistra verrà aggiornato. Ora dovresti vedere la directory che hai creato.
Impostare il progetto
- Nel terminale, imposta il progetto con questo comando:
Esempio:gcloud config set project [PROJECT_ID]gcloud config set project lab-project-id-example
- Dovresti visualizzare questo messaggio:
Updated property [core/project].
Requisiti di installazione
- Esegui questo comando nel terminale per creare il file
requirements.txt.cloudshell edit requirements.txt - Aggiungi quanto segue al file
requirements.txtappena creatogoogle-adk==1.14.0 langchain-community==0.3.27 wikipedia==1.4.0 - Nel terminale, crea e attiva un ambiente virtuale utilizzando uv. In questo modo, le dipendenze del progetto non entrano in conflitto con Python di sistema.
uv venv source .venv/bin/activate - Installa i pacchetti richiesti nell'ambiente virtuale nel terminale.
uv pip install -r requirements.txt
Imposta le variabili di ambiente
- Utilizza il seguente comando nel terminale per creare il file
.env.# 1. Set the variables in your terminal first PROJECT_ID=$(gcloud config get-value project) PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)") SA_NAME=lab2-cr-service # 2. Create the .env file using those variables cat <<EOF > .env PROJECT_ID=$PROJECT_ID PROJECT_NUMBER=$PROJECT_NUMBER SA_NAME=$SA_NAME SERVICE_ACCOUNT=${SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com MODEL="gemini-2.5-flash" EOF
7. Creazione flusso di lavoro agente
Crea file __init__.py
- Crea il file init.py eseguendo il seguente comando nel terminale:
Questo file indica a Python che la directory zoo_guide_agent è un pacchetto.cloudshell edit __init__.py - Aggiungi il codice seguente al nuovo file
__init__.py:from . import agent
Creare il file agent.py
- Crea il file
agent.pyprincipale incollando il seguente comando nel terminale.cloudshell edit agent.py - Importazioni e configurazione iniziale: aggiungi il seguente codice al file
agent.pyattualmente vuoto: Questo primo blocco del fileimport os import logging import google.cloud.logging from dotenv import load_dotenv from google.adk import Agent from google.adk.agents import SequentialAgent from google.adk.tools.tool_context import ToolContext from google.adk.tools.langchain_tool import LangchainTool from langchain_community.tools import WikipediaQueryRun from langchain_community.utilities import WikipediaAPIWrapper import google.auth import google.auth.transport.requests import google.oauth2.id_token # --- Setup Logging and Environment --- cloud_logging_client = google.cloud.logging.Client() cloud_logging_client.setup_logging() load_dotenv() model_name = os.getenv("MODEL")agent.pyimporta tutte le librerie necessarie dall'ADK e da Google Cloud. Configura anche la registrazione e carica le variabili di ambiente dal file.env, che è fondamentale per accedere all'URL del modello e del server. - Definisci gli strumenti: un agente è efficace solo quanto gli strumenti che può utilizzare. Aggiungi il seguente codice alla fine di
agent.pyper definire gli strumenti: The Tools Explained# Greet user and save their prompt def add_prompt_to_state( tool_context: ToolContext, prompt: str ) -> dict[str, str]: """Saves the user's initial prompt to the state.""" tool_context.state["PROMPT"] = prompt logging.info(f"[State updated] Added to PROMPT: {prompt}") return {"status": "success"} # Configuring the Wikipedia Tool wikipedia_tool = LangchainTool( tool=WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper()) )add_prompt_to_state📝: questo strumento ricorda le domande di un visitatore dello zoo. Quando un visitatore chiede: "Dove sono i leoni?", questo strumento salva la domanda specifica nella memoria dell'agente, in modo che gli altri agenti del flusso di lavoro sappiano cosa cercare.
Come: è una funzione Python che scrive il prompt del visitatore nel dizionariotool_context.statecondiviso. Il contesto dello strumento rappresenta la memoria a breve termine dell'agente per una singola conversazione. I dati salvati nello stato da un agente possono essere letti dall'agente successivo nel flusso di lavoro.LangchainTool🌍: fornisce all'agente guida turistica conoscenze generali sul mondo. Quando un visitatore pone una domanda che non è presente nel database dello zoo, ad esempio "Cosa mangiano i leoni in natura?", questo strumento consente all'agente di cercare la risposta su Wikipedia.
Come funziona:funge da adattatore, consentendo al nostro agente di utilizzare lo strumento predefinito WikipediaQueryRun della libreria LangChain.
- Definisci gli agenti specializzati: aggiungi il seguente codice in fondo a
agent.pyper definire gli agenticomprehensive_researchereresponse_formatter:# 1. Researcher Agent comprehensive_researcher = Agent( name="comprehensive_researcher", model=model_name, description="The primary researcher that can access both internal zoo data and external knowledge from Wikipedia.", instruction=""" You are a helpful research assistant. Your goal is to fully answer the user's PROMPT. You have access to two tools: 1. A tool for getting specific data about animals AT OUR ZOO (names, ages, locations). 2. A tool for searching Wikipedia for general knowledge (facts, lifespan, diet, habitat). First, analyze the user's PROMPT. - If the prompt can be answered by only one tool, use that tool. - If the prompt is complex and requires information from both the zoo's database AND Wikipedia, you MUST use both tools to gather all necessary information. - Synthesize the results from the tool(s) you use into preliminary data outputs. PROMPT: { PROMPT } """, tools=[ wikipedia_tool ], output_key="research_data" # A key to store the combined findings ) # 2. Response Formatter Agent response_formatter = Agent( name="response_formatter", model=model_name, description="Synthesizes all information into a friendly, readable response.", instruction=""" You are the friendly voice of the Zoo Tour Guide. Your task is to take the RESEARCH_DATA and present it to the user in a complete and helpful answer. - First, present the specific information from the zoo (like names, ages, and where to find them). - Then, add the interesting general facts from the research. - If some information is missing, just present the information you have. - Be conversational and engaging. RESEARCH_DATA: { research_data } """ )- L'agente
comprehensive_researcherè il "cervello" della nostra operazione. Prende il prompt dell'utente dalStatecondiviso, esamina lo strumento Wikipedia e decide quali utilizzare per trovare la risposta. - Il ruolo dell'agente
response_formatterè la presentazione. Prende i dati non elaborati raccolti dall'agente Ricercatore (trasmessi tramite lo stato) e utilizza le competenze linguistiche del LLM per trasformarli in una risposta amichevole e colloquiale.
- L'agente
- Definisci l'agente del workflow: aggiungi questo blocco di codice in fondo a
agent.pyper definire l'agente sequenzialetour_guide_workflow: L'agente del flusso di lavoro funge da gestore di "back office" per il tour dello zoo. Prende la richiesta di ricerca e assicura che i due agenti che abbiamo definito sopra svolgano il loro lavoro nell'ordine corretto: prima la ricerca, poi la formattazione. In questo modo, la procedura per rispondere alla domanda di un visitatore è prevedibile e affidabile.tour_guide_workflow = SequentialAgent( name="tour_guide_workflow", description="The main workflow for handling a user's request about an animal.", sub_agents=[ comprehensive_researcher, # Step 1: Gather all data response_formatter, # Step 2: Format the final response ] )
Come: è unSequentialAgent, un tipo speciale di agente che non pensa in modo autonomo. Il suo unico compito è eseguire un elenco disub_agents(il ricercatore e il formattatore) in una sequenza fissa, passando automaticamente la memoria condivisa da uno all'altro. - Assembla il flusso di lavoro principale: aggiungi questo blocco di codice finale alla fine di
agent.pyper definireroot_agent: Il framework ADK utilizzaroot_agent = Agent( name="greeter", model=model_name, description="The main entry point for the Zoo Tour Guide.", instruction=""" - Let the user know you will help them learn about the animals we have in the zoo. - When the user responds, use the 'add_prompt_to_state' tool to save their response. After using the tool, transfer control to the 'tour_guide_workflow' agent. """, tools=[add_prompt_to_state], sub_agents=[tour_guide_workflow] )root_agentcome punto di partenza per tutte le nuove conversazioni. Il suo ruolo principale è quello di orchestrare l'intero processo. Funge da controller iniziale, gestendo il primo turno della conversazione.

Il file agent.py completo
Il tuo file agent.py è stato completato. In questo modo, puoi vedere come ogni componente (strumenti, agenti worker e agenti manager) abbia un ruolo specifico nella creazione del sistema intelligente finale.
Il file completo dovrebbe avere il seguente aspetto:
import os
import logging
import google.cloud.logging
from dotenv import load_dotenv
from google.adk import Agent
from google.adk.agents import SequentialAgent
from google.adk.tools.tool_context import ToolContext
from google.adk.tools.langchain_tool import LangchainTool
from langchain_community.tools import WikipediaQueryRun
from langchain_community.utilities import WikipediaAPIWrapper
import google.auth
import google.auth.transport.requests
import google.oauth2.id_token
# --- Setup Logging and Environment ---
cloud_logging_client = google.cloud.logging.Client()
cloud_logging_client.setup_logging()
load_dotenv()
model_name = os.getenv("MODEL")
# Greet user and save their prompt
def add_prompt_to_state(
tool_context: ToolContext, prompt: str
) -> dict[str, str]:
"""Saves the user's initial prompt to the state."""
tool_context.state["PROMPT"] = prompt
logging.info(f"[State updated] Added to PROMPT: {prompt}")
return {"status": "success"}
# Configuring the Wikipedia Tool
wikipedia_tool = LangchainTool(
tool=WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper())
)
# 1. Researcher Agent
comprehensive_researcher = Agent(
name="comprehensive_researcher",
model=model_name,
description="The primary researcher that can access both internal zoo data and external knowledge from Wikipedia.",
instruction="""
You are a helpful research assistant. Your goal is to fully answer the user's PROMPT.
You have access to two tools:
1. A tool for getting specific data about animals AT OUR ZOO (names, ages, locations).
2. A tool for searching Wikipedia for general knowledge (facts, lifespan, diet, habitat).
First, analyze the user's PROMPT.
- If the prompt can be answered by only one tool, use that tool.
- If the prompt is complex and requires information from both the zoo's database AND Wikipedia,
you MUST use both tools to gather all necessary information.
- Synthesize the results from the tool(s) you use into preliminary data outputs.
PROMPT:
{ PROMPT }
""",
tools=[
wikipedia_tool
],
output_key="research_data" # A key to store the combined findings
)
# 2. Response Formatter Agent
response_formatter = Agent(
name="response_formatter",
model=model_name,
description="Synthesizes all information into a friendly, readable response.",
instruction="""
You are the friendly voice of the Zoo Tour Guide. Your task is to take the
RESEARCH_DATA and present it to the user in a complete and helpful answer.
- First, present the specific information from the zoo (like names, ages, and where to find them).
- Then, add the interesting general facts from the research.
- If some information is missing, just present the information you have.
- Be conversational and engaging.
RESEARCH_DATA:
{ research_data }
"""
)
tour_guide_workflow = SequentialAgent(
name="tour_guide_workflow",
description="The main workflow for handling a user's request about an animal.",
sub_agents=[
comprehensive_researcher, # Step 1: Gather all data
response_formatter, # Step 2: Format the final response
]
)
root_agent = Agent(
name="greeter",
model=model_name,
description="The main entry point for the Zoo Tour Guide.",
instruction="""
- Let the user know you will help them learn about the animals we have in the zoo.
- When the user responds, use the 'add_prompt_to_state' tool to save their response.
After using the tool, transfer control to the 'tour_guide_workflow' agent.
""",
tools=[add_prompt_to_state],
sub_agents=[tour_guide_workflow]
)
Il prossimo passo è il deployment.
8. Preparare l'applicazione per il deployment
Controlla la struttura finale
Prima del deployment, verifica che la directory del progetto contenga i file corretti.
- Assicurati che la cartella
zoo_guide_agentabbia il seguente aspetto:zoo_guide_agent/ ├── .env ├── __init__.py ├── agent.py └── requirements.txt
Configurare le autorizzazioni IAM
Con il codice locale pronto, il passaggio successivo consiste nel configurare l'identità che l'agente utilizzerà nel cloud.
- Nel terminale, carica le variabili nella sessione della shell.
source .env - Crea un service account dedicato per il tuo servizio Cloud Run in modo che disponga di un'autorizzazione specifica. Incolla il seguente codice nel terminale:
Creando un'identità dedicata per questa applicazione specifica, ti assicuri che l'agente disponga solo delle autorizzazioni esatte di cui ha bisogno, anziché utilizzare un account predefinito con un accesso eccessivamente ampio.gcloud iam service-accounts create ${SA_NAME} \ --display-name="Service Account for lab 2 " - Concedi al service account il ruolo Utente Vertex AI, che gli consente di chiamare i modelli di Google.
# Grant the "Vertex AI User" role to your service account gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$SERVICE_ACCOUNT" \ --role="roles/aiplatform.user"
9. Esegui il deployment dell'agente utilizzando ADK CLI
Con il codice locale pronto e il progetto Google Cloud preparato, è il momento di eseguire il deployment dell'agente. Utilizzerai il comando adk deploy cloud_run, uno strumento pratico che automatizza l'intero flusso di lavoro di deployment. Questo singolo comando comprime il codice, crea un'immagine container, la invia ad Artifact Registry e avvia il servizio su Cloud Run, rendendolo accessibile sul web.
- Esegui questo comando nel terminale per eseguire il deployment dell'agente.
Il comando# Run the deployment command uvx --from google-adk \ adk deploy cloud_run \ --project=$PROJECT_ID \ --region=europe-west1 \ --service_name=zoo-tour-guide \ --with_ui \ . \ -- \ --labels=dev-tutorial=codelab-adk \ --service-account=$SERVICE_ACCOUNTuvxti consente di eseguire strumenti a riga di comando pubblicati come pacchetti Python senza richiedere un'installazione globale di questi strumenti. - Se viene visualizzato il seguente messaggio:
In questo caso, digitaDeploying from source requires an Artifact Registry Docker repository to store built containers. A repository named [cloud-run-source-deploy] in region [europe-west1] will be created. Do you want to continue (Y/n)?
Ye premi Invio. - Se viene visualizzato il seguente messaggio:
DigitaAllow unauthenticated invocations to [your-service-name] (y/N)?.
ye premi INVIO. Ciò consente chiamate non autenticate per questo lab per facilitare i test. Se l'esecuzione va a buon fine, il comando fornirà l'URL del servizio Cloud Run di cui è stato eseguito il deployment. (Avrà un aspetto simile ahttps://zoo-tour-guide-123456789.europe-west1.run.app). - Copia l'URL del servizio Cloud Run di cui è stato eseguito il deployment per l'attività successiva.
10. Testa l'agente di cui è stato eseguito il deployment
Ora che l'agente è attivo su Cloud Run, esegui un test per verificare che il deployment sia stato eseguito correttamente e che l'agente funzioni come previsto. Utilizzerai l'URL del servizio pubblico (ad esempio https://zoo-tour-guide-123456789.europe-west1.run.app/) per accedere all'interfaccia web dell'ADK e interagire con l'agente.
- Apri l'URL del servizio Cloud Run pubblico nel browser web. Poiché hai utilizzato
--with_ui flag, dovresti visualizzare la UI per sviluppatori dell'ADK. - Attiva
Token Streamingin alto a destra.
Ora puoi interagire con l'agente dello zoo. - Digita
helloe premi Invio per iniziare una nuova conversazione. - Osserva il risultato. L'agente deve rispondere rapidamente con il suo saluto, che sarà simile a questo:
"Hello! I'm your Zoo Tour Guide. I can help you learn about the amazing animals we have here. What would you like to know or explore today?"
- Poni all'agente domande come:
Where can I find the polar bears in the zoo and what is their diet?

Spiegazione del flusso degli agenti
Il sistema funziona come un team multi-agente intelligente. La procedura è gestita da una sequenza chiara per garantire un flusso fluido ed efficiente dalla domanda di un utente alla risposta finale e dettagliata.
1. L'addetto all'accoglienza dello zoo (il banco di accoglienza)
L'intero processo inizia con l'agente di accoglienza.
- Il suo compito: avviare la conversazione. La sua istruzione è di salutare l'utente e chiedergli di quale animale vorrebbe saperne di più.
- Il suo strumento:quando l'utente risponde, il Greeter utilizza lo strumento add_prompt_to_state per acquisire le sue parole esatte (ad es. "tell me about the lions" (dimmi qualcosa sui leoni) e salvarli nella memoria del sistema.
- Il trasferimento: dopo aver salvato il prompt, il controllo passa immediatamente al relativo subagente, tour_guide_workflow.
2. Il ricercatore completo (il super-ricercatore)
Questo è il primo passaggio del flusso di lavoro principale e il "cervello" dell'operazione. Invece di un team numeroso, ora hai un unico agente altamente qualificato che può accedere a tutte le informazioni disponibili.
- Il suo compito: analizzare la domanda dell'utente e formulare un piano intelligente. Utilizza la funzionalità di utilizzo degli strumenti del modello linguistico per decidere se ha bisogno di:
- Conoscenze generali dal web (tramite l'API Wikipedia).
- Oppure, per domande complesse, entrambe.
3. The Response Formatter (The Presenter)
Una volta che il ricercatore completo ha raccolto tutti i fatti, questo è l'ultimo agente da eseguire.
- Il suo lavoro: fare da voce amichevole della guida del tour dello zoo. Prende i dati non elaborati (che potrebbero provenire da una o entrambe le origini) e li perfeziona.
- Azione:sintetizza tutte le informazioni in un'unica risposta coerente e coinvolgente. Seguendo le istruzioni, prima presenta le informazioni specifiche sullo zoo e poi aggiunge i fatti generali interessanti.
- Il risultato finale:il testo generato da questo agente è la risposta completa e dettagliata che l'utente vede nella finestra della chat.
Se ti interessa saperne di più sulla creazione di agenti, consulta le seguenti risorse:
11. Pulizia dell'ambiente
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina i servizi e le immagini Cloud Run
Se vuoi conservare il progetto Google Cloud, ma rimuovere le risorse specifiche create in questo lab, devi eliminare sia il servizio in esecuzione sia l'immagine container archiviata nel registro.
- Esegui questi comandi nel terminale:
gcloud run services delete zoo-tour-guide --region=europe-west1 --quiet gcloud artifacts repositories delete cloud-run-source-deploy --location=europe-west1 --quiet
(Facoltativo) Elimina il progetto
Se hai creato un nuovo progetto appositamente per questo lab e non prevedi di utilizzarlo di nuovo, il modo più semplice per eseguire la pulizia è eliminare l'intero progetto. In questo modo, tutte le risorse (inclusi il service account e gli artefatti di build nascosti) vengono rimosse completamente.
- Nel terminale, esegui il comando seguente (sostituisci [YOUR_PROJECT_ID] con l'ID progetto effettivo)
gcloud projects delete $PROJECT_ID
12. Complimenti
Hai creato ed eseguito correttamente il deployment di un'applicazione AI multi-agente su Google Cloud.
Riepilogo
In questo lab, sei passato da una directory vuota a un servizio di AI live e accessibile pubblicamente. Ecco un riepilogo di ciò che hai creato:
- Hai creato un team specializzato: anziché un'AI generica, hai creato un "Ricercatore" per trovare i fatti e un "Formattatore" per perfezionare la risposta.
- Hai fornito loro gli strumenti: hai connesso i tuoi agenti al mondo esterno utilizzando l'API Wikipedia.
- Hai eseguito la spedizione: hai preso il tuo codice Python locale e l'hai sottoposto a deployment come container serverless su Cloud Run, proteggendolo con un service account dedicato.
Argomenti trattati
- Come strutturare un progetto Python per il deployment con l'ADK.
- Come implementare un workflow multi-agente utilizzando
[SequentialAgent](https://google.github.io/adk-docs/agents/workflow-agents/sequential-agents/). - Come integrare strumenti esterni come l'API Wikipedia.
- Come eseguire il deployment di un agente in Cloud Run utilizzando il comando
adk deploy.
13. Sondaggio
Output: