Enregistrer et gérer des agents A2A

Le protocole Agent2Agent (A2A) est un protocole de communication ouvert et un langage universel pour les agents. Le protocole permet aux agents de différents créateurs et plates-formes de se découvrir, de collaborer et de déléguer des tâches de manière sécurisée. Ce document explique comment les administrateurs Gemini Enterprise peuvent connecter à Gemini Enterprise des agents créés à l'aide d'A2A et hébergés sur n'importe quelle plate-forme, afin de les mettre à la disposition des utilisateurs dans l'application Web Gemini Enterprise.

Avant de commencer

Assurez-vous de disposer des éléments suivants :

  • Le rôle Administrateur Gemini Enterprise.

  • Activez l'API Discovery Engine. Pour activer l'API Discovery Engine pour le projet Google Cloud, accédez à la page API Discovery Engine dans la console Google Cloud .

    Accéder à l'API Discovery Engine

  • Une application Gemini Enterprise existante. Pour créer une application, consultez Créer une application.

  • Agent qui utilise le protocole A2A.

    Gemini Enterprise est compatible avec le mécanisme de streaming A2A v0.3.

    Si vous utilisez A2A v1.0.0 ou une version ultérieure, utilisez les packages de compatibilité fournis par le SDK pour vous assurer que votre agent fonctionne avec l'ancien mécanisme (par exemple, le package a2acompat/a2av0 pour Go ou le package a2a.compat.v0_3 pour Python).

  • Si votre agent A2A est hébergé sur Cloud Run, utilise directement une URL .run.app par défaut et nécessite une authentification, attribuez le rôle Demandeur Cloud Run (roles/run.invoker) à l'agent de service Discovery Engine (cela ne s'applique pas lorsque Cloud Run se trouve derrière Apigee, un équilibreur de charge ou un domaine personnalisé) :

    gcloud projects add-iam-policy-binding <var>PROJECT_ID</var> \
       --member="serviceAccount:service-<var>PROJECT_NUMBER</var>@gcp-sa-discoveryengine.iam.gserviceaccount.com" \
       --role="roles/run.invoker"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : par l'ID du projet.
    • PROJECT_NUMBER : numéro de votre projet Google Cloud .

Configurer l'authentification et l'autorisation

En fonction de l'environnement d'hébergement de votre agent et de vos exigences de sécurité, vous pouvez configurer la manière dont Gemini Enterprise s'authentifie auprès de votre agent, la manière dont votre agent accède aux ressources au nom de l'utilisateur final et la manière de sécuriser le point de terminaison de votre agent.

Comment Gemini Enterprise s'authentifie auprès de votre agent

Lorsque Gemini Enterprise appelle un agent A2A, il peut envoyer des données d'authentification et d'autorisation dans les en-têtes de requête, en fonction de votre configuration d'hébergement et de sécurité :

En-tête Description
X-Serverless-Authorization

Authentification IAM de service à service (pour Cloud Run).

Si votre agent A2A est hébergé sur Cloud Run et que son URL est une URL .run.app par défaut, Gemini Enterprise génère automatiquement un jeton d'ID OIDC signé par Google pour l'agent de service Discovery Engine (service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com) avec l'URL de votre agent comme audience, et l'associe dans l'en-tête X-Serverless-Authorization. Si l'URL de votre agent utilise Apigee, un équilibreur de charge ou un domaine personnalisé, Gemini Enterprise n'envoie pas cet en-tête.

Lorsque Gemini Enterprise appelle directement une URL .run.app par défaut, l'infrastructure d'entrée Cloud Run utilise cet en-tête pour vérifier que l'agent de service dispose du rôle IAM roles/run.invoker (voir Avant de commencer) avant de transférer la requête au conteneur de votre application.

Authorization

Autorisation OAuth 2.0 de l'utilisateur final (pour le contexte utilisateur et l'accès à l'API).

