エージェント ID を使用すると、Agent CLI と Agent Development Kit(ADK)を使用して、Gemini Enterprise Agent Platform の Agent Runtime で作成してデプロイするエージェントにマネージド ID をプロビジョニングできます。デプロイされたエージェントは、手動で認証情報を管理することなく、Google Cloud サービスに対して認証を行い、Agent Identity Auth Manager から認証情報を取得できます。
始める前に
Agent Identity API、Agent Platform API、Agent Registry API、App Hub API が有効になっていない場合は、有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法を確認する。プロジェクトに Agent Platform ユーザー(
roles/aiplatform.user)ロールがあることを確認します。
エージェントを作成してデプロイする
google-agents-cli を使用してサンプル エージェントを作成し、Agent Identity を使用してデプロイします。
uvをインストールしてから、google-agents-cliの設定を実行します。pip install uv uvx google-agents-cli setup
プロトタイプ テンプレートを使用してエージェント プロジェクトを作成します。
uvx google-agents-cli create AGENT_PROJECT --prototype --yes
AGENT_PROJECTは、新しいエージェント プロジェクト ディレクトリの名前に置き換えます(例:maps-agent)。このコマンドにより、次のプロジェクト ディレクトリ構造が生成されます。
AGENT_PROJECT/ ├── app/ # Core agent code │ ├── agent.py # Main agent logic │ ├── fast_api_app.py # Client application logic │ └── app_utils/ # App utilities and helpers ├── tests/ # Unit and integration tests ├── GEMINI.md # Development guide └── pyproject.toml # Project dependencies
デフォルトのアプリケーション フォルダ(
app)の名前を、エージェント名(AGENT_NAME、例:maps_agent)に合わせて変更します。エージェント名は有効な Python 識別子である必要があります。つまり、先頭は英字で、英字、数字、アンダースコアのみを使用する必要があります。cd AGENT_PROJECT mv app AGENT_NAME
新しい名前を反映するように
agent.py構成ファイルを更新します。# In AGENT_PROJECT/AGENT_NAME/agent.py app = App( root_agent=root_agent, name="
AGENT_NAME", )リージョン別の可用性に基づいて、使用するモデルを選択します。
agent.pyのMODELの値を、選択したモデルと一致するように更新します。globalリージョンでのみ使用可能なモデルの回避策globalリージョンでのみ使用可能なモデルを使用するには、エージェントがアクセスできるようにagent.pyを変更する必要があります。-
次のインポートを追加します。
from functools import cached_property from google.genai import Client
-
インポートの後に次のサブクラスを追加します。
class GlobalGemini(Gemini): @cached_property def api_client(self) -> Client: return Client(enterprise=True, location="global")
-
次のコードを見つけます。
root_agent = Agent( name="root_agent", model=Gemini(
新しいサブクラスを参照するように変更します。
root_agent = Agent( name="root_agent", model=GlobalGemini(
-
構成ファイルを作成して Agent Identity を有効にします。
echo '{ "identity_type": "AGENT_IDENTITY" }' > AGENT_NAME/.agent_engine_config.json
デプロイの依存関係用の
requirements.txtファイルを作成します。uv export \ --no-emit-workspace \ --no-hashes \ --format requirements.txt \ --output-file AGENT_NAME/requirements.txt
プロジェクトのディレクトリ構造を確認します。
AGENT_PROJECT/ ├── AGENT_NAME/ # Agent application folder │ ├── .agent_engine_config.json # Agent Identity configuration │ ├── agent.py # Main agent logic │ ├── fast_api_app.py # Client application logic │ ├── requirements.txt # Deployment dependencies │ └── app_utils/ # App helpers ├── tests/ # Tests ├── GEMINI.md # Development guide └── pyproject.toml # Project dependencies
ローカルでエージェントをテストします。
uv run adk web . --port 8501 --reload_agents
エージェントを検証するには、次の操作を行います。
http://localhost:8501に移動します。または、Cloud Shell を使用している場合は、ウェブサーバーの出力に表示されるリンクをクリックします。チャット インターフェースで、テスト プロンプトを送信してレスポンスを確認します。
CTRL+Cを使用してサーバーを終了します。エージェントを Google Cloudにデプロイします。
uv run adk deploy agent_engine AGENT_NAME \ --project="PROJECT_ID" \ --region="LOCATION"
次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。LOCATION: エージェントをデプロイするサポート対象の地域(例:us-west1)。
デプロイの完了には、数分かかることがあります。完了すると、CLI に確認メッセージと、 Google Cloud コンソール内のエージェントのプレイグラウンドへのリンクが出力されます。
エージェントの SPIFFE ID(エージェント ID)を取得します。
Google Cloud コンソールで、[デプロイ] ページに移動します。
エージェントの SPIFFE ID をクリップボードにコピーするには、デプロイされたエージェントが存在する行を見つけて、その行の [ID] 列で [クリップボードにコピー] をクリックします。ID は
principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/ENGINE_IDのようになります。
次のステップ
- エージェント ID の概要
- Agent Identity Auth Manager の概要
- Auth Manager で 3-legged OAuth を使用して認証する
- 認証マネージャーで 2-legged OAuth を使用して認証する
- 認証マネージャーで API キーを使用して認証する
- Agent Identity 認証プロバイダを管理する