本页介绍了如何通过 Agent Gateway 路由 Agent Runtime 流量。Agent Gateway 是 Gemini Enterprise Agent Platform 生态系统的核心网络和安全组件。 它为所有智能体交互提供安全且受管控的连接,无论这些交互发生在用户和智能体之间、智能体和工具之间,还是智能体之间。
准备工作
确保您熟悉如何在 Agent Runtime 上部署智能体。
了解 Agent Gateway。 您可以在“代理到任意目的地”(出站流量)模式下使用 Agent Gateway,以保护和管控与工具、模型、API 和其他智能体的所有出站通信。您可以在“客户端到代理”(入站流量)模式下使用网关,以控制哪些客户端可以访问您的智能体。借助该网关,您可以选择必须将哪些 IAP 政策和 Model Armor 模板应用于这些交互。
创建一个专用测试 项目来试用此 工作流。请勿使用也用于其他关键工作负载的项目。
限制
虽然单个项目和区域可以托管多个“代理到任意目的地”(出站流量)和“客户端到代理”(入站流量)Agent Gateway 实例,但部署在同一项目和区域中的所有 Agent Runtime 智能体都必须绑定到同一特定的出站流量和入站流量 Agent Gateway 实例。
例如,如果一个项目和区域包含
egress-gateway-X和egress-gateway-Y,则该项目和区域中的所有智能体都必须配置为使用同一网关进行出站流量。也就是说,所有智能体都使用egress-gateway-X或所有智能体都使用egress-gateway-Y。您无法将agent-A配置为使用egress-gateway-X,并将agent-B配置为使用egress-gateway-Y。此绑定规则同样适用于项目和区域内的入站流量网关。
为智能体启用 Agent Gateway 后,Security Command Center Agent Engine 威胁检测 服务 将不可用。
您无法将 Runtime 智能体与 Agent Gateway 资源取消绑定。因此,请确保您使用的是专用测试项目。
通过 Agent Gateway 路由 Agent Runtime 流量
如需通过 Agent Gateway 路由 Agent Runtime 流量,请执行以下步骤:
创建 Agent Gateway 资源,并根据需要附加任何授权政策。您可以在“代理到任意目的地”(出站流量)模式或“客户端到代理”(入站流量)模式下创建网关。请注意,智能体和网关必须在同一项目和区域中创建。如需查看相关说明,请参阅设置 Agent Gateway。
确保网关配置符合部署需求。例如,如果您的智能体需要 LLM 访问权限,请将网关配置为允许此访问权限,以防止潜在的 Agent Runtime 部署失败。
在部署智能体时指定网关资源。例如,如需在 Agent Runtime 上部署智能体,请使用
client.agent_engines.create传入local_agent对象以及任何 可选配置。您还必须确保 Runtime 实例已分配 智能体身份,如本示例所示,使用
identity_type参数。remote_agent = client.agent_engines.create( agent=local_agent, config={ "agent_gateway_config": { "agent_to_anywhere_config": {"agent_gateway": AGENT_GATEWAY_TO_ANYWHERE_NAME}, # "client_to_agent_config": {"agent_gateway": AGENT_GATEWAY_CLIENT_TO_AGENT_NAME} }, "identity_type": types.IdentityType.AGENT_IDENTITY, # Other optional configuration ... # "requirements": requirements, # "gcs_dir_name": gcs_dir_name, # https://docs.cloud.google.com/gemini-enterprise-agent-platform/scale/runtime/agent-identity#opt-out-caa "env_vars": { "GOOGLE_API_PREVENT_AGENT_TOKEN_SHARING_FOR_GCP_SERVICES": False, } }, )
将
AGENT_GATEWAY_TO_ANYWHERE_NAME替换为您在“代理到任意目的地”(出站流量)模式下创建的 Agent Gateway 的完整路径。例如,projects/PROJECT/locations/REGION/agentGateways/AGENT_GATEWAY_ID。如果您在“客户端到代理”(入站流量)模式下创建了网关,请改用
client_to_agent_config字段,并将AGENT_GATEWAY_CLIENT_TO_AGENT_NAME替换为您为入站流量创建的 Agent Gateway 的完整路径。在与智能体和网关相同的项目和区域中,向 Agent Registry 实例注册智能体。如需了解详情,请参阅 注册智能体。
将 Agent Runtime 限制为已获批准的 Agent Gateway
您可以创建自定义组织政策限制条件,以定义在部署智能体时可以使用的合格 Agent Gateway 资源集。
创建自定义组织政策限制条件
此示例创建的自定义限制条件仅允许与预先批准的网关列表进行流量往来。
代理到任意目的地
如需为“代理到任意目的地”模式(出站流量)定义自定义限制条件,请创建一个名为
constraint-agent-gateway-egress.yaml的文件。在以下示例中,
condition字段指定仅当指定了 Agent Gateway 资源(字段存在且不为空)且指定的网关位于预先批准的列表中时,才允许执行该操作。name: organizations/ORGANIZATION_ID/customConstraints/custom.allowlistedEgressAgentGatewaysForAgentEngine resource_types: - aiplatform.googleapis.com/ReasoningEngine condition: >- has(resource.spec.deploymentSpec.agentGatewayConfig.agentToAnywhereConfig.agentGateway) && resource.spec.deploymentSpec.agentGatewayConfig.agentToAnywhereConfig.agentGateway != '' && (resource.spec.deploymentSpec.agentGatewayConfig.agentToAnywhereConfig.agentGateway in [ 'projects/AGENT_PROJECT_ID_1/locations/REGION_1/agentGateways/AGENT_GATEWAY_ID_1', 'projects/AGENT_PROJECT_ID_2/locations/REGION_2/agentGateways/AGENT_GATEWAY_ID_2', ]) method_types: - CREATE - UPDATE action_type: ALLOW display_name: Restrict Reasoning Engine Egress to Approved Agent Gateways description: Reasoning Engines can only be bound to a pre-approved list of Agent Gateway instances. Binding to any other gateway is denied.替换以下内容:
- ORGANIZATION_ID:您的组织 ID。
- AGENT_PROJECT_ID:您的项目 ID。
- REGION:创建网关的区域。
- AGENT_GATEWAY_ID:您的网关 ID。
应用自定义限制条件。
gcloud alpha org-policies set-custom-constraint EGRESS_CONSTRAINT_PATH
将 EGRESS_CONSTRAINT_PATH 替换为您在上一步中创建的自定义 限制条件文件的完整路径。
创建组织政策以强制执行限制条件。如需定义组织政策,请创建一个名为
policy-agent-gateway-egress.yaml的政策 YAML 文件。在此示例中,我们在项目级层强制执行此限制条件,但您也可以在组织或文件夹级层设置此限制条件。name: projects/AGENT_PROJECT_ID/policies/custom.allowlistedEgressAgentGatewaysForAgentEngine spec: rules: - enforce: true将
AGENT_PROJECT_ID替换为您的项目 ID。强制执行组织政策。
gcloud alpha org-policies set-policy EGRESS_POLICY_PATH
将 EGRESS_POLICY_PATH 替换为您在上一步中创建的组织政策 YAML 文件的完整路径。该政策最长需要 15 分钟才能生效。
客户端到代理
如需为“客户端到代理”模式(入站流量)定义自定义限制条件,请创建一个名为
constraint-agent-gateway-ingress.yaml的文件。在以下示例中,
condition字段指定仅当指定了 Agent Gateway 资源(字段存在且不为空)且指定的网关位于预先批准的列表中时,才允许执行该操作。name: organizations/ORGANIZATION_ID/customConstraints/custom.allowlistedIngressAgentGatewaysForAgentEngine resource_types: - aiplatform.googleapis.com/ReasoningEngine condition: >- has(resource.spec.deploymentSpec.agentGatewayConfig.clientToAgentConfig.agentGateway) && resource.spec.deploymentSpec.agentGatewayConfig.clientToAgentConfig.agentGateway != '' && (resource.spec.deploymentSpec.agentGatewayConfig.clientToAgentConfig.agentGateway in [ 'projects/AGENT_PROJECT_ID_1/locations/REGION_1/agentGateways/AGENT_GATEWAY_ID_1', 'projects/AGENT_PROJECT_ID_2/locations/REGION_2/agentGateways/AGENT_GATEWAY_ID_2', ]) method_types: - CREATE - UPDATE action_type: ALLOW display_name: Restrict Reasoning Engine Ingress to Approved Agent Gateways description: Reasoning Engines can only be bound to a pre-approved list of Agent Gateway instances. Binding to any other gateway is denied.替换以下内容:
- ORGANIZATION_ID:您的组织 ID。
- AGENT_PROJECT_ID:您的项目 ID。
- REGION:创建网关的区域。
- AGENT_GATEWAY_ID:您的网关 ID。
应用自定义限制条件。
gcloud alpha org-policies set-custom-constraint INGRESS_CONSTRAINT_PATH
将 INGRESS_CONSTRAINT_PATH 替换为您在上一步中创建的自定义 限制条件文件的完整路径。
创建组织政策以强制执行限制条件。如需定义组织政策,请创建一个名为
policy-agent-gateway-ingress.yaml的政策 YAML 文件。在此示例中,我们在项目级层强制执行此限制条件,但您也可以在组织或文件夹级层设置此限制条件。name: projects/AGENT_PROJECT_ID/policies/custom.allowlistedIngressAgentGatewaysForAgentEngine spec: rules: - enforce: true将
AGENT_PROJECT_ID替换为您的项目 ID。强制执行组织政策。
gcloud alpha org-policies set-policy INGRESS_POLICY_PATH
将 INGRESS_POLICY_PATH 替换为您在上一步中创建的组织政策 YAML 文件的完整路径。该政策最长需要 15 分钟才能生效。
如需详细了解如何使用自定义组织政策限制条件, 请参阅创建自定义限制条件。
后续步骤
Codelab:使用 Agent Platform 管理智能体工作负载
了解如何在 Gemini Enterprise Agent Platform 上使用 Agent Gateway 管理智能体工作负载。