Si vous configurez des identifiants OAuth 2.0 pour votre agent A2A (voir Configurer OAuth 2.0 pour l'autorisation de l'utilisateur final), Gemini Enterprise acquiert un jeton d'accès ou un jeton d'ID OAuth 2.0 au nom de l'utilisateur final connecté après qu'il a donné son consentement, et l'envoie dans l'en-tête Authorization standard (par exemple, Bearer USER_OAUTH_TOKEN).

Cloud Run transmet l'en-tête Authorization directement à votre conteneur, ce qui permet au code de votre application d'agent de lire le jeton utilisateur et d'appeler les API en aval au nom de l'utilisateur.

Configurer OAuth 2.0 pour l'autorisation de l'utilisateur final (facultatif)

Pour les agents A2A, configurez des identifiants OAuth 2.0 si votre agent doit accéder aux ressourcesGoogle Cloud ou effectuer des opérations au nom de l'utilisateur final. Pour en savoir plus sur le fonctionnement des en-têtes d'authentification et d'autorisation, consultez Comment Gemini Enterprise s'authentifie auprès de votre agent.

Pour créer un ID client OAuth, procédez comme suit :

  1. Dans la console Google Cloud , sur la page API et services, accédez à la page Identifiants.

    Accéder à "Identifiants"

  2. Sélectionnez le projet Google Cloud , qui contient la source de données à laquelle vous souhaitez que l'agent accède. Par exemple, sélectionnez le projet contenant l'ensemble de données BigQuery que l'agent doit interroger.

  3. Cliquez sur Créer des identifiants, puis sélectionnez ID client OAuth.

  4. Dans Type d'application, sélectionnez Application Web.

  5. Dans la section URI de redirection autorisés, ajoutez les URI suivants :

    • https://vertexaisearch.cloud.google.com/oauth-redirect
    • https://vertexaisearch.cloud.google.com/static/oauth/oauth.html
  6. Cliquez sur Créer.

  7. Dans le panneau Client OAuth créé, cliquez sur Télécharger au format JSON. Le fichier JSON téléchargé inclut les éléments Client ID, Authorization URI, Token URI et Client secret du projetGoogle Cloud sélectionné. Vous aurez besoin de ces informations pour créer une ressource d'autorisation.

Sécuriser le point de terminaison de votre agent A2A

Pour connaître les en-têtes d'authentification que Gemini Enterprise envoie à votre agent A2A, consultez Comment Gemini Enterprise s'authentifie auprès de votre agent. Lorsque vous sécurisez votre point de terminaison d'agent ou une passerelle API devant celui-ci, tenez compte des points suivants :

  • Schémas de sécurité de la fiche d'agent : Gemini Enterprise n'utilise pas les champs securitySchemes et security de votre fiche d'agent pour s'authentifier auprès de votre agent.
  • Clés API et en-têtes personnalisés : Gemini Enterprise n'est pas compatible avec le schéma de sécurité apiKey et ne permet pas d'ajouter des clés API statiques ni d'autres valeurs d'en-tête personnalisées aux requêtes qu'il envoie à votre agent.
  • Jeton d'ID de l'agent de service : Gemini Enterprise n'envoie l'en-tête X-Serverless-Authorization que lorsque l'URL de votre agent est une URL Cloud Run par défaut se terminant par .run.app. Si l'URL de votre agent utilise un domaine personnalisé, un équilibreur de charge ou une API Gateway, Gemini Enterprise n'envoie pas cet en-tête.
  • Jeton de l'utilisateur final : si vous configurez OAuth 2.0 pour votre agent, Gemini Enterprise envoie le jeton de l'utilisateur final depuis votre fournisseur OAuth 2.0 dans l'en-tête Authorization.

Sécuriser un point de terminaison d'agent avec Apigee

