本指南說明如何在 Gemini Enterprise Agent Platform 的 Agent Runtime 中,建立及部署已啟用 Agent Identity 的代理。
代理身分會為已部署的代理指派安全的 SPIFFE 身分。代理程式會使用這個身分向 Google Cloud 服務進行驗證,並從代理程式身分驗證管理員擷取憑證。
事前準備
啟用 Agent Identity API、Agent Platform API、Agent Registry API 和 App Hub API。
啟用 API 時所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (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(
-
建立設定檔,啟用代理程式身分:
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 (代理身分):
前往 Google Cloud 控制台的「Deployments」(部署作業) 頁面。
如要將代理程式的 SPIFFE ID 複製到剪貼簿,請找出已部署代理程式所在的資料列,然後點選該列「身分」欄中的 「複製到剪貼簿」。 身分看起來類似以下內容:
principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/ENGINE_ID。
後續步驟
- 代理身分總覽
- 代理程式身分驗證管理員總覽
- 使用驗證管理工具,透過三足式 OAuth 進行驗證
- 使用雙足式 OAuth 和驗證管理員進行驗證
- 使用驗證管理工具,透過 API 金鑰進行驗證
- 管理代理商身分驗證提供者