本页介绍了如何通过 Agent Gateway 路由 Gemini Enterprise 流量。Agent Gateway 是 Gemini Enterprise Agent Platform 生态系统的核心网络和安全组件。它为所有智能体交互提供安全且受管控的连接,无论这些交互发生在用户与智能体之间、智能体与工具之间,还是智能体之间。
准备工作
- 确保您熟悉 Gemini Enterprise 概念
- 了解Agent Gateway。请注意,Agent Gateway 仅支持以“Agent-to-Anywhere”(出站)模式使用 Gemini Enterprise。不支持入站流量。
- 部署 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." \ --role="projects/PROJECT_ID/roles/AGENT_GATEWAY_ROLE_NAME"
替换以下内容:
PROJECT_ID:您的项目 ID。PROJECT_NUMBER:您的项目编号。AGENT_GATEWAY_ROLE_NAME:您创建的自定义角色的名称。
规划位置和 Agent Registry 映射
在部署代理网关之前,请选择部署网关的区域和注册资源的代理注册表。请注意以下要求:
位置映射:在与 Gemini Enterprise 应用的多区域设置对应的特定区域中部署 Agent Gateway,以确保正确路由。
注册表映射:为您的部署选择全局、多区域或区域注册表。如需详细了解部署模式和注册表选择,请参阅规划 Agent Gateway 部署。
| Gemini Enterprise 应用位置 | 必需的 Agent Gateway 区域 | 代理网关支持的代理注册表实例 |
|---|---|---|
global |
us-central1 |
选择以下一项:
|
us |
us-central1 |
选择以下一项:
|
eu |
europe-west1 |
选择以下一项:
|
通过 Agent Gateway 路由 Gemini Enterprise 流量
如需通过 Agent Gateway 路由 Gemini Enterprise 流量,请执行以下步骤:
创建代理网关资源,并确保您遵循上一部分中选择的区域和注册表。如需查看相关说明,请参阅设置 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 应用。请注意,完成此步骤后,所有现有代理流量都会立即通过指定的 Agent Gateway 进行路由。控制台
在 Google Cloud 控制台中,前往 Gemini Enterprise 页面。
点击要与 Agent Gateway 关联的应用的名称。
点击安全。
在配置 Tab 下的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://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 应用现已启用出站流量管控,但您的应用不会自动知道它可以与代理注册表中的哪些外部资源进行交互。
您必须将所选的代理、端点和 MCP 服务器明确导入到 Gemini Enterprise 应用中。导入的资源必须使用其基于注册表的精确资源名称进行引用。如需查看相关说明,请参阅以下指南:
如需验证出站流量是否正常运行,请执行以下步骤:
- 打开 Gemini Enterprise Web 应用。
- 提交旨在触发外部工具的查询(例如“给我列出 GitHub 上最近的问题”)。
- 监控执行情况,确保成功检索到响应。 在幕后,Gemini Enterprise 代理会打包请求,通过代理网关(用于强制执行任何已配置的授权政策)路由请求,并从目标位置检索响应。
将 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 分钟才能生效。
如需详细了解如何使用自定义组织政策限制条件,请参阅创建自定义限制条件。
后续步骤
Codelab:使用 Agent Platform 管理代理工作负载
了解如何在 Gemini Enterprise Agent Platform 上使用 Agent Gateway 来监管智能体工作负载。