Si vous exposez votre agent A2A via un proxy d'API Apigee, le proxy reçoit le jeton de l'utilisateur final dans l'en-tête Authorization, mais ne reçoit pas l'en-tête X-Serverless-Authorization. Pour sécuriser le proxy, procédez comme suit :

  1. Configurez OAuth 2.0 pour l'autorisation de l'utilisateur final pour votre agent (à l'aide d'un ID client OAuth 2.0 Google Cloud ou d'un fournisseur OAuth 2.0 tiers), et fournissez ces informations OAuth 2.0 lorsque vous enregistrez l'agent. La configuration d'OAuth 2.0 est requise pour sécuriser un proxy d'API Apigee. Ne passez pas l'étape d'autorisation lors de l'enregistrement.
  2. Dans votre fiche d'agent, définissez url sur l'URL de votre proxy d'API Apigee.
  3. Dans le proxy d'API, validez le jeton de l'utilisateur final dans l'en-tête Authorization avant de transférer la requête à votre agent. Choisissez la règle Apigee en fonction du format de jeton émis par votre fournisseur OAuth 2.0 :
    • Fournisseurs OAuth 2.0 tiers qui émettent des jetons d'accès JWT signés : utilisez la règle VerifyJWT pour vérifier la signature du jeton par rapport à l'URI JWKS (JSON Web Key Set) public de votre fournisseur et valider les revendications de l'émetteur (iss) et de l'audience (aud).
    • Google OAuth 2.0 (accounts.google.com) : les jetons d'accès Google OAuth 2.0 (ya29...) sont des jetons opaques plutôt que des jetons JWT signés. Utilisez une règle ServiceCallout pour appeler https://oauth2.googleapis.com/tokeninfo et vérifier les champs d'audience (aud) et scope.

Enregistrer un agent A2A auprès de Gemini Enterprise

Vous pouvez enregistrer votre agent A2A auprès de Gemini Enterprise à l'aide de la consoleGoogle Cloud ou de l'API REST. L'agent est ainsi disponible pour les utilisateurs dans une application Gemini Enterprise.

Console

Pour enregistrer un agent A2A à l'aide de la console Google Cloud , procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Gemini Enterprise.

    Gemini Enterprise

  2. Cliquez sur le nom de l'application auprès de laquelle vous souhaitez enregistrer l'agent.

  3. Cliquez sur Agents > Ajouter des agents.

  4. Dans la section Choisir un type d'agent, cliquez sur Ajouter pour Agent personnalisé via A2A.

  5. Dans le champ Agent card JSON (JSON de la fiche de l'agent), saisissez les détails de la fiche de l'agent au format JSON. Pour obtenir la liste complète des champs disponibles, consultez la spécification officielle du protocole Agent2Agent (A2A). L'exemple suivant n'utilise que les champs obligatoires.

    Exemple :

    {
      "protocolVersion": "0.3",
      "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"
      ]
    }
    
  6. Cliquez sur Prévisualiser les détails de l'agent > Suivant.

  7. Terminez la configuration à l'aide de l'une des méthodes suivantes :

    • Si vous souhaitez que l'agent accède aux ressources Google Cloud en votre nom, ou si le point de terminaison de votre agent nécessite un en-tête Authorization (par exemple, lors de la sécurisation d'un proxy d'API Apigee), procédez comme suit :

      1. Saisissez l'ID client, le code secret du client, l'URI d'autorisation et l'URI du jeton que vous avez générés dans Configurer OAuth 2.0 pour l'autorisation de l'utilisateur final (facultatif).

      2. Saisissez les champs d'application.

      3. Cliquez sur Terminer.

    • Si vous ne souhaitez pas que l'agent accède aux ressources Google Cloud en votre nom et que votre point de terminaison d'agent ne nécessite pas d'en-tête Authorization, cliquez sur Ignorer et terminer.

REST

Pour enregistrer un agent A2A à l'aide de l'API REST, procédez comme suit :

Ajouter la ressource d'autorisation à Gemini Enterprise (facultatif)

Si l'agent doit accéder aux ressources Google Cloud au nom d'un utilisateur, exécutez la commande suivante pour enregistrer la ressource d'autorisation que vous avez créée dans la section Configurer les détails de l'autorisation (facultatif) avec Gemini Enterprise :

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_NUMBER/locations/LOCATION/authorizations?authorizationId=AUTH_ID" \
   -d '{
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/authorizations/AUTH_ID",
      "serverSideOauth2": {
         "clientId": "OAUTH_CLIENT_ID",
         "clientSecret": "OAUTH_CLIENT_SECRET",
         "authorizationUri": "OAUTH_AUTH_URI",
         "tokenUri": "OAUTH_TOKEN_URI"
      }
   }'

