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ähigkeitFunktionCrate
Registrierte Agents suchen und auflösen (AgentRegistryClient, AgentSearchTool)vertex-agent-registryadk-tool
Selbst gehostete Agents, MCP-Server und Endpunkte aus CLI registrierenvertex-agent-registryadk-cli
Eine registrierte Agent Engine als Unteragent aufrufen (RemoteReasoningEngineAgent)vertex-remote-engineadk-server

Hinweis: Diese Funktionen stehen in keinem Zusammenhang mit der lokalen YAML-Funktion agent-registry auf adk-server, und die Agent Registry (Agents/MCP-Server/Endpunkte) ist ein anderer Plattformdienst als die Skill Registry (SKILL.md-Pakete – siehe docs/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.

Agent Registry — Erkennung, Registrierung und Remote-Aufruf - ADK-Rust Dokumentation | ADK-Rust