Registre des agents — dĂ©couverte, enregistrement et invocation Ă  distance

Le Registre des agents est le pilier Gouvernance de Gemini Enterprise Agent Platform : un catalogue d’agents, de serveurs MCP et de points de terminaison associĂ© Ă  un projet. ADK-Rust intervient de trois maniĂšres.

CapacitéFonctionnalitéCrate
Rechercher et résoudre les agents enregistrés (AgentRegistryClient, AgentSearchTool)vertex-agent-registryadk-tool
Enregistrer des agents auto-hébergés, des serveurs MCP et des points de terminaison depuis le CLIvertex-agent-registryadk-cli
Invoquer un moteur d’agent enregistrĂ© en tant que sous-agent (RemoteReasoningEngineAgent)vertex-remote-engineadk-server

Remarque : ces fonctionnalitĂ©s n’ont aucun rapport avec la fonctionnalitĂ© locale YAML agent-registry sur adk-server, et l’Agent Registry (serveurs/points de terminaison agents/MCP) est un service de plateforme diffĂ©rent du Skill Registry (packages SKILL.md — voir docs/official_docs/skills/skill-registry.md).

Enregistrement automatique ou manuel

Les dĂ©ploiements Agent Engine s’enregistrent eux-mĂȘmes : la crĂ©ation d’un moteur (par exemple avec adk-rust deploy agent-engine) l’ajoute au registre et maintient la synchronisation de son cycle de vie. Ne l’enregistrez pas Ă  nouveau : une entrĂ©e manuelle crĂ©erait un doublon sous un autre espace de noms URN.

L’enregistrement manuel existe pour tout le reste, et c’est ce que couvre CLI :

# A self-hosted adk-server agent, described by its A2A agent card
adk-rust registry register-agent --service-id my-agent --card agent-card.json

# An external MCP server (you supply the tools/list payload; no introspection)
adk-rust registry register-mcp --service-id my-mcp --tool-spec tools-list.json \
  --url https://mcp.example.com/rpc

# A bare governed endpoint
adk-rust registry register-endpoint --service-id my-api --url https://api.example.com/v1

# Discovery
adk-rust registry search "travel planner" --type agent

Toutes les commandes utilisent --project/--location (avec repli sur GOOGLE_CLOUD_PROJECT/GOOGLE_CLOUD_LOCATION) et sont idempotentes : rĂ©enregistrer un ID de service existant ne modifie que les champs changĂ©s et n’effectue aucune Ă©criture lorsque rien n’a changĂ©. Les entrĂ©es manuelles ne sont pas synchronisĂ©es avec le cycle de vie : leur mise Ă  jour ou leur suppression reste sous votre responsabilitĂ©. Les multi-rĂ©gions us/eu ne prennent pas en charge l’enregistrement manuel ; utilisez une rĂ©gion ou global.

Découvrir des agents depuis un agent

AgentSearchTool fournit une recherche dans le registre LlmAgent sous la forme d’un outil ordinaire en lecture seule :

use adk_tool::{AgentRegistryClient, AgentRegistryConfig, AgentSearchTool};
use std::sync::Arc;

# fn build() -> adk_core::Result<()> {
let registry = AgentRegistryClient::new_with_adc(
    AgentRegistryConfig::new("my-project", "us-central1"),
)?;
let search_tool = Arc::new(AgentSearchTool::new(Arc::new(registry)));
# let _ = search_tool;
# Ok(())
# }

L’outil renvoie des rĂ©capitulatifs {urn, displayName, description, skills, endpoint} pour les agents, les serveurs MCP ou les points de terminaison.

Déléguer à un moteur déployé

RemoteReasoningEngineAgent transforme tout Agent Engine dĂ©ployĂ© en sous-agent ordinaire : il transmet le tour via reasoningEngines:streamQuery et renvoie les Ă©vĂ©nements distants sous forme d’évĂ©nements ADK :

use adk_server::agent_engine::remote::RemoteReasoningEngineAgent;

# async fn build() -> adk_core::Result<()> {
let remote = RemoteReasoningEngineAgent::builder("specialist")
    .resource_name("projects/my-project/locations/us-central1/reasoningEngines/4242")
    .build()
    .await?;
# let _ = remote;
# Ok(())
# }

Les moteurs peuvent Ă©galement ĂȘtre adressĂ©s par une URN du registre (.urn(...) plus .registry(...)) ; le nom de la ressource est rĂ©solu Ă  partir de la rĂ©fĂ©rence d’exĂ©cution de l’entrĂ©e. La mĂ©thode de classe par dĂ©faut est streaming_agent_run_with_events, avec un repli ponctuel sur stream_query pour les moteurs qui ne sont pas ADK.

Voir examples/agent_orchestrator pour le modĂšle complet — recherche dans le registre et dĂ©lĂ©gation distante au sein d’un mĂȘme orchestrateur.

Tout activer

[dependencies]
adk-rust = { version = "2.1.0", features = ["minimal", "gemini-agent-platform"] }

La méta-fonctionnalité gemini-agent-platform inclut vertex-agent-registry et vertex-remote-engine ainsi que toutes les autres intégrations de la plateforme.

Registre des agents — dĂ©couverte, enregistrement et invocation Ă  distance - Documentation ADK-Rust | ADK-Rust