에이전트 레지스트리 — 검색, 등록 및 원격 호출
에이전트 레지스트리는 Gemini Enterprise Agent Platform의 거버넌스 축입니다. 프로젝트 범위의 에이전트, MCP 서버 및 엔드포인트 카탈로그입니다. ADK-Rust는 세 가지 방식으로 참여합니다.
| 기능 | 기능 | 크레이트 |
|---|---|---|
등록된 에이전트 검색 및 확인(AgentRegistryClient, AgentSearchTool) | vertex-agent-registry | adk-tool |
| 자체 호스팅 에이전트, MCP 서버 및 CLI의 엔드포인트 등록 | vertex-agent-registry | adk-cli |
등록된 Agent Engine을 하위 에이전트로 호출 (RemoteReasoningEngineAgent) | vertex-remote-engine | adk-server |
참고: 이러한 기능은
adk-server의 로컬 YAMLagent-registry기능과는 관련이 없으며, 에이전트 레지스트리(agents/MCP servers/endpoints)는 스킬 레지스트리(SKILL.md packages —docs/official_docs/skills/skill-registry.md참조)와는 다른 플랫폼 서비스입니다.
자동 등록과 수동 등록
Agent Engine 배포는 스스로 등록됩니다. 엔진을 생성하면(예: adk-rust deploy agent-engine 사용) 해당 엔진이 레지스트리에 추가되고 항목의 라이프사이클이 동기화된 상태로 유지됩니다. 다시 등록하지 마세요. 수동 항목을 추가하면 다른 URN 네임스페이스에 중복으로 등록됩니다.
그 외 모든 항목에는 수동 등록을 사용할 수 있으며, 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
모든 명령은 --project/--location을 사용하며(없으면 GOOGLE_CLOUD_PROJECT/GOOGLE_CLOUD_LOCATION으로 대체), 멱등적입니다. 기존 서비스 ID를 다시 등록하면 변경된 필드만 패치하며, 변경 사항이 없으면 쓰기 작업을 수행하지 않습니다. 수동 항목은 라이프사이클과 동기화되지 않으므로 업데이트하거나 제거하는 작업은 사용자가 직접 책임져야 합니다. us/eu 멀티 리전은 수동 등록을 지원하지 않습니다. 리전 또는 global을 사용하세요.
에이전트에서 에이전트 검색
AgentSearchTool는 LlmAgent 레지스트리 검색을 일반 읽기 전용 도구로 제공합니다.
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(())
# }
이 도구는 에이전트, MCP 서버 또는 엔드포인트 전반에서 {urn, displayName, description, skills, endpoint} 요약을 반환합니다.
배포된 엔진에 작업 위임
RemoteReasoningEngineAgent은 배포된 모든 Agent Engine을 일반 하위 에이전트로 취급합니다. reasoningEngines:streamQuery을 통해 턴을 전달하고 원격 이벤트를 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(())
# }
엔진은 레지스트리 URN(.urn(...) 및 .registry(...))으로도 지정할 수 있습니다. 리소스 이름은 항목의 런타임 참조에서 확인됩니다. 기본 클래스 메서드는 streaming_agent_run_with_events이며, ADK이 아닌 엔진의 경우 stream_query로 한 번만 대체됩니다.
전체 패턴은 examples/agent_orchestrator에서 확인할 수 있습니다. 하나의 오케스트레이터에서 레지스트리 검색과 원격 위임을 함께 사용하는 패턴입니다.
모든 기능 활성화
[dependencies]
adk-rust = { version = "2.1.0", features = ["minimal", "gemini-agent-platform"] }
gemini-agent-platform 메타 기능에는 vertex-agent-registry 및 vertex-remote-engine과 기타 모든 플랫폼 통합이 포함됩니다.