Remplacez les éléments suivants :

  • PROJECT_ID : par l'ID du projet.
  • PROJECT_NUMBER : numéro de votre projet Google Cloud .
  • ENDPOINT_LOCATION : emplacement multirégional de votre requête API. Spécifiez l'une des valeurs suivantes :
    • us pour l'emplacement multirégional US
    • eu pour l'emplacement multirégional EU
    • global pour l'emplacement mondial
    Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
  • LOCATION : emplacement multirégional de votre data store : global, us ou eu
  • AUTH_ID : ID de la ressource d'autorisation. Il s'agit d'un ID alphanumérique arbitraire que vous définissez. Vous devrez référencer cet ID ultérieurement lors de l'enregistrement d'un agent nécessitant la prise en charge d'OAuth.
  • OAUTH_CLIENT_ID : identifiant client OAuth 2.0 que vous avez obtenu lors de la création des identifiants OAuth.
  • OAUTH_CLIENT_SECRET : code secret du client OAuth 2.0 que vous avez obtenu lors de la création des identifiants OAuth.
  • OAUTH_AUTH_URI : URI d'autorisation. Pour autoriser votre application, créez un URI d'autorisation spécifique à l'aide des détails de votre fichier JSON d'identifiants OAuth. Copiez le modèle suivant et remplacez les espaces réservés par vos valeurs spécifiques.

    https://accounts.google.com/o/oauth2/v2/auth?client_id=OAUTH_CLIENT_ID&redirect_uri=https%3A%2F%2Fvertexaisearch.cloud.google.com%2Fstatic%2Foauth%2Foauth.html&scope=YOUR_CUSTOM_SCOPES&include_granted_scopes=true&response_type=code&access_type=offline&prompt=consent
    
    • YOUR_CUSTOM_SCOPES : vous pouvez ajouter les champs d'application dont vous avez besoin. Par exemple, la chaîne de champ d'application OAuth suivante demande un accès en lecture seule à votre Google Drive et à Google Docs.

      scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdocuments.readonly
      
  • OAUTH_TOKEN_URI : URI du jeton que vous avez obtenu lors de la création des identifiants OAuth.

En savoir plus sur les paramètres d'URI d'autorisation.

Pour vous assurer que l'URI fonctionne correctement, vérifiez les champs suivants :

Paramètre Valeur ou action
client_id Remplacez par la valeur client_id qui se trouve dans le fichier JSON téléchargé.
redirect_uri Ne pas modifier. Doit être https://vertexaisearch.cloud.google.com/static/oauth/oauth.html.
scope

Répertoriez les champs d'application de l'API Google auxquels votre application doit accéder au nom de l'utilisateur. Par exemple, pour accorder l'accès à BigQuery, utilisez le niveau d'accès https://www.googleapis.com/auth/bigquery, et pour l'accès en lecture seule à Google Docs, utilisez https://www.googleapis.com/auth/documents.readonly.

Si vous utilisez plusieurs champs d'application, séparez-les par un espace, qui devient %20 dans l'URL.

include_granted_scopes doit être true
response_type Vous devez avoir au moins code ans pour recevoir un code d'autorisation.
access_type Définissez cette valeur sur offline pour vous assurer de recevoir un jeton d'actualisation.
prompt Définissez la valeur sur consent pour vous assurer que l'utilisateur voit toujours un écran de consentement.

Enregistrer votre agent A2A

Pour créer et enregistrer un agent avec Gemini Enterprise, utilisez la méthode agents.create. La commande suivante n'utilise que les champs obligatoires. Pour obtenir la liste complète des champs disponibles, consultez la spécification officielle du protocole Agent2Agent (A2A).

