本頁說明如何透過 Agent Gateway 轉送 Gemini Enterprise 流量。Agent Gateway 是 Gemini Enterprise Agent Platform 生態系統的核心網路和安全元件,無論是使用者與代理之間的互動、代理與工具之間的互動,還是代理之間的互動,都能提供安全且受管理的連線能力。
事前準備
- 請務必熟悉 Gemini Enterprise 概念。
- 瞭解 Agent Gateway。請注意,Agent Gateway 僅支援 Gemini Enterprise 的「代理到任何位置」(輸出) 模式。不支援輸入流量。
- 部署 Gemini Enterprise 應用程式 (也稱為引擎)。本頁程序假設您已部署應用程式。詳情請參閱「建立應用程式」。
規劃位置和 Agent Registry 對應
部署 Agent Gateway 之前,請先選擇要部署閘道的區域,以及要註冊資源的 Agent Registry。請注意下列要求:
位置對應:在與 Gemini Enterprise 應用程式位置對應的特定區域部署 Agent Gateway,確保路由正確。
登錄檔對應:將 Agent Gateway 與區域 Agent Registry 執行個體建立關聯,兩者須位於相同專案和區域。如需部署模式的詳細指南,請參閱「規劃 Agent Gateway 部署作業」。
| Gemini Enterprise 應用程式位置 | 必要的 Agent Gateway 區域 | Agent Gateway 必要的 Agent Registry 執行個體 |
|---|---|---|
global |
us-central1 |
us-central1 (//agentregistry.googleapis.com/projects/PROJECT_ID/locations/us-central1) |
us |
us-central1 |
us-central1 (//agentregistry.googleapis.com/projects/PROJECT_ID/locations/us-central1) |
eu |
europe-west1 |
europe-west1 (//agentregistry.googleapis.com/projects/PROJECT_ID/locations/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/v1/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/us-central1" ] }使用
UpdateEngineAPI 將閘道繫結至 Gemini Enterprise 應用程式。請注意,完成這個步驟後,所有現有的代理流量會立即透過指定的 Agent Gateway 轉送。控制台
前往 Google Cloud 控制台的「Gemini Enterprise」頁面。
按一下要與 Agent Gateway 建立關聯的應用程式名稱。
點按「安全性」。
在「Configuration」(設定) 分頁的「Agent Gateway configuration」(Agent Gateway 設定) 下方,輸入閘道的完整資源名稱。請使用以下格式:
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://ENDPOINT_LOCATION-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 的名稱。ENDPOINT_LOCATION:與GE_APP_LOCATION相符的 API 端點多區域前置字串。指定global、us或eu。例如,eu應用程式會使用eu-discoveryengine.googleapis.com。如果是global應用程式,也支援不含前置字元的discoveryengine.googleapis.com。PROJECT_NUMBER:專案編號。GE_APP_LOCATION:Gemini Enterprise 應用程式的位置。請指定global、us或eu。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://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/GE_APP_LOCATION/collections/default_collection/engines/GE_APP_ID" \ | jq '{name: .name, displayName: .displayName, agentGatewaySetting: .agentGatewaySetting}'更改下列內容:
PROJECT_ID:專案 ID。ENDPOINT_LOCATION:與GE_APP_LOCATION相符的 API 端點多區域前置字串。指定global、us或eu。PROJECT_NUMBER:專案編號。GE_APP_LOCATION:Gemini Enterprise 應用程式的位置。請指定global、us或eu。GE_APP_ID:Gemini Enterprise 應用程式的 ID。
以下是正確設定應用程式的輸出範例:
{ "name": "projects/PROJECT_NUMBER/locations/GE_APP_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 應用程式已啟用輸出治理功能,但不會自動得知可與代理登錄檔中的哪些外部資源互動。
您必須明確將所選代理、端點和 MCP 伺服器匯入 Gemini Enterprise 應用程式。匯入的資源必須使用確切的註冊資源名稱參照。如需操作說明,請參閱下列指南:
如要確認輸出功能是否正常運作,請按照下列步驟操作:
- 開啟 Gemini Enterprise 網頁應用程式。
- 提交查詢,觸發外部工具 (例如「提供 GitHub 最近的問題清單」)。
- 監控執行作業,確保成功擷取回應。在幕後,Gemini Enterprise 代理會封裝要求,透過 Agent Gateway 轉送 (強制執行任何設定的授權政策),並從目的地擷取回覆。
限制 Gemini Enterprise 只能繫結至核准的 Agent Gateway
您可以建立自訂組織政策限制,限制 Gemini Enterprise 應用程式是否能繫結至任何或所有 Agent Gateway。
建立自訂組織政策限制
這個範例會建立自訂限制,禁止 Gemini Enterprise 應用程式與 Agent Gateway 之間的所有繫結。
代理至任意目的地
如要定義「代理到任何位置」模式 (輸出) 的自訂限制,請建立名為
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
強制執行組織政策。
gcloud org-policies set-policy EGRESS_POLICY_PATH
請將 EGRESS_POLICY_PATH 替換為上一步建立的組織政策 YAML 檔案完整路徑。政策最多需要 15 分鐘才會生效。
更改下列內容:
將 PROJECT_ID 替換為專案 ID。
如要進一步瞭解如何使用自訂組織政策限制,請參閱「建立自訂限制」。
後續步驟
程式碼實驗室:使用 Agent Platform 管理代理工作負載
瞭解如何透過 Gemini Enterprise Agent Platform 的 Agent Gateway 控管代理工作負載。