Vous devez procéder à un enregistrement manuel dans Agent Registry pour les agents hébergés en dehors de Google Cloud, qui s'exécutent sur des environnements d'exécution non compatibles ou qui sont déployés sur différents Google Cloud projets. Ce document explique comment enregistrer manuellement des agents dans Agent Registry.
Avant de commencer
Avant de commencer, configurez Agent Registry. Vous avez besoin de l'ID du projet pour effectuer ces tâches.
Pour utiliser les commandes Google Cloud CLI de ce document, assurez-vous d'avoir configuré votre environnement gcloud CLI.
Rôles requis
Pour obtenir les autorisations nécessaires pour enregistrer manuellement des agents dans Agent Registry, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :
-
Pour enregistrer des agents dans Agent Registry:
Éditeur de l'API Agent Registry (
roles/agentregistry.editor) -
Pour l'enregistrement multiprojets, afin d'accéder aux métadonnées de l'agent dans un projet distant :
Lecteur de l'API Agent Registry (
roles/agentregistry.viewer)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Vous n'avez besoin d'aucune autorisation supplémentaire si le point de terminaison ou la carte d'agent de l'agent est accessible à l'aide d'URL publiques standards ou authentifié via des identifiants préconfigurés.
Enregistrer un agent compatible A2A
Si votre agent distant implémente la spécification Agent2Agent (A2A),
dirigez Agent Registry vers la charge utile agent-card.json de l'agent. Le registre
synchronise automatiquement la
carte d'agent et indexe les
compétences A2A disponibles de l'agent pour la découverte.
Pour enregistrer l'agent, procédez comme suit :
Console
Dans la Google Cloud console, accédez à Agent Registry:
Dans le sélecteur de projets, sélectionnez le Google Cloud projet dans lequel vous avez configuré Agent Registry.
Sélectionnez l'onglet Agents.
Cliquez sur Ajouter un agent.
Dans le panneau Détails de l'agent, saisissez les informations suivantes :
- Type : sélectionnez A2A.
- Région : sélectionnez l'emplacement géographique dans lequel vous souhaitez enregistrer l'agent.
Choisissez l'une des options suivantes :
- Pour enregistrer l'agent à l'aide de son URI de ressource, sélectionnez l'onglet À partir de l'URI et saisissez une URL valide dans le champ URI. Cliquez ensuite sur Importer pour obtenir la carte d'agent à partir de l'URL.
- Pour copier et coller le contenu de la carte d'agent, sélectionnez l'onglet Coller JSON et collez l'intégralité du contenu de votre fichier
agent-card.json.
Cliquez sur Enregistrer.
gcloud
Pour enregistrer un agent A2A, enregistrez sa carte d'agent en tant que fichier JSON local, par exemple agent-card.json, puis procédez comme suit :
gcloud agent-registry services create AGENT_NAME \
--project=PROJECT_ID \
--location=REGION \
--display-name="DISPLAY_NAME" \
--agent-spec-type=a2a-agent-card \
--agent-spec-content=@agent-card.json
La taille maximale du fichier de spécification est de 10 Ko.
Remplacez les éléments suivants :
AGENT_NAME: nom que vous souhaitez attribuer à votre agent, par exemplemy-support-agent.PROJECT_ID: ID du projet.REGION: région dans laquelle vous souhaitez enregistrer l'agent. Si vous ne souhaitez pas utiliser de région spécifique, utilisez la valeurglobal.DISPLAY_NAME: nom lisible que vous souhaitez attribuer à votre agent, par exempleSupport Agent.
Terraform
Pour enregistrer un agent compatible A2A, configurez la ressource google_agent_registry_service. Spécifiez le bloc agent_spec avec le type A2A_AGENT_CARD et le content représentant votre charge utile JSON de carte d'agent :
resource "google_agent_registry_service" "a2a_agent" {
location = "REGION"
service_id = "AGENT_NAME"
display_name = "DISPLAY_NAME"
agent_spec {
type = "A2A_AGENT_CARD"
content = jsonencode({
schemaVersion = "v1"
displayName = "DISPLAY_NAME"
description = "A custom support agent registered using Terraform."
skills = [
{
name = "customer_lookup"
description = "Looks up customer info by email address."
}
]
})
}
}
output "agent_resource_name" {
description = "The generated read-only Agent resource name."
value = google_agent_registry_service.a2a_agent.registry_resource
}
Remplacez les éléments suivants :
REGION: région dans laquelle vous enregistrez l'agent.AGENT_NAME: nom unique que vous souhaitez attribuer à votre agent, par exemplemy-support-agent.DISPLAY_NAME: nom lisible que vous souhaitez attribuer à votre agent, par exempleSupport Agent.
Enregistrer un agent REST standard
Les agents REST standards peuvent être découverts par leur nom et leur description, mais ne disposent pas de compétences A2A pouvant faire l'objet d'une recherche, sauf s'ils adoptent le protocole A2A.
Si vous souhaitez enregistrer un agent distant qui n'implémente pas la spécification A2A, tel qu'un point de terminaison d'API REST ou SaaS standard, l'API Agent Registry crée une ressource Service sans spécification de protocole d'agent.
Pour enregistrer l'agent, procédez comme suit :
Console
Dans la Google Cloud console, accédez à Agent Registry:
Dans le sélecteur de projets, sélectionnez le Google Cloud projet dans lequel vous avez configuré Agent Registry.
Sélectionnez l'onglet Agents.
Cliquez sur Ajouter un agent.
Dans le panneau Détails de l'agent, saisissez les informations suivantes :
- Type : sélectionnez Non-A2A.
- Nom : saisissez un nom lisible à afficher pour votre agent, par exemple
Travel Agent. - Description : saisissez une description des capacités de l’agent, par exemple
A test agent that plans travel itineraries. - Région : sélectionnez l'emplacement géographique dans lequel vous souhaitez enregistrer l'agent.
- Point de terminaison : saisissez le point de terminaison où l'agent est hébergé.
Cliquez sur Enregistrer.
gcloud
Vous pouvez éventuellement fournir l'interface de point de terminaison HTTP/JSON définie avec l'option --interfaces afin que le registre établisse une connexion avec l'agent.
Pour enregistrer un agent REST standard, procédez comme suit :
gcloud agent-registry services create AGENT_NAME \
--project=PROJECT_ID \
--location=REGION \
--display-name="DISPLAY_NAME" \
--agent-spec-type=no-spec \
--interfaces=url=ENDPOINT_URL,protocolBinding=PROTOCOL
Remplacez les éléments suivants :
AGENT_NAME: nom que vous souhaitez attribuer à votre agent, par exemplemy-remote-rest-agent.PROJECT_ID: ID du projet.REGION: région du registre.DISPLAY_NAME: nom lisible que vous souhaitez attribuer à votre agent, par exempleRemote REST Agent.ENDPOINT_URL: URL du point de terminaison de l'API de l'agent, par exemplehttps://api.remote-service.com/v1/agents/1234.PROTOCOL: liaison de protocole pour le point de terminaison. Les valeurs valides sonthttp-json,grpcoujsonrpc.
Terraform
Pour enregistrer un agent REST standard, configurez la ressource google_agent_registry_service avec agent_spec défini sur le type NO_SPEC, puis définissez les connexions d'interface de point de terminaison :
resource "google_agent_registry_service" "rest_agent" {
location = "REGION"
service_id = "AGENT_NAME"
display_name = "DISPLAY_NAME"
description = "A standard REST agent registered using Terraform."
agent_spec {
type = "NO_SPEC"
}
interfaces {
url = "ENDPOINT_URL"
protocol_binding = "PROTOCOL"
}
}
output "agent_resource_name" {
description = "The generated read-only Agent resource name."
value = google_agent_registry_service.rest_agent.registry_resource
}
Remplacez les éléments suivants :
REGION: région dans laquelle vous enregistrez l'agent.AGENT_NAME: nom unique que vous souhaitez attribuer à votre agent, par exemplemy-remote-rest-agent.DISPLAY_NAME: nom lisible que vous souhaitez attribuer à votre agent, par exempleRemote REST Agent.ENDPOINT_URL: URL du point de terminaison de l'API de l'agent, par exemplehttps://api.remote-service.com/v1/agents/1234.PROTOCOL: liaison de protocole pour le point de terminaison. Les valeurs valides sontHTTP_JSON,GRPCouJSONRPC.
Enregistrer un agent à partir d'un autre projet
Si votre organisation déploie des agents sur plusieurs Google Cloud projets et utilise une passerelle d'agent centrale pour régir le trafic sortant, vous pouvez enregistrer des agents à partir de projets spoke ou de charge de travail dans le catalogue central Agent Registry.
Étant donné que l'enregistrement automatique ne détecte que les ressources créées dans le même projet, vous devez enregistrer manuellement chaque agent distant dans le registre du projet de gouvernance central.
Considérations concernant l'enregistrement multiprojets
Avant d'enregistrer des agents sur plusieurs projets, examinez les points suivants :
- Emplacements compatibles : l'instance Agent Registry, l'Agent Gateway et les points de terminaison de l'agent doivent résider dans la même région géographique ou dans l'emplacement
global. - Limitation de la découverte automatique : la découverte automatique multiprojets n'est pas disponible. Vous devez enregistrer manuellement chaque agent distant.
- Gestion du cycle de vie : les entrées manuelles dans Agent Registry ne sont pas automatiquement mises à jour ni supprimées lorsque des modifications sont apportées au projet distant. Vous devez gérer le cycle de vie de ces entrées dans le registre central lorsque des agents distants sont modifiés ou supprimés.
- Mode de sortie uniquement : la gouvernance multiprojets avec l'Agent Gateway n'est disponible que pour les passerelles Agent-to-Anywhere (sortie). Les passerelles d'entrée Client-to-Agent nécessitent que l'agent et la passerelle se trouvent dans le même projet.
Enregistrer l'agent distant
Pour enregistrer manuellement un agent à partir d'un autre projet, procédez comme suit :
Console
Dans la Google Cloud console, accédez à Agent Registry:
Dans le sélecteur de projets, sélectionnez le projet de gouvernance central Google Cloud dans lequel vous souhaitez enregistrer l'agent.
Sélectionnez l'onglet Agents.
Cliquez sur Ajouter un agent.
Dans le panneau Détails de l'agent, saisissez les informations suivantes :
- Type : sélectionnez A2A si l'agent distant implémente le protocole A2A, ou Non-A2A pour un point de terminaison REST standard.
- Région : sélectionnez la région correspondant à votre passerelle centrale et au déploiement de l'agent distant.
Fournissez le point de terminaison de l'agent :
- Pour les agents A2A, sélectionnez À partir de l'URI et saisissez l'URL de la carte d'agent de l'agent distant, ou sélectionnez Coller JSON et collez le contenu
agent-card.json. - Pour les agents non A2A, saisissez l'URL du point de terminaison de l'agent distant.
- Pour les agents A2A, sélectionnez À partir de l'URI et saisissez l'URL de la carte d'agent de l'agent distant, ou sélectionnez Coller JSON et collez le contenu
Cliquez sur Enregistrer.
gcloud
- Agent A2A : pour enregistrer un agent A2A à partir d'un autre projet à l'aide de la gcloud CLI, exécutez la commande suivante dans le projet de gouvernance central :
gcloud agent-registry services create AGENT_NAME \
--project=CENTRAL_PROJECT_ID \
--location=REGION \
--display-name="DISPLAY_NAME" \
--agent-spec-type=a2a-agent-card \
--agent-spec-content=@agent-card.json
- Agent REST : pour enregistrer un agent REST standard à partir d'un autre projet, exécutez la commande suivante dans le projet de gouvernance central :
gcloud agent-registry services create AGENT_NAME \
--project=CENTRAL_PROJECT_ID \
--location=REGION \
--display-name="DISPLAY_NAME" \
--agent-spec-type=no-spec \
--interfaces=url=REMOTE_ENDPOINT_URL,protocolBinding=PROTOCOL
Remplacez les éléments suivants :
AGENT_NAME: nom de votre agent dans le registre central, par exempleremote-support-agent.CENTRAL_PROJECT_ID: ID du projet de gouvernance central.REGION: région dans laquelle vous enregistrez l'agent.DISPLAY_NAME: nom lisible de l'agent, par exempleRemote Support Agent.REMOTE_ENDPOINT_URL: URL du point de terminaison de l' agent s'exécutant dans le projet distant, par exemplehttps://<var>AGENT_SERVICE_NAME</var>-<var>HASH</var>.<var>REGION</var>.run.app.PROTOCOL: liaison de protocole pour le point de terminaison. Les valeurs valides sonthttp-json,grpcoujsonrpc.
Terraform
Pour enregistrer un agent distant dans un projet de gouvernance central à l'aide de Terraform, configurez la ressource google_agent_registry_service et spécifiez le projet central :
resource "google_agent_registry_service" "remote_agent" {
project = "CENTRAL_PROJECT_ID"
location = "REGION"
service_id = "AGENT_NAME"
display_name = "DISPLAY_NAME"
description = "Remote agent registered from project REMOTE_PROJECT_ID."
agent_spec {
type = "NO_SPEC"
}
interfaces {
url = "REMOTE_ENDPOINT_URL"
protocol_binding = "PROTOCOL"
}
}
output "agent_resource_name" {
description = "The generated read-only Agent resource name."
value = google_agent_registry_service.remote_agent.registry_resource
}
Remplacez les éléments suivants :
CENTRAL_PROJECT_ID: ID du projet de gouvernance central.REGION: région dans laquelle vous enregistrez l'agent.AGENT_NAME: nom unique de votre agent dans le registre, par exempleremote-support-agent.DISPLAY_NAME: nom lisible de l'agent, par exempleRemote Support Agent.REMOTE_PROJECT_ID: ID du projet dans lequel l'agent est hébergé.REMOTE_ENDPOINT_URL: URL du point de terminaison de l'agent s'exécutant dans le projet distant.PROTOCOL: liaison de protocole pour le point de terminaison. Les valeurs valides sontHTTP_JSON,GRPCouJSONRPC.
Vérifier l'enregistrement
Après avoir enregistré votre agent, vérifiez qu'Agent Registry a bien traité le Service et créé la ressource Agent correspondante :
Console
Dans la Google Cloud console, accédez à Agent Registry:
Dans le sélecteur de projets, sélectionnez le Google Cloud projet dans lequel vous avez configuré Agent Registry.
Sélectionnez l'onglet Agents.
La page affiche la liste de tous les agents enregistrés et leurs détails.
gcloud
gcloud agent-registry agents list \
--project=PROJECT_ID \
--location=REGION
Si vous avez plusieurs agents ou si vous souhaitez confirmer l'enregistrement d'un seul agent, vous pouvez filtrer la liste par métadonnées de l'agent :
gcloud agent-registry agents list \
--project=PROJECT_ID \
--location=REGION \
--filter="FILTER_EXPRESSION"
Remplacez les éléments suivants :
PROJECT_ID: ID du projet.REGION: région dans laquelle vous souhaitez enregistrer l'agent. Si vous ne souhaitez pas utiliser de région spécifique, utilisez la valeurglobal.FILTER_EXPRESSION: expression de filtre pour les agents que vous souhaitez filtrer. Par exemple, pour filtrer par nom à afficher, vous pouvez utiliserdisplayName='DISPLAY_NAME'. Pour filtrer par l' identifiant unique global (URN), vous pouvez utiliseragentId='urn:agent:AGENT_URN'.
Terraform
Référencez votre agent enregistré dans d'autres configurations Terraform à l'aide de la source de données google_agent_registry_agent :
data "google_agent_registry_agent" "my_agent" {
location = "REGION"
filter = "displayName=\"DISPLAY_NAME\""
}
output "agent_urn" {
value = data.google_agent_registry_agent.my_agent.urn
}
Remplacez les éléments suivants :
REGION: région du registre.DISPLAY_NAME: nom lisible à afficher de l'agent.
Étape suivante
- Découvrez comment gérer les agents enregistrés.
- Découvrez l'enregistrement automatique, la méthode recommandée pour enregistrer les agents déployés dans des environnements d'exécution gérés.