本頁說明如何透過 Agent Gateway 導向 Gemini Enterprise 流量。Agent Gateway 是 Gemini Enterprise Agent Platform 生態系統的中央網路和安全元件。無論是使用者與代理、代理與工具,還是代理之間的互動,都能透過這項服務安全且受控地連線。
事前準備
- 請務必熟悉 Gemini Enterprise 概念
- 瞭解 Agent Gateway。請注意,代理閘道僅支援「代理至任何位置」(輸出) 模式的 Gemini Enterprise。系統不支援 Ingress 流量。
- 部署 Gemini Enterprise 應用程式 (也稱為引擎)。本頁的程序假設您已部署應用程式。詳情請參閱「建立應用程式」。
必要權限
授予 Discovery Engine 服務代理 (即專案 Gemini Enterprise 執行個體的 Google 代管服務帳戶) 下列權限,讓 Discovery Engine 服務代理可以探索資源並轉送流量。
Agent Registry:
agentregistry.agents.listagentregistry.agents.searchagentregistry.agents.getagentregistry.mcpServers.listagentregistry.mcpServers.searchagentregistry.mcpServers.get
Agent Gateway:
networkservices.agentGateways.listnetworkservices.agentGateways.getnetworkservices.agentGateways.use
請按照下列步驟,授予 Discovery Engine 服務代理程式權限。
建立具有這些權限的自訂角色。
gcloud iam roles create AGENT_GATEWAY_ROLE_NAME \ --project=PROJECT_ID \ --title="Custom Agent Gateway and Agent Registry access role" \ --description="Custom role for Agent Gateway and Agent Registry access" \ --permissions="agentregistry.agents.list,agentregistry.agents.search,agentregistry.agents.get,agentregistry.mcpServers.list,agentregistry.mcpServers.search,agentregistry.mcpServers.get,networkservices.agentGateways.list,networkservices.agentGateways.get,networkservices.agentGateways.use"
更改下列內容:
AGENT_GATEWAY_ROLE_NAME:自訂角色的名稱。PROJECT_ID:部署代理程式的專案 ID。
將角色指派給 Gemini Enterprise 服務帳戶。
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com" \ --role="projects/PROJECT_ID/roles/AGENT_GATEWAY_ROLE_NAME"
更改下列內容:
PROJECT_ID:專案 ID。PROJECT_NUMBER:您的專案編號。AGENT_GATEWAY_ROLE_NAME:您建立的自訂角色名稱。
規劃位置和 Agent Registry 對應
部署 Agent Gateway 前,請先選擇要部署閘道的區域,以及註冊資源的 Agent Registry。請注意下列要求:
位置對應:在與 Gemini Enterprise 應用程式多區域設定對應的特定區域中,部署 Agent Gateway,確保路徑正確。
登錄對應:為部署作業選擇全域、多區域或區域登錄。如需部署模式和登錄選項的更多指引,請參閱「規劃 Agent Gateway 部署作業」。
| Gemini Enterprise 應用程式位置 | 必要的 Agent Gateway 區域 | Agent Gateway 支援的 Agent Registry 執行個體 |
|---|---|---|
global |
us-central1 |
選擇下列其中一個選項:
|
us |
us-central1 |
選擇下列其中一個選項:
|
eu |
europe-west1 |
選擇下列其中一個選項:
|
透過 Agent Gateway 轉送 Gemini Enterprise 流量
如要透過 Agent Gateway 轉送 Gemini Enterprise 流量,請按照下列步驟操作:
建立 Agent Gateway 資源,並確保遵守上一節選取的區域和登錄檔。如需操作說明,請參閱「設定 Agent Gateway」。
驗證閘道設定。使用 Network Services API 擷取 Agent Gateway 設定,並檢查設定。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://networkservices.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/AGENT_GATEWAY_REGION/agentGateways/AGENT_GATEWAY_NAME"
以下是設定正確的閘道輸出範例:
{ "name": "projects/my-ge-project/locations/us-central1/agentGateways/my-egress-gateway", "description": "A full configuration for Agent Gateway for Gemini Enterprise egress", "googleManaged": { "governedAccessPath": "AGENT_TO_ANYWHERE" }, "protocols": [ "MCP" ], "registries": [ "//agentregistry.googleapis.com/projects/my-ge-project/locations/global" ] }使用
UpdateEngineAPI 將閘道繫結至 Gemini Enterprise 應用程式。請注意,完成這個步驟後,所有現有的代理程式流量都會立即透過指定的代理程式閘道轉送。控制台
前往 Google Cloud 控制台的「Gemini Enterprise」頁面。
按一下要與 Agent Gateway 建立關聯的應用程式名稱。
點按「安全性」。
在「Configuration」(設定) 分頁的「Agent Gateway configuration」(代理程式閘道設定) 下方,輸入閘道的完整資源名稱。請使用下列格式:
projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME。按一下 [儲存]。
REST
請使用下列要求更新應用程式。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ -d '{ "agentGatewaySetting": { "defaultEgressAgentGateway": { "name": "projects/PROJECT_ID/locations/AGENT_GATEWAY_REGION/agentGateways/AGENT_GATEWAY_NAME" } } }' \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/GE_APP_LOCATION/collections/default_collection/engines/GE_APP_ID?updateMask=agentGatewaySetting.defaultEgressAgentGateway.name"
更改下列內容:
PROJECT_ID:專案 ID。AGENT_GATEWAY_REGION:Agent Gateway 的區域。AGENT_GATEWAY_NAME:Agent Gateway 的名稱。PROJECT_NUMBER:專案編號。GE_APP_LOCATION:Gemini Enterprise 應用程式的位置 (例如us或global)。GE_APP_ID:Gemini Enterprise 應用程式的 ID。
如要驗證應用程式設定,請使用下列指令擷取設定並檢查:
curl -s -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "X-Goog-User-Project: PROJECT_ID" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/GE_LOCATION/collections/default_collection/engines/GE_APP_ID" \ | jq '{name: .name, displayName: .displayName, agentGatewaySetting: .agentGatewaySetting}'以下是設定正確的應用程式輸出內容範例:
{ "name": "projects/PROJECT_NUMBER/locations/GE_LOCATION/collections/default_collection/engines/GE_APP_ID", "displayName": "GE_APP_ID", "agentGatewaySetting": { "defaultEgressAgentGateway": { "name": "projects/PROJECT_ID/locations/AGENT_GATEWAY_REGION/agentGateways/AGENT_GATEWAY_NAME" } } }
雖然 Gemini Enterprise 應用程式已啟用輸出內容控管功能,但應用程式不會自動得知可與 Agent Registry 上的哪些外部資源互動。
您必須明確將所選代理程式、端點和 MCP 伺服器匯入 Gemini Enterprise 應用程式。匯入的資源必須使用其確切的登錄式資源名稱參照。如需操作說明,請參閱下列指南:
如要確認輸出功能是否正常運作,請執行下列步驟:
- 開啟 Gemini Enterprise 網頁應用程式。
- 提交查詢,觸發外部工具 (例如「Give me a list of recent issues from GitHub」)。
- 監控執行作業,確保成功擷取回應。 在幕後,Gemini Enterprise 代理會封裝要求、透過 Agent Gateway 傳送要求 (Agent Gateway 會強制執行所有已設定的授權政策),並從目的地擷取回應。
將 Gemini Enterprise 繫結限制為已核准的代理閘道
您可以建立自訂組織政策限制,限制 Gemini Enterprise 應用程式是否可繫結至任何或所有代理程式閘道。
建立自訂組織政策限制
這個範例會建立自訂限制,禁止 Gemini Enterprise 應用程式與代理閘道之間的所有繫結。
代理至任意目的地
如要為「代理程式到任何位置」模式 (輸出) 定義自訂限制,請建立名為
constraint-agent-gateway-egress.yaml的檔案。以下範例說明如何禁止任何繫結,強制執行嚴格的網路隔離。
condition欄位指定如果指定 Agent Gateway 資源 (欄位存在且不為空),則作業遭拒。name: organizations/ORGANIZATION_ID/customConstraints/custom.disallowGeminiEnterpriseAgentGatewayBinding resource_types: – discoveryengine.googleapis.com/Engine condition: >- has(resource.agentGatewaySetting.defaultEgressAgentGateway.name) && resource.agentGatewaySetting.defaultEgressAgentGateway.name != '' actionType: DENY displayName: "Disallow all Agent Gateway Bindings for Discovery Engines" description: "To enforce strict network isolation, Discovery Engines are not permitted to bind to any Agent Gateway."
更改下列內容:
- ORGANIZATION_ID:您的機構 ID。
- PROJECT_ID:您的專案 ID。
- REGION:建立閘道的區域。
- AGENT_GATEWAY_NAME:閘道名稱。
套用自訂限制條件。
gcloud org-policies set-custom-constraint EGRESS_CONSTRAINT_PATH
將 EGRESS_CONSTRAINT_PATH 替換為上一步建立的自訂限制檔案完整路徑。
建立組織政策,強制執行限制條件。如要定義組織政策,請建立名為
policy-agent-gateway-egress.yaml的政策 YAML 檔案。在本範例中,我們是在專案層級強制執行這項限制,但您也可以在機構或資料夾層級設定這項限制。name: projects/PROJECT_ID/policies/custom.disallowGeminiEnterpriseAgentGatewayBinding spec: rules: – enforce: true
將
PROJECT_ID替換為專案 ID。強制執行機構政策。
gcloud org-policies set-policy EGRESS_POLICY_PATH
請將 EGRESS_POLICY_PATH 替換為上一步建立的機構政策 YAML 檔案完整路徑。政策最多需要 15 分鐘才會生效。
如要進一步瞭解如何使用自訂組織政策限制,請參閱「建立自訂限制」。
後續步驟
程式碼研究室:使用 Agent Platform 管理代理程式工作負載
瞭解如何透過 Gemini Enterprise Agent Platform 上的 Agent Gateway,控管代理式工作負載。