透過代理閘道轉送 Agent Runtime 流量

本頁面說明如何透過 Agent Gateway 傳送 Agent Runtime 流量。Agent Gateway 是 Gemini Enterprise Agent Platform 生態系統的中央網路和安全防護元件。無論是使用者與代理、代理與工具,還是代理之間的互動,這項服務都能提供安全且受管理的連線。

事前準備

  • 請務必熟悉在 Agent Runtime 上部署代理程式

  • 瞭解 Agent Gateway。您可以在 Agent-to-Anywhere (輸出) 模式下使用 Agent Gateway,確保所有輸出通訊的安全,並控管輸出流量,包括傳送至工具、模型、API 和其他代理程式的流量。您可以在「用戶端到代理程式」(連入) 模式中使用閘道,控管哪些用戶端可以存取代理程式。您可以透過閘道選擇要對這些互動套用哪些 IAP 政策和 Model Armor 範本。

  • 建立專屬測試專案,試試這個工作流程。請避免使用也用於其他重要工作負載的專案。

限制

  • 單一專案和區域可代管多個 Agent-to-Anywhere (輸出) 和 Client-to-Agent (輸入) 代理程式閘道執行個體,但部署在相同專案和區域內的所有代理程式執行階段代理程式,都必須繫結至相同的特定輸出和輸入代理程式閘道執行個體。

    舉例來說,如果專案和區域包含 egress-gateway-Xegress-gateway-Y,則該專案和區域中的所有代理程式都必須設定為使用相同的閘道進行輸出。也就是說,所有代理程式都使用 egress-gateway-X,或所有代理程式都使用 egress-gateway-Y。您無法將 agent-A 設為使用 egress-gateway-X,以及將 agent-B 設為使用 egress-gateway-Y

    這項繫結規則也適用於專案和區域內的 Ingress 閘道。

  • 為代理程式啟用 Agent Gateway 時,Security Command Center Agent Engine Threat Detection 服務無法使用。

  • 您無法將 Runtime 代理程式從 Agent Gateway 資源取消繫結。因此,請務必使用專用的測試專案。

透過 Agent Gateway 轉送 Agent Runtime 流量

如要透過 Agent Gateway 傳送 Agent Runtime 流量,請執行下列步驟:

  1. 建立代理閘道資源,並視需要附加授權政策。您可以在「Agent-to-Anywhere」(輸出) 模式或「Client-to-Agent」(輸入) 模式中建立閘道。請注意,代理程式和閘道必須在相同專案和區域中建立。如需操作說明,請參閱「設定 Agent Gateway」。

    請確認閘道已設定完成,可滿足部署需求。舉例來說,如果代理程式需要存取 LLM,請設定閘道允許存取,以免代理程式執行階段部署作業失敗。

  2. 部署代理程式時,請指定閘道資源。舉例來說,如要在 Agent Runtime 上部署代理程式,請使用 client.agent_engines.create 傳遞 local_agent 物件和任何選用設定

    您也必須使用 identity_type 參數,確保 Runtime 執行個體已指派代理程式身分,如本範例所示。

    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-to-Anywhere (輸出) 模式中建立的 Agent Gateway 完整路徑。例如:projects/PROJECT/locations/REGION/agentGateways/AGENT_GATEWAY_ID

    如果您在「用戶端到代理程式」(輸入) 模式中建立閘道,請改用 client_to_agent_config 欄位,並將 AGENT_GATEWAY_CLIENT_TO_AGENT_NAME 替換為您為輸入建立的代理程式閘道完整路徑。

  3. 在與代理程式和閘道相同的專案和區域中,向 Agent Registry 執行個體註冊代理程式。詳情請參閱「註冊代理程式」。

將 Agent Runtime 限制為僅限核准的代理閘道

您可以建立自訂機構政策限制,定義部署代理程式時可使用的合格 Agent Gateway 資源集。

建立自訂組織政策限制

這個範例會建立自訂限制,只允許流量傳送至預先核准的閘道清單,以及從該清單傳送流量。

代理至任意目的地

  1. 如要為「代理程式到任何位置」模式 (輸出) 定義自訂限制,請建立名為 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。
  2. 套用自訂限制條件。

    gcloud alpha org-policies set-custom-constraint EGRESS_CONSTRAINT_PATH
    

    EGRESS_CONSTRAINT_PATH 替換為上一步建立的自訂限制檔案完整路徑。

  3. 建立機構政策,強制執行限制。如要定義組織政策,請建立名為 policy-agent-gateway-egress.yaml 的政策 YAML 檔案。在本範例中,我們會在專案層級強制執行這項限制,但您也可以在機構或資料夾層級設定這項限制。

    name: projects/AGENT_PROJECT_ID/policies/custom.allowlistedEgressAgentGatewaysForAgentEngine
    spec:
      rules:
      - enforce: true
    

    AGENT_PROJECT_ID 替換為專案 ID。

  4. 強制執行機構政策。

    gcloud alpha org-policies set-policy EGRESS_POLICY_PATH
    

    請將 EGRESS_POLICY_PATH 替換為上一步建立的組織政策 YAML 檔案完整路徑。政策最多需要 15 分鐘才會生效。

用戶端至代理

  1. 如要為「用戶端到代理程式」模式 (輸入) 定義自訂限制,請建立名為 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。
  2. 套用自訂限制條件。

    gcloud alpha org-policies set-custom-constraint INGRESS_CONSTRAINT_PATH
    

    INGRESS_CONSTRAINT_PATH 替換為上一步建立的自訂限制檔案完整路徑。

  3. 建立機構政策,強制執行限制。如要定義組織政策,請建立名為 policy-agent-gateway-ingress.yaml 的政策 YAML 檔案。在本範例中,我們會在專案層級強制執行這項限制,但您也可以在機構或資料夾層級設定這項限制。

    name: projects/AGENT_PROJECT_ID/policies/custom.allowlistedIngressAgentGatewaysForAgentEngine
    spec:
      rules:
      - enforce: true
    

    AGENT_PROJECT_ID 替換為專案 ID。

  4. 強制執行機構政策。

    gcloud alpha org-policies set-policy INGRESS_POLICY_PATH
    

    請將 INGRESS_POLICY_PATH 替換為上一步建立的組織政策 YAML 檔案完整路徑。政策最多需要 15 分鐘才會生效。

如要進一步瞭解如何使用自訂組織政策限制,請參閱「建立自訂限制」。

後續步驟

程式碼研究室

瞭解如何透過 Gemini Enterprise Agent Platform 上的 Agent Gateway,控管代理式工作負載。

指南

瞭解如何將 Agent Gateway 的授權委派給 IAP、Model Armor 或您自己的自訂授權服務。

指南

瞭解如何監控 Agent Gateway。