Agent Registry — Erkennung, Registrierung und Remote-Aufruf
Die Agent Registry ist die Govern-Säule der Gemini Enterprise Agent Platform: ein projektbezogener Katalog von Agents, MCP-Servern und Endpunkten. ADK-Rust ist auf drei Arten beteiligt.
| Fähigkeit | Funktion | Crate |
|---|---|---|
Registrierte Agents suchen und auflösen (AgentRegistryClient, AgentSearchTool) | vertex-agent-registry | adk-tool |
| Selbst gehostete Agents, MCP-Server und Endpunkte aus CLI registrieren | vertex-agent-registry | adk-cli |
Eine registrierte Agent Engine als Unteragent aufrufen (RemoteReasoningEngineAgent) | vertex-remote-engine | adk-server |
Hinweis: Diese Funktionen stehen in keinem Zusammenhang mit der lokalen YAML-Funktion
agent-registryaufadk-server, und die Agent Registry (Agents/MCP-Server/Endpunkte) ist ein anderer Plattformdienst als die Skill Registry (SKILL.md-Pakete – siehedocs/official_docs/skills/skill-registry.md).
Automatische und manuelle Registrierung
Bereitstellungen von Agent Engine registrieren sich selbst: Das Erstellen einer Engine (z. B. mit adk-rust deploy agent-engine) fügt sie der Registry hinzu und hält den Lebenszyklus des Eintrags synchron. Registrieren Sie sie nicht erneut – ein manueller Eintrag würde sie unter einem anderen URN-Namespace duplizieren.
Für alles andere gibt es die manuelle Registrierung; dafür ist CLI zuständig:
# 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
Alle Befehle verwenden --project/--location (mit Fallback auf GOOGLE_CLOUD_PROJECT/GOOGLE_CLOUD_LOCATION) und sind idempotent: Wenn eine bereits vorhandene Service-ID erneut registriert wird, werden nur die geänderten Felder aktualisiert, und wenn sich nichts geändert hat, wird kein Schreibvorgang ausgeführt. Manuelle Einträge werden nicht mit dem Lebenszyklus synchronisiert – für ihre Aktualisierung oder Entfernung sind Sie selbst verantwortlich. Die us/eu-Multi-Regionen unterstützen keine manuelle Registrierung; verwenden Sie eine Region oder global.
Agents aus einem Agenten entdecken
AgentSearchTool stellt eine LlmAgent-Suche in der Registry als gewöhnliches schreibgeschütztes Tool bereit:
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(())
# }
Das Tool gibt {urn, displayName, description, skills, endpoint}-Zusammenfassungen aus mehreren Agents, MCP-Servern oder Endpunkten zurück.
Delegieren an eine bereitgestellte Engine
RemoteReasoningEngineAgent macht jede bereitgestellte Agent Engine zu einem gewöhnlichen Sub-Agenten – sie leitet den Turn über reasoningEngines:streamQuery weiter und liefert die entfernten Ereignisse als ADK-Ereignisse zurück:
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(())
# }
Engines können auch über die Registry-URN adressiert werden (.urn(...) plus .registry(...)); der Ressourcenname wird anhand der Laufzeitreferenz des Eintrags aufgelöst. Die Standardklassenmethode ist streaming_agent_run_with_events, mit einem einmaligen Fallback auf stream_query für Engines, die keine ADK sind.
Siehe examples/agent_orchestrator für das vollständige Muster – Registrierungssuche plus Remote-Delegation in einem Orchestrator.
Alles aktivieren
[dependencies]
adk-rust = { version = "2.1.0", features = ["minimal", "gemini-agent-platform"] }
Das Meta-Feature gemini-agent-platform umfasst vertex-agent-registry und vertex-remote-engine sowie alle anderen Plattformintegrationen.