本页面介绍了如何通过 Agent Gateway 路由 Gemini Enterprise 流量。Agent Gateway 是 Gemini Enterprise Agent Platform 生态系统的核心网络和安全组件。它为所有智能体交互提供安全且受管控的连接,无论这些交互发生在用户与智能体之间、智能体与工具之间,还是智能体之间。
准备工作
- 确保您熟悉 Gemini Enterprise 概念。
- 了解 Agent Gateway。 请注意,Agent Gateway 仅支持在 Agent-to-Anywhere(出站流量)模式下使用 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 关联的应用的名称。
点击安全。
在配置标签页的Agent Gateway 配置下,输入 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 Web 应用。
- 提交旨在触发外部工具的查询(例如,“请提供 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。
如需详细了解如何使用自定义组织政策限制条件,请参阅创建自定义限制条件。
后续步骤
Codelab:使用 Agent Platform 治理智能体工作负载
了解如何使用 Gemini Enterprise Agent Platform 上的 Agent Gateway 治理智能体工作负载。