Agente a agente (A2A) es un protocolo de comunicación abierto y un lenguaje universal para los agentes. Permite que los agentes de diferentes creadores y plataformas se descubran entre sí, colaboren y deleguen tareas de forma segura. En este documento se explica cómo pueden conectar los administradores de Gemini Enterprise a Gemini Enterprise los agentes creados con A2A y alojados en cualquier plataforma, de modo que los usuarios puedan acceder a ellos en la aplicación web Gemini Enterprise.
Antes de empezar
Asegúrate de que tienes lo siguiente:
Habilita la API Discovery Engine. Para habilitar la API Discovery Engine en el Google Cloud proyecto, en la Google Cloud consola, ve a la página de la API Discovery Engine.
Una aplicación de Gemini Enterprise. Para crear una aplicación, consulta Crear una aplicación.
Un agente que usa el protocolo A2A.
Configurar los detalles de la autorización
Crea credenciales de OAuth 2.0 para que el agente acceda a Google Cloud recursos, como tablas de BigQuery, en nombre de un usuario.
Obtener detalles de la autorización
Sigue estos pasos para obtener los detalles de la autorización.
En la Google Cloud consola, en la página APIs & Services (APIs y servicios), ve a la página Credentials (Credenciales).
Selecciona el proyecto Google Cloud que contiene la fuente de datos a la que quieres que acceda el agente. Por ejemplo, selecciona el proyecto que contiene el conjunto de datos de BigQuery que quieres que consulte el agente.
Haz clic en Crear credenciales y selecciona ID de cliente de OAuth.
En Tipo de aplicación, selecciona Aplicación web.
En la sección URIs de redirección autorizados, añade los siguientes URIs:
https://vertexaisearch.cloud.google.com/oauth-redirecthttps://vertexaisearch.cloud.google.com/static/oauth/oauth.html
Haz clic en Crear.
En el panel Cliente de OAuth creado, haz clic en Descargar JSON. El archivo JSON descargado incluye los campos
Client ID,Authorization URI,Token URIyClient secretdelGoogle Cloud proyecto seleccionado. Necesitarás estos datos para crear un recurso de autorización:
Añadir un recurso de autorización a Gemini Enterprise
Ejecuta el siguiente comando para registrar un recurso de autorización con Gemini Enterprise:
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/authorizations?authorizationId=AUTH_ID" \
-d '{
"name": "projects/PROJECT_ID/locations/LOCATION/authorizations/AUTH_ID",
"serverSideOauth2": {
"clientId": "OAUTH_CLIENT_ID",
"clientSecret": "OAUTH_CLIENT_SECRET",
"authorizationUri": "OAUTH_AUTH_URI",
"tokenUri": "OAUTH_TOKEN_URI"
}
}'
Haz los cambios siguientes:
PROJECT_ID: el ID de tu proyecto.ENDPOINT_LOCATION: la multirregión de tu solicitud a la API. Asigna uno de los siguientes valores:us-para la multirregión de EE. UU.eu-para la multirregión de la UEglobal-para la ubicación global
LOCATION: la multirregión de tu almacén de datos:global,usoeuAUTH_ID: ID del recurso de autorización. Se trata de un ID alfanumérico arbitrario que defines. Necesitarás hacer referencia a este ID más adelante cuando registres un agente que requiera compatibilidad con OAuth.OAUTH_CLIENT_ID: el identificador de cliente de OAuth 2.0 que obtuviste al crear las credenciales de OAuth.OAUTH_CLIENT_SECRET: el secreto de cliente de OAuth 2.0 que obtuviste al crear las credenciales de OAuth.OAUTH_AUTH_URI: el URI de autorización que obtuviste cuando creaste las credenciales de OAuth. Tiene el siguiente formato:https://accounts.google.com/o/oauth2/v2/auth?client_id=CLIENT_ID&redirect_uri=https%3A%2F%2Fvertexaisearch.cloud.google.com%2Fstatic%2Foauth%2Foauth.html&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbigquery&include_granted_scopes=true&response_type=code&access_type=offline&prompt=consentOAUTH_TOKEN_URI: el URI del token que has obtenido al crear las credenciales de OAuth.
Registrar un agente A2A en Gemini Enterprise
Puedes registrar tu agente A2A en Gemini Enterprise mediante laGoogle Cloud consola o la API REST. De este modo, el agente estará disponible para los usuarios de una aplicación de Gemini Enterprise.
Consola
Para registrar un agente de A2A mediante la consola Google Cloud , sigue estos pasos:
En la Google Cloud consola, ve a la página de Gemini Enterprise.
Haz clic en el nombre de la aplicación en la que quieras registrar el agente.
Haz clic en Agentes > Añadir agentes.
En la sección Choose an agent type (Elige un tipo de agente), haz clic en Add (Añadir) en Custom agent via A2A (Agente personalizado mediante A2A).
En el campo JSON de la tarjeta del agente, introduce los detalles de la tarjeta del agente en formato JSON. Para ver una lista completa de los campos disponibles, consulta la especificación oficial del protocolo Agent2Agent (A2A). En el siguiente ejemplo solo se usan los campos obligatorios.
Por ejemplo:
{ "protocolVersion": "v1.0", "name": "Hello World Agent", "description": "Just a hello world agent", "url": "https://example.com/myagent", "iconUrl": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTkiIGhlaWdodD0iOTkiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOmdyYXk7IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0zMyAwaDMzdjMzSDMzeiBNMCAzM2gzM3YzM0gweiBNNjYgMzNoMzN2MzNINjZ6IE0zMyA2NmgzM3YzM0gzM3oiIGZpbGw9ImJsdWUiLz48L3N2Zz4=", "version": "1.0.0", "capabilities": { }, "skills": [ { "id": "data-analysis", "name": "Data Analysis", "description": "Data analysis", "tags": [] } ], "defaultInputModes": [ "text/plain" ], "defaultOutputModes": [ "text/plain" ] }Haz clic en Ver detalles del agente > Siguiente.
Completa la configuración con uno de los siguientes métodos:
Si quieres que el agente acceda a los recursos en tu nombre, sigue estos pasos: Google Cloud
Introduce el ID de cliente, el secreto de cliente, el URI de autorización y el URI de token que has generado en la sección Obtener detalles de autorización.
Introduce los ámbitos.
Haz clic en Finalizar.
Si no quieres que el agente acceda a los recursos en tu nombre, haz clic en Omitir y finalizar. Google Cloud
REST
Para crear y registrar un agente con Gemini Enterprise, usa el método agents.create. El siguiente comando solo usa los campos obligatorios. Para ver una lista completa de los campos disponibles, consulta la especificación oficial del protocolo de agente a agente (A2A).
Ejecuta este comando para registrar tu agente A2A en Gemini Enterprise:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents \
-d '
{
"name": "AGENT_NAME",
"displayName": "AGENT_DISPLAY_NAME",
"description": "AGENT_DESCRIPTION",
"a2aAgentDefinition": {
"jsonAgentCard": "{\"protocolVersion\":\"PROTOCOLVERSION\",\"name\":\"AGENT_NAME\",\"description\":\"AGENT_DESCRIPTION\",\"url\":\"AGENT_URL\",\"version\":\"AGENT_VERSION\",\"defaultInputModes\":[\"INPUT_MODE\"],\"defaultOutputModes\":[\"OUTPUT_MODE\"],\"capabilities\":{ CAPABILITIES },\"skills\":[SKILLS]}"
},
"authorizationConfig": {
"agentAuthorization": "projects/PROJECT_ID/locations/LOCATION/authorizations/AUTH_ID"
}
}
'
Haz los cambios siguientes:
ENDPOINT_LOCATION: la multirregión de tu solicitud a la API. Asigna uno de los siguientes valores:us-para la multirregión de EE. UU.eu-para la multirregión de la UEglobal-para la ubicación global
LOCATION: la multirregión de tu almacén de datos:global,usoeuPROJECT_ID: el ID de tu proyecto.APP_ID: el ID de la aplicación con la que quieres registrar el agente.AGENT_NAME: identificador único del agente.AGENT_DISPLAY_NAME: el nombre del agente que se muestra en la aplicación web.AGENT_DESCRIPTION: la descripción de lo que puede hacer el agente.PROTOCOLVERSION: la versión del protocolo A2A que admite el agente. Para obtener más información sobre las versiones admitidas, consulta las notas de la versión de A2A.AGENT_URL: URL del endpoint del agente.AGENT_VERSION: la versión del agente.INPUT_MODE: el tipo de medio de entrada predeterminado. Por ejemplo,application/jsonotext/plain.OUTPUT_MODE: el tipo de medio de salida predeterminado. Por ejemplo,text/plain"oimage/png.CAPABILITIES: un objeto JSON que contiene las funciones de A2A admitidas. Por ejemplo,\"streaming\": trueo\"pushNotifications\": false.SKILLS: lista del objetoAgentSkillque ofrece el agente.authorizationConfig: Si has obtenido los detalles de autorización y quieres que el agente acceda a los recursos en nombre del usuario, añade el campoauthorization_configa tu recurso JSON. Google CloudAUTH_ID: el valor que has usado para AUTH_ID en la sección Añadir un recurso de autorización a Gemini Enterprise.
Mostrar los agentes conectados a una aplicación
En el siguiente ejemplo de código se muestra cómo obtener los detalles de todos los agentes conectados a tu aplicación:
REST
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents"
Sustituye las variables por los valores correspondientes:
- ENDPOINT_LOCATION-: la multirregión de tu solicitud a la API. Asigna uno de los siguientes valores:
us-para la multirregión de EE. UU.eu-para la multirregión de la UEglobal-para la ubicación global
- PROJECT_ID: el ID de tu proyecto de Google Cloud .
- LOCATION: la multirregión de tu aplicación:
global,usoeu. - APP_ID: el ID de tu aplicación de Gemini Enterprise.
Si Google no ha precompilado tu agente, la respuesta incluye un campo name en las primeras líneas. El valor de este campo contiene el ID del agente al final de la ruta. Por ejemplo, en la siguiente respuesta, el ID de agente es 12345678901234567890:
{
"name": "projects/123456/locations/global/collections/default_collection/engines/my-app/assistants/default_assistant/agents/12345678901234567890",
...
}
Ver los detalles de un agente A2A
En el siguiente código de ejemplo se muestra cómo puedes obtener los detalles de un agente que se ha registrado en Gemini Enterprise:
REST
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents/AGENT_ID"
Sustituye las variables por los valores correspondientes:
- ENDPOINT_LOCATION-: la multirregión de tu solicitud a la API. Asigna uno de los siguientes valores:
us-para la multirregión de EE. UU.eu-para la multirregión de la UEglobal-para la ubicación global
- PROJECT_ID: el ID de tu proyecto de Google Cloud .
- LOCATION: la multirregión de tu aplicación:
global,usoeu. - APP_ID: el ID de tu aplicación de Gemini Enterprise.
- AGENT_ID: el ID del agente. Puedes encontrar el ID del agente consultando la lista de agentes conectados a tu aplicación.
Actualizar un agente A2A
Puedes modificar los detalles de un agente de A2A registrado en Gemini Enterprise mediante la Google Cloud consola o la API REST.
Consola
Para actualizar un agente de A2A mediante la Google Cloud consola, sigue estos pasos:
En la Google Cloud consola, ve a la página de Gemini Enterprise.
Haz clic en el nombre de la aplicación que incluye el agente que quieres actualizar.
Haz clic en Agentes.
Haga clic en el nombre del agente A2A (Custom) que quiera actualizar y, a continuación, haga clic en Editar.
En el campo JSON de la tarjeta de agente, actualiza los detalles de la tarjeta de agente en formato JSON. Para ver una lista completa de los campos disponibles, consulta la especificación oficial del protocolo Agent2Agent (A2A). En el siguiente ejemplo solo se usan los campos obligatorios.
Por ejemplo:
{ "protocolVersion": "v3.0", "name": "Hello World Agent", "description": "Just a hello world agent", "url": "https://example.com/myagent", "iconUrl": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTkiIGhlaWdodD0iOTkiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOmdyYXk7IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0zMyAwaDMzdjMzSDMzeiBNMCAzM2gzM3YzM0gweiBNNjYgMzNoMzN2MzNINjZ6IE0zMyA2NmgzM3YzM0gzM3oiIGZpbGw9ImJsdWUiLz48L3N2Zz4=", "version": "1.1.0", "capabilities": { }, "skills": [ { "id": "data-analysis", "name": "Data Analysis", "description": "Data analysis", "tags": [] } ], "defaultInputModes": [ "text/plain" ], "defaultOutputModes": [ "text/plain" ] }Haz clic en Guardar.
REST
Para actualizar los detalles de un agente de A2A registrado en Gemini Enterprise, usa el método agents.patch. El siguiente comando solo usa los campos obligatorios. Para ver una lista completa de los campos disponibles, consulta la especificación oficial del protocolo Agent2Agent (A2A).
Ejecuta este comando para actualizar tu agente A2A con Gemini Enterprise:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents/AGENT_ID \
-d '
{
"name": "AGENT_NAME",
"displayName": "AGENT_DISPLAY_NAME",
"description": "AGENT_DESCRIPTION",
"a2aAgentDefinition": {
"jsonAgentCard": "{\"protocolVersion\":\"PROTOCOLVERSION\",\"name\":\"AGENT_NAME\",\"description\":\"AGENT_DESCRIPTION\",\"url\":\"AGENT_URL\",\"version\":\"AGENT_VERSION\",\"defaultInputModes\":[\"INPUT_MODE\"],\"defaultOutputModes\":[\"OUTPUT_MODE\"],\"capabilities\":{ CAPABILITIES },\"skills\":[SKILLS]}"
},
"authorizationConfig": {
"agentAuthorization": "projects/PROJECT_ID/locations/LOCATION/authorizations/AUTH_ID"
}
}
'
Haz los cambios siguientes:
ENDPOINT_LOCATION: la multirregión de tu solicitud a la API. Asigna uno de los siguientes valores:us-para la multirregión de EE. UU.eu-para la multirregión de la UEglobal-para la ubicación global
LOCATION: la multirregión de tu almacén de datos:global,usoeu.PROJECT_ID: el ID de tu proyecto.APP_ID: el ID de la aplicación en la que quieres registrar el agente.- AGENT_ID: el ID del agente. Puedes encontrar el ID del agente consultando la lista de agentes conectados a tu aplicación.
AGENT_NAME: identificador único del agente.AGENT_DISPLAY_NAME: el nombre del agente que se muestra en la aplicación web.AGENT_DESCRIPTION: la descripción de lo que puede hacer el agente.PROTOCOLVERSION: la versión del protocolo A2A que admite el agente. Para obtener más información sobre las versiones admitidas, consulta las notas de la versión de A2A.AGENT_URL: URL del endpoint del agente.AGENT_VERSION: la versión del agente.INPUT_MODE: el tipo de medio de entrada predeterminado. Por ejemplo,application/jsonotext/plain.OUTPUT_MODE: el tipo de medio de salida predeterminado. Por ejemplo,text/plainoimage/png.CAPABILITIES: un objeto JSON que contiene las funciones de A2A admitidas. Por ejemplo,\"streaming\": trueo\"pushNotifications\": false.SKILLS: lista del objetoAgentSkillque ofrece el agente.authorizationConfig: Si has obtenido los detalles de autorización y quieres que el agente acceda a los recursos en nombre del usuario, añade el campoauthorization_configa tu recurso JSON. Google CloudAUTH_ID: el valor que has usado para AUTH_ID en la sección Añadir un recurso de autorización a Gemini Enterprise.
Eliminar un agente de A2A
En el siguiente ejemplo de código se muestra cómo puedes eliminar un agente que esté conectado a tu aplicación:
REST
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents/AGENT_ID"
Sustituye las variables por los valores correspondientes:
- ENDPOINT_LOCATION-: la multirregión de tu solicitud a la API. Asigna uno de los siguientes valores:
us-para la multirregión de EE. UU.eu-para la multirregión de la UEglobal-para la ubicación global
- PROJECT_ID: el ID de tu proyecto de Google Cloud .
- LOCATION: la multirregión de tu aplicación:
global,usoeu - APP_ID: el ID de tu aplicación de Gemini Enterprise.
- AGENT_ID: el ID del agente. Puedes encontrar el ID del agente consultando la lista de agentes conectados a tu aplicación.
Siguientes pasos
- Usa el agente que has registrado en Gemini Enterprise en la aplicación web.