Exécutez cette commande pour enregistrer votre agent A2A auprès de 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"
  }
}
'

Remplacez les éléments suivants :

  • ENDPOINT_LOCATION : emplacement multirégional de votre requête API. Spécifiez l'une des valeurs suivantes :
    • us pour l'emplacement multirégional US
    • eu pour l'emplacement multirégional EU
    • global pour l'emplacement mondial
    Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
  • LOCATION : emplacement multirégional de votre data store : global, us ou eu
  • PROJECT_ID : par l'ID du projet.
  • APP_ID : ID de l'application auprès de laquelle vous souhaitez enregistrer l'agent.
  • AGENT_NAME : identifiant unique de l'agent.
  • AGENT_DISPLAY_NAME : nom de l'agent affiché dans l'application Web.
  • AGENT_DESCRIPTION : description de ce que l'agent peut faire.
  • PROTOCOLVERSION : version du protocole A2A compatible avec l'agent. Pour en savoir plus sur les versions compatibles, consultez les notes de version d'A2A.
  • AGENT_URL : URL du point de terminaison de l'agent.
  • AGENT_VERSION : version de l'agent.
  • INPUT_MODE : type de média d'entrée par défaut. Par exemple, application/json ou text/plain.
  • OUTPUT_MODE : type de média de sortie par défaut. Par exemple, text/plain" ou image/png.
  • CAPABILITIES : objet JSON contenant les fonctionnalités A2A compatibles. Par exemple, \"streaming\": true ou \"pushNotifications\": false.
  • SKILLS : liste des objets AgentSkill proposés par l'agent.
  • authorizationConfig : si vous avez obtenu les détails de l'autorisation et que vous souhaitez que l'agent accède aux ressources Google Cloud au nom de l'utilisateur, ajoutez le champ authorization_config à votre ressource JSON.

Lister les agents connectés à une application

L'exemple de code suivant montre comment obtenir les détails de tous les agents connectés à votre application :

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"

Remplacez les variables par des valeurs :

  • ENDPOINT_LOCATION : emplacement multirégional de votre requête API. Spécifiez l'une des valeurs suivantes :
    • us pour l'emplacement multirégional US
    • eu pour l'emplacement multirégional EU
    • global pour l'emplacement mondial
    Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
  • PROJECT_ID : ID de votre projet Google Cloud .
  • LOCATION : emplacement multirégional de votre application : global, us ou eu.
  • APP_ID : ID de votre application Gemini Enterprise.

Si votre agent n'est pas prédéfini par Google, la réponse inclut un champ name dans les premières lignes. La valeur de ce champ contient l'ID de l'agent à la fin du chemin d'accès. Par exemple, dans la réponse suivante, l'ID de l'agent est 12345678901234567890 :

{
"name": "projects/123456/locations/global/collections/default_collection/engines/my-app/assistants/default_assistant/agents/12345678901234567890",
...
}

Afficher les détails d'un agent A2A

L'exemple de code suivant montre comment récupérer les détails d'un agent enregistré auprès de 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"

Remplacez les variables par des valeurs :

  • ENDPOINT_LOCATION : emplacement multirégional de votre requête API. Spécifiez l'une des valeurs suivantes :
    • us pour l'emplacement multirégional US
    • eu pour l'emplacement multirégional EU
    • global pour l'emplacement mondial
    Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
  • PROJECT_ID : ID de votre projet Google Cloud .
  • LOCATION : emplacement multirégional de votre application : global, us ou eu.
  • APP_ID : ID de votre application Gemini Enterprise.
  • AGENT_ID : ID de l'agent. Vous pouvez trouver l'ID de l'agent en répertoriant les agents connectés à votre application.

Mettre à jour un agent A2A

Vous pouvez modifier les détails d'un agent A2A existant enregistré auprès de Gemini Enterprise à l'aide de la console Google Cloud ou de l'API REST.

Console

Pour mettre à jour un agent A2A à l'aide de la console Google Cloud , procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Gemini Enterprise.

    Gemini Enterprise

  2. Cliquez sur le nom de l'application qui inclut l'agent que vous souhaitez mettre à jour.

  3. Cliquez sur Agents.

  4. Cliquez sur le nom de l'agent A2A (personnalisé) à mettre à jour, puis sur Modifier.

  5. Dans le champ Fiche d'agent JSON, modifiez les détails de la fiche d'agent au format JSON. Pour obtenir la liste complète des champs disponibles, consultez la spécification officielle du protocole Agent2Agent (A2A). L'exemple suivant n'utilise que les champs obligatoires.

    Exemple :

    {
      "protocolVersion": "0.3",
      "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"
      ]
    }
    
  6. Cliquez sur Enregistrer.

REST

Pour mettre à jour les détails d'un agent A2A enregistré auprès de Gemini Enterprise, utilisez la méthode agents.patch. La commande suivante n'utilise que les champs obligatoires. Pour obtenir la liste complète des champs disponibles, consultez la spécification officielle du protocole Agent2Agent (A2A).

Exécutez cette commande pour mettre à jour votre agent A2A avec 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"
  }
}
'

Remplacez les éléments suivants :

  • ENDPOINT_LOCATION : emplacement multirégional de votre requête API. Spécifiez l'une des valeurs suivantes :
    • us pour l'emplacement multirégional US
    • eu pour l'emplacement multirégional EU
    • global pour l'emplacement mondial
    Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
  • LOCATION : emplacement multirégional de votre data store : global, us ou eu.
  • PROJECT_ID : par l'ID du projet.
  • APP_ID : ID de l'application pour laquelle vous souhaitez enregistrer l'agent.
  • AGENT_ID : ID de l'agent. Vous pouvez trouver l'ID de l'agent en répertoriant les agents connectés à votre application.
  • AGENT_NAME : identifiant unique de l'agent.
  • AGENT_DISPLAY_NAME : nom de l'agent affiché dans l'application Web.
  • AGENT_DESCRIPTION : description de ce que l'agent peut faire.
  • PROTOCOLVERSION : version du protocole A2A compatible avec l'agent. Pour en savoir plus sur les versions compatibles, consultez les notes de version d'A2A.
  • AGENT_URL : URL du point de terminaison de l'agent.
  • AGENT_VERSION : version de l'agent.
  • INPUT_MODE : type de média d'entrée par défaut. Par exemple, application/json ou text/plain.
  • OUTPUT_MODE : type de média de sortie par défaut. Par exemple, text/plain ou image/png.
  • CAPABILITIES : objet JSON contenant les fonctionnalités A2A compatibles. Par exemple, \"streaming\": true ou \"pushNotifications\": false.
  • SKILLS : liste des objets AgentSkill proposés par l'agent.
  • authorizationConfig : si vous avez obtenu les détails de l'autorisation et que vous souhaitez que l'agent accède aux ressources Google Cloud au nom de l'utilisateur, ajoutez le champ authorization_config à votre ressource JSON.

Supprimer un agent A2A

L'exemple de code suivant montre comment supprimer un agent connecté à votre application :

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"

Remplacez les variables par des valeurs :

  • ENDPOINT_LOCATION : emplacement multirégional de votre requête API. Spécifiez l'une des valeurs suivantes :
    • us pour l'emplacement multirégional US
    • eu pour l'emplacement multirégional EU
    • global pour l'emplacement mondial
    Pour en savoir plus, consultez Spécifier un emplacement multirégional pour votre datastore.
  • PROJECT_ID : ID de votre projet Google Cloud .
  • LOCATION : emplacement multirégional de votre application : global, us ou eu
  • APP_ID : ID de votre application Gemini Enterprise.
  • AGENT_ID : ID de l'agent. Vous pouvez trouver l'ID de l'agent en répertoriant les agents connectés à votre application.

Étapes suivantes

  • Utilisez l'agent que vous avez enregistré avec Gemini Enterprise dans l'application Web.