Agent Registry では、サポートされている Google Cloud ランタイム でホストされているエージェントを登録できます。Agent Registry API を手動で呼び出す必要はありません。ランタイムによっては、この登録プロセスは自動的に行われる場合と、デプロイ時にオプトイン構成の手順が必要な場合があります。
このドキュメントでは、サポートされているランタイムでエージェントの検出を有効にする方法について説明します。エージェントを外部またはサポートされていないランタイムでホストする場合は、 手動登録を使用するをご覧ください。
登録中にエージェントから抽出されるメタデータとスキルは、エージェントのプロトコルによって異なります。詳細については、 エージェントを登録するをご覧ください。
始める前に
エージェントを登録する前に、Agent Registry を設定します。 登録を確認するには、プロジェクト ID が必要です。
このドキュメントの Google Cloud CLI コマンドを使用するには、gcloud CLI 環境を 設定していることを確認してください。
Agent Runtime からエージェントを登録する
Gemini Enterprise Agent Platform の Agent Runtime でエージェントを開発してデプロイする場合、 Agent Registry への登録は自動的に行われます。
Agent2Agent(A2A)プロトコルは、エージェントが機能と ID を宣言できるオープン スタンダードです。次の 例は、A2A プロトコルを実装する エージェントを Agent Runtime にデプロイする方法を示しています。詳細については、 エージェントをデプロイするをご覧ください。
# Create and deploy the agent
# This action automatically registers the agent in Agent Registry
remote_agent = client.agent_engines.create(
agent=my_a2a_agent, # Your defined A2A object
config={
"display_name": "my-support-agent",
"description": "An agent that handles support tickets.",
"requirements": ["google-cloud-aiplatform[agent_engines,langchain]"],
},
)
Agent Runtime でエージェントを更新または削除すると、Agent Registry はそれらの変更を自動的に同期します。
組み込みの Google エージェントを登録する
Google Workspace エージェントや Gemini Enterprise エージェントなどの組み込みの Google エージェントは、 Agent Registry に自動的に登録されます。構成やデプロイの手順を行う必要はありません。これらのエージェントは取り込まれ、 検出がレジストリ内で 可能です。
GKE からエージェントを登録する
Google Kubernetes Engine(GKE)にデプロイされたエージェントを登録するには、registry.gke.io/functional-type: "AGENT" ラベルをデプロイに追加します。このラベルは、デプロイを AI エージェントとして識別し、Agent Registry がイントロスペクション スキャンを実行できるようにします。
エージェントのスキルの自動検出を有効にするには、a2a-protocol.org/agent-card アノテーションも指定する必要があります。取り込みコントローラは、このアノテーションを使用して A2A エージェント カードをクエリします。また、iam.gke.io/spiffe-identity-type: agent-identity アノテーションを使用して Workload Identity を構成すると、安全な認証済み通信を有効にできます。
次の例は、これらの構成を使用した GKE エージェント デプロイ マニフェストを示しています。詳細については、 AI エージェントをデプロイしてオーケストレートするをご覧ください。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-agent
labels:
# GKE takes this label and registers the agent to Agent Registry
registry.gke.io/functional-type: "AGENT"
annotations:
# A2A protocol metadata annotation for automated Agent Card discovery
a2a-protocol.org/agent-card: |
card:
endpoint: /.well-known/agent-card.json
protocol: HTTP
port: 8080
spec:
selector:
matchLabels:
app: my-agent
template:
metadata:
annotations:
# Workload Identity annotation for identity and access management
iam.gke.io/spiffe-identity-type: agent-identity
labels:
app: my-agent
spec:
containers:
- name: server
image: gcr.io/my-project/my-agent:1.0.0
ports:
- containerPort: 8080
env:
- name: PORT
value: "8080"
---
apiVersion: v1
kind: Service
metadata:
name: my-agent-service
labels:
app: my-agent
spec:
type: ClusterIP
ports:
- port: 8080
targetPort: 8080
protocol: TCP
name: http
selector:
app: my-agent
デプロイが適用されると、GKE クラスタはエージェントからメタデータを自動的に取得し、Agent Registry データモデルに直接同期します。
登録の確認
Agent Registry がエージェントを正常に登録したことを確認するには、エージェントを一覧表示します。
コンソール
コンソールで [Agent Registry] に移動します。 Google Cloud
プロジェクト選択ツールから、Agent Registry を設定した Google Cloud プロジェクトを 選択します。
[エージェント] タブを選択します。
このページには、登録されているすべてのエージェントとその詳細(名前、識別子、説明、ランタイム、ロケーションなど)のリストが表示されます。
エージェントのロケーションまたはランタイム リソースでリストをフィルタします。
- ロケーションでフィルタするには、[ロケーション] メニューをクリックして、フィルタするロケーションを選択し、[適用] をクリックします。
- ランタイムでフィルタするには、[ランタイム] メニューをクリックして、フィルタするランタイムを選択し、[適用] をクリックします。
このページには、選択した条件でフィルタされた登録済みエージェントのリストが表示されます。
gcloud
エージェントのメタデータでリストをフィルタできます。Agent Registry 用に Google Cloud CLI 環境を 設定していること を確認してから、次のコマンドを実行します。
gcloud agent-registry agents list \
--project=PROJECT_ID \
--location=REGION \
--filter="FILTER_EXPRESSION"
次のように置き換えます。
PROJECT_ID: プロジェクト ID。REGION: レジストリ リージョン。FILTER_EXPRESSION: フィルタするエージェントのフィルタ式。たとえば、表示名でフィルタするには、 を使用できますdisplayName='DISPLAY_NAME'。グローバルに一意の識別子(URN)でフィルタするには、agentId='urn:agent:AGENT_URN'を使用します。
組み込みの Google エージェントは、エージェントがデプロイされている場所に応じて URN 形式を使用します。たとえば、組み込みの Google Workspace エージェントは、googleapis.com パブリッシャーのリストをフィルタすることで検出できます。--filter="agentId:'urn:agent:googleapis.com:*'"
Terraform
google_agent_registry_agent データソースを使用して、登録済みエージェントを他の Terraform 構成で参照します。
data "google_agent_registry_agent" "my_agent" {
location = "REGION"
filter = "displayName=\"DISPLAY_NAME\""
}
output "agent_urn" {
value = data.google_agent_registry_agent.my_agent.urn
}
次のように置き換えます。
REGION: レジストリ リージョン。DISPLAY_NAME: エージェントの人が読める表示名。