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-registry | adk-tool |
| Enregistrer des agents auto-hébergés, des serveurs MCP et des points de terminaison depuis le CLI | vertex-agent-registry | adk-cli |
Invoquer un moteur dâagent enregistrĂ© en tant que sous-agent (RemoteReasoningEngineAgent) | vertex-remote-engine | adk-server |
Remarque : ces fonctionnalitĂ©s nâont aucun rapport avec la fonctionnalitĂ© locale YAML
agent-registrysuradk-server, et lâAgent Registry (serveurs/points de terminaison agents/MCP) est un service de plateforme diffĂ©rent du Skill Registry (packages SKILL.md â voirdocs/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.