Questo tutorial spiega come eseguire il deployment di un agente Agent-to-Agent (A2A), creato con Google Agent Development Kit (ADK) e l'estensione A2UI, su Cloud Run. Scopri anche come registrare l'agente di cui è stato eseguito il deployment in Gemini Enterprise.
Il codice campione per questo tutorial ha la seguente struttura di cartelle.
Struttura delle cartelle del tutorial
Il progetto ha la seguente struttura di cartelle:
| File/Directory | Descrizione |
|---|---|
examples/0.8/ |
Directory contenente configurazioni o dati di esempio. |
__init__.py |
Contrassegna la directory come pacchetto Python. |
agent.py |
Definisce l'agente, le sue competenze e il suo comportamento. |
agent_executor.py |
Gestisce il flusso di esecuzione e le interazioni con gli strumenti. |
contact_data.json |
Dati di esempio utilizzati dall'agente (ad esempio, contatti simulati). |
deploy.sh |
Script per creare ed eseguire il deployment dell'agente su Cloud Run. |
main.py |
L'entry point principale dell'applicazione (app FastAPI). |
prompt_builder.py |
Helper per creare prompt per il modello. |
pyproject.toml |
Configurazione e dipendenze del progetto. |
tools.py |
Definisce gli strumenti (funzioni) che l'agente può utilizzare. |
Prima di iniziare
Prima di iniziare, assicurati di avere quanto segue:
Il ruolo Amministratore di Discovery Engine.
Un'app Gemini Enterprise esistente. Per creare un'app, consulta Creare un'app.
Clona il repository e vai alla directory di esempio
cloud_run:git clone https://github.com/google/A2UI.git cd A2UI/samples/agent/adk/gemini_enterprise/cloud_run
Abilita API
Abilita le seguenti API per il tuo progetto:
Console
Abilita le seguenti API:
- API Agent Platform
- API Cloud Build
- API Artifact Registry
- API Cloud Run
- API Cloud Logging
- API Discovery Engine
- API Storage Cloud
- API Identity and Access Management (IAM)
REST
Puoi abilitare queste API dalla Google Cloud console o utilizzando il seguente comando gcloud CLI:
gcloud services enable aiplatform.googleapis.com cloudbuild.googleapis.com artifactregistry.googleapis.com run.googleapis.com logging.googleapis.com discoveryengine.googleapis.com storage.googleapis.com iam.googleapis.com
Concedi le autorizzazioni
Concedi l'autorizzazione al ruolo Cloud Run Invoker (roles/run.invoker).
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com" \
--role="roles/run.invoker"
Sostituisci quanto segue:
- PROJECT_ID : l'ID progetto.
- PROJECT_NUMBER: il Google Cloud numero del progetto.
Esegui il deployment dell'agente
Lo script deploy.sh automatizza la procedura di deployment. Per eseguire il deployment dell'agente,
esegui lo script dalla directory del progetto con il tuo Google Cloud ID e un nome
per il nuovo servizio. Facoltativamente, puoi anche specificare il modello Gemini da utilizzare.
Lo script esegue le seguenti azioni:
- Crea un'immagine container dal codice sorgente.
- Esegue il push dell'immagine in Artifact Registry.
- Esegue il deployment dell'immagine in Cloud Run.
- Imposta le variabili di ambiente, inclusi
MODELe l'URL pubblicoAGENT_URLdel servizio stesso.
chmod +x deploy.sh
./deploy.sh YOUR_PROJECT_ID contacts-agent MODEL_NAME
Sostituisci quanto segue:
- PROJECT_ID: l'ID progetto.
- MODEL_NAME: (facoltativo). Questo è il terzo argomento dello script. I valori supportati sono
gemini-2.5-proegemini-2.5-flash. Se non viene fornito, lo script utilizza per impostazione predefinitagemini-2.5-flash.
Al termine dello script, viene stampato l'URL del servizio dell'agente di cui è stato eseguito il deployment. Avrai bisogno di questo URL del servizio nel passaggio successivo.
Registra l'agente in Gemini Enterprise
Ora che l'agente è stato sottoposto a deployment, devi registrarlo in Gemini Enterprise per renderlo rilevabile.
Esegui il seguente comando curl, sostituendo i segnaposto con i tuoi valori:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/LOCATION/collections/default_collection/engines/ENGINE_ID/assistants/default_assistant/agents -d '{
"name": "contacts-agent",
"displayName": "Contacts Agent",
"description": "This is a test agent which lists the contacts.",
"a2aAgentDefinition": {
"jsonAgentCard": "{\"protocolVersion\": \"0.3.0\", \"name\": \"contacts-agent\", \"description\": \"This is a test agent which lists the contacts.\", \"url\": \"AGENT_URL\", \"version\": \"1.0.0\", \"capabilities\": {\"streaming\": true, \"extensions\": [{\"uri\": \"https://a2ui.org/a2a-extension/a2ui/v0.8\", \"description\": \"Ability to render A2UI\", \"required\": false, \"params\": {\"supportedCatalogIds\": [\"https://a2ui.org/specification/v0_8/standard_catalog_definition.json\"]}}]}, \"skills\": [], \"defaultInputModes\": [\"text/plain\"], \"defaultOutputModes\": [\"text/plain\"]}"
}
}'
Sostituisci quanto segue:
PROJECT_NUMBER: il Google Cloud numero del progetto.LOCATION: la regione multipla del tuo datastore:global,usoeuENGINE_ID: l'ID dell'app in cui vuoi registrare l'agente.AGENT_URL: l'URL del servizio dell'agente di cui è stato eseguito il deployment.
Utilizza l'agente nell'app web Gemini Enterprise
Dopo aver creato e registrato un agente, puoi iniziare a utilizzarlo e interagire con esso nell'app web Gemini Enterprise.
Recupera l'URL dell'app web
Per utilizzare l'agente, devi prima recuperare l'URL dell'app web. Un amministratore di Gemini Enterprise può recuperare e condividere l'URL dell'app web seguendo questi passaggi:
Nella Google Cloud console, vai alla pagina Gemini Enterprise.
Fai clic sul nome dell'app in cui hai registrato l'agente.
Fai clic su Integrazioni.
Copia il link all'app web e condividilo con gli utenti dell'organizzazione.
Utilizza l'agente
Per utilizzare l'agente e interagire con esso:
- Apri l'URL dell'app web in una nuova scheda del browser.
- Nel menu di navigazione dell'app web, fai clic su Agenti.
- Vai alla sezione Dalla tua organizzazione e fai clic sull'agente che hai creato.
- Si aprirà l'interfaccia conversazionale per l'agente. Inizia a porre domande e a interagire con l'agente.
Ad esempio, puoi chiedere all'agente di elencare tutti i contatti. L'agente utilizza lo strumento list_contacts per recuperare i contatti da contact_data.json e visualizza l'elenco nella chat utilizzando elementi dell'interfaccia utente personalizzati, come mostrato nell'esempio seguente:
