En este instructivo, se explica cómo implementar un agente de Agent-to-Agent (A2A), compilado con el Kit de desarrollo de agentes (ADK) de Google y la extensión A2UI, en Cloud Run. También aprenderás a registrar el agente implementado en Gemini Enterprise.
El código de muestra de este instructivo tiene la siguiente estructura de carpetas.
Estructura de carpetas del instructivo
El proyecto tiene la siguiente estructura de carpetas:
| Archivo/Directorio | Descripción |
|---|---|
examples/0.8/ |
Directorio que contiene datos o configuraciones de ejemplo |
__init__.py |
Marca el directorio como un paquete de Python |
agent.py |
Define el agente, sus habilidades y su comportamiento |
agent_executor.py |
Administra el flujo de ejecución y las interacciones de herramientas |
contact_data.json |
Datos de muestra que usa el agente (por ejemplo, contactos ficticios) |
deploy.sh |
Secuencia de comandos para compilar y, luego, implementar el agente en Cloud Run |
main.py |
El punto de entrada principal de la aplicación (app de FastAPI) |
prompt_builder.py |
Ayuda a construir mensajes para el modelo |
pyproject.toml |
Configuración y dependencias del proyecto |
tools.py |
Define las herramientas (funciones) que puede usar el agente |
Antes de comenzar
Antes de comenzar, asegúrate de tener lo siguiente:
El rol de administrador de Discovery Engine
Una app de Gemini Enterprise existente. Para crear una app, consulta Crea una app.
Clona el repositorio y navega al directorio de muestra
cloud_run:git clone https://github.com/a2ui-project/a2ui.git cd a2ui/samples/community/agent/adk/gemini_enterprise/cloud_run
Habilita las APIs
Habilita las siguientes APIs para tu proyecto:
Console
Habilita las siguientes APIs:
- La API de Vertex AI
- API de Cloud Build
- API de Artifact Registry
- API de Cloud Run
- API de Cloud Logging
- API de Discovery Engine
- API de Cloud Storage
- API de Identity and Access Management (IAM)
REST
Puedes habilitar estas APIs desde la Google Cloud consola o con el siguiente comando de 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
Otorgar permisos
Otorga permiso al rol Invocador de Cloud Run (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"
Reemplaza lo siguiente:
- PROJECT_ID : el ID de tu proyecto.
- PROJECT_NUMBER: Tu Google Cloud número de proyecto.
Implementa el agente
La secuencia de comandos deploy.sh automatiza el proceso de implementación. Para implementar tu agente,
ejecuta la secuencia de comandos desde el directorio del proyecto con tu Google Cloud ID y un nombre
para tu nuevo servicio. También puedes especificar el modelo de Gemini que deseas usar.
La secuencia de comandos realiza las siguientes acciones:
- Compila una imagen de contenedor a partir de tu código fuente.
- Envía la imagen a Artifact Registry.
- Implementa la imagen en Cloud Run.
- Establece variables de entorno, incluidas
MODELy laAGENT_URLpública del servicio.
chmod +x deploy.sh
./deploy.sh YOUR_PROJECT_ID contacts-agent MODEL_NAME
Reemplaza lo siguiente:
- PROJECT_ID: el ID de tu proyecto.
- MODEL_NAME: Opcional Este es el tercer argumento de la secuencia de comandos. Los valores admitidos son
gemini-2.5-proygemini-2.5-flash. Si no se proporciona, la secuencia de comandos usagemini-2.5-flashde forma predeterminada.
Una vez que se complete la secuencia de comandos, imprimirá la URL de servicio de tu agente implementado. Necesitarás esta URL de servicio en el siguiente paso.
Registra el agente en Gemini Enterprise
Ahora que tu agente está implementado, debes registrarlo en Gemini Enterprise para que se pueda detectar.
Ejecuta el siguiente comando curl y reemplaza los marcadores de posición por tus propios valores:
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\"]}"
}
}'
Reemplaza lo siguiente:
PROJECT_NUMBER: Tu Google Cloud número de proyecto.LOCATION: Es la multirregión de tu almacén de datos:global,usoeu.ENGINE_ID: Es el ID de la app con la que deseas registrar el agente.AGENT_URL: Es la URL de servicio de tu agente implementado.
Usa el agente en la app web de Gemini Enterprise
Después de crear y registrar un agente, puedes comenzar a usarlo y a interactuar con él en la app web de Gemini Enterprise.
Obtén la URL de la app web
Para usar el agente, primero debes obtener la URL de la app web. Un administrador de Gemini Enterprise puede obtener y compartir la URL de la app web siguiendo estos pasos:
En la Google Cloud consola de, ve a la página Gemini Enterprise.
Haz clic en el nombre de la app con la que registraste el agente.
Haz clic en Integrations.
Copia el vínculo a tu app web y compártelo con los usuarios de la organización.
Usa el agente
Para usar el agente y interactuar con él, haz lo siguiente:
- Abre la URL de la app web en una nueva pestaña del navegador.
- En el menú de navegación de la app web, haz clic en Agents.
- Ve a la sección De tu organización y haz clic en el agente que creaste.
- Se abrirá la interfaz conversacional del agente. Comienza a hacer preguntas y a interactuar con el agente.
Por ejemplo, puedes pedirle al agente que muestre todos los contactos. El agente usa la herramienta list_contacts para recuperar los contactos de contact_data.json y renderiza la lista en el chat con elementos de IU personalizados, como se muestra en el siguiente ejemplo:
