註冊及管理託管於 Agent Runtime 的 ADK 代理

本頁面說明管理員如何從 Agent Runtime 註冊 ADK 代理,以便在 Gemini Enterprise 網頁應用程式中使用。

如要將部署在 Agent Runtime 的 ADK 代理註冊至 Gemini Enterprise,您可以使用 Agent Platform 中的 Agents CLI 單一指令。

在 Gemini Enterprise 應用程式中註冊託管於 Agent Runtime 的 ADK 代理,並在 Gemini Enterprise 網頁應用程式中向使用者提供這些代理時:

  • Agent Runtime 服務會處理代理查詢。

  • 相關行為適用 Agent Runtime 機器學習處理條款。詳情請參閱「Agent Runtime 限制」。

下表說明如何控管 ADK 代理程式,確保安全且受控的部署和使用方式。

代理程式管理 說明
安全通訊 Agent Runtime 與 Gemini Enterprise 之間的連線符合 VPC Service Controls (VPC-SC) 規定,確保資料交換安全無虞。
支援跨專案代理程式 您可以連結在不同 Google Cloud中代管的 ADK 代理。Gemini Enterprise 會使用 Google Cloud's 安全的私人網路,建立這些跨專案連線。詳情請參閱「設定跨專案 ADK 代理程式存取權」。
個人化互動 ADK 代理程式會從 Gemini Enterprise 接收使用者的電子郵件地址。這樣一來,代理程式就能辨識個別使用者,並根據身分和權限提供個人化回應。

事前準備

請確認你已具備以下條件:

  • Gemini Enterprise 管理員角色。

  • 啟用 Discovery Engine API。如要為 Google Cloud專案啟用 Discovery Engine API,請前往 Google Cloud 控制台的「Discovery Engine API」頁面。

    前往 Discovery Engine API

  • 現有的 Gemini Enterprise 應用程式。如要建立應用程式,請參閱「建立應用程式」。

  • 託管於 Agent Runtime 的 ADK 代理。詳情請參閱「Agent 開發套件總覽」。

    • 如果您沒有代理程式,請按照 adk-samples GitHub 存放區中的步驟,將 fun_facts 代理程式部署至 Agent Runtime。然後將代理註冊至 Gemini Enterprise。
  • 如果 ADK 代理程式代管在與 Gemini Enterprise 應用程式不同的 Google Cloud 專案中,您必須授予必要權限。詳情請參閱「授予跨專案 ADK 代理程式存取權的權限」。

設定授權詳細資料 (選用)

請按照下列步驟取得授權詳細資料。

  1. 在 Google Cloud 控制台的「API 與服務」頁面中,前往「憑證」頁面。

    前往「憑證」

  2. 選取 Google Cloud 專案,其中包含您要讓代理程式存取的資料來源。舉例來說,選取要讓代理程式查詢的 BigQuery 資料集所屬專案。

  3. 按一下「建立憑證」,然後選取「OAuth 用戶端 ID」

  4. 在「應用程式類型」部分,選取「網頁應用程式」

  5. 在「已授權的重新導向 URI」部分,新增下列 URI:

    • https://vertexaisearch.cloud.google.com/oauth-redirect
    • https://vertexaisearch.cloud.google.com/static/oauth/oauth.html
  6. 點選「建立」

  7. 在「OAuth client created」(已建立 OAuth 用戶端) 面板中,按一下「Download JSON」(下載 JSON)。 下載的 JSON 檔案包含所選Google Cloud 專案的 Client IDAuthorization URIToken URIClient secret。您需要這些詳細資料才能建立授權資源。

將 ADK 代理註冊至 Gemini Enterprise

您可以透過Google Cloud 控制台或 REST API,將 ADK 代理註冊至 Gemini Enterprise。這樣一來,Gemini Enterprise 應用程式的使用者就能使用該代理。

控制台

如要使用 Google Cloud 控制台註冊 ADK 代理程式,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Gemini Enterprise」頁面。

    Gemini Enterprise

  2. 按一下要向代理程式註冊的應用程式名稱。

  3. 按一下「代理人」。系統隨即會顯示「代理程式」頁面。

  4. 按一下「新增代理」。系統會顯示「新增代理程式」面板。

  5. 點選「透過 Agent Runtime 建立的自訂代理」的「新增」。系統隨即會顯示「授權」頁面。

  6. 如要讓代理程式代表您存取 Google Cloud 資源,請為每個資源授權。如要為單一資源設定授權,請按照下列步驟操作:

    1. 按一下「新增授權」

    2. 輸入「授權名稱」的專屬值。系統會根據名稱產生 ID,且 ID 設定後即無法變更。

    3. 在下列欄位中,輸入您在「設定授權詳細資料 (選用)」中產生的值:

      1. 在「Client ID」(用戶端 ID) 欄位中輸入值。

      2. 在「Client secret」(用戶端密鑰) 欄位中輸入值。

      3. 在「權杖 URI」欄位中輸入值。

      4. 在「授權 URI」欄位中輸入值。使用 OAuth 憑證 JSON 檔案中的詳細資料,建構授權 URI。複製下列範本,並將預留位置替換為您的特定值。

        https://accounts.google.com/o/oauth2/v2/auth?client_id=YOUR_CLIENT_ID&redirect_uri=https%3A%2F%2Fvertexaisearch.cloud.google.com%2Fstatic%2Foauth%2Foauth.html&scope=YOUR_CUSTOM_SCOPES&include_granted_scopes=true&response_type=code&access_type=offline&prompt=consent
        
      5. 按一下 [完成]

  7. 點選「下一步」

  8. 如要設定代理程式,請按照下列步驟操作:

    1. 在「代理程式名稱」欄位中輸入名稱。這個值會顯示於 Gemini Enterprise 網頁應用程式,做為代理的顯示名稱。

    2. 在「描述您的代理」欄位中輸入說明。LLM 會依據這個值,判斷是否叫用代理來回覆使用者查詢。

    3. 輸入 Agent Runtime 資源路徑。資源路徑的格式如下:

       projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID
       

      如要進一步瞭解如何列出 Agent Runtime 上代管的代理程式,並取得資源路徑,請參閱「列出已部署的代理程式」。

    4. 點選「建立」

REST

如要使用 REST API 註冊 ADK 代理程式,請按照下列步驟操作:

將授權資源新增至 Gemini Enterprise (選用)

如果代理程式必須代表使用者存取 Google Cloud 資源,請執行下列指令,向 Gemini Enterprise 註冊您在「設定授權詳細資料 (選用)」一節中建立的授權資源:

curl -X POST \
   -H "Authorization: Bearer $(gcloud auth print-access-token)" \
   -H "Content-Type: application/json" \
   -H "X-Goog-User-Project: PROJECT_ID" \
   "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/LOCATION/authorizations?authorizationId=AUTH_ID" \
   -d '{
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/authorizations/AUTH_ID",
      "serverSideOauth2": {
         "clientId": "OAUTH_CLIENT_ID",
         "clientSecret": "OAUTH_CLIENT_SECRET",
         "authorizationUri": "OAUTH_AUTH_URI",
         "tokenUri": "OAUTH_TOKEN_URI"
      }
   }'

更改下列內容:

  • PROJECT_ID:專案的 ID。
  • PROJECT_NUMBER: Google Cloud 專案的編號。
  • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
    • us 適用於美國多區域
    • eu 代表歐盟多區域
    • global 適用於全域位置
    詳情請參閱「為資料儲存庫指定多區域」。
  • LOCATION:資料儲存庫的多區域:globaluseu
  • AUTH_ID:授權資源的 ID。這是您定義的任意英數字元 ID。註冊需要 OAuth 支援的代理時,您需要參考這個 ID。
  • OAUTH_CLIENT_ID:您在建立 OAuth 憑證時取得的 OAuth 2.0 用戶端 ID。
  • OAUTH_CLIENT_SECRET:建立 OAuth 憑證時取得的 OAuth 2.0 用戶端密鑰。
  • OAUTH_AUTH_URI:授權 URI。如要授權應用程式,請使用 OAuth 憑證 JSON 檔案中的詳細資料,建構特定的授權 URI。複製下列範本,並將預留位置替換為特定值。

    https://accounts.google.com/o/oauth2/v2/auth?client_id=OAUTH_CLIENT_ID&redirect_uri=https%3A%2F%2Fvertexaisearch.cloud.google.com%2Fstatic%2Foauth%2Foauth.html&scope=YOUR_CUSTOM_SCOPES&include_granted_scopes=true&response_type=code&access_type=offline&prompt=consent
    
    • YOUR_CUSTOM_SCOPES:您可以新增所需的範圍。舉例來說,下列 OAuth 範圍字串要求取得 Google 雲端硬碟和 Google 文件的唯讀存取權。

      scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdocuments.readonly
      
  • OAUTH_TOKEN_URI:建立 OAuth 憑證時取得的權杖 URI。

進一步瞭解授權 URI 參數。

為確保 URI 正常運作,請驗證下列欄位:

參數 值或動作
client_id client_id 替換為您下載的 JSON 檔案中找到的內容。
redirect_uri 請勿變更。必須為 https://vertexaisearch.cloud.google.com/static/oauth/oauth.html
scope

列出應用程式需要代表使用者存取的 Google API 範圍。舉例來說,如要授予 BigQuery 存取權,請使用 https://www.googleapis.com/auth/bigquery 範圍;如要授予 Google 文件唯讀存取權,請使用 https://www.googleapis.com/auth/documents.readonly

如果您使用多個範圍,請以空格分隔,網址中會顯示為 %20

include_granted_scopes 必須為 true
response_type 必須年滿 code 歲才能取得授權碼。
access_type 請設為 offline,確保您收到更新權杖。
prompt 設為 consent,確保系統一律會向使用者顯示同意畫面。

註冊 ADK 代理

這個程式碼範例說明如何註冊 ADK 代理程式。

   curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -H "X-Goog-User-Project: PROJECT_ID" \
      "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents" \
      -d '{
         "displayName": "DISPLAY_NAME",
         "description": "DESCRIPTION",
         "icon": {
            "uri": "ICON_URI"
         },
         "adkAgentDefinition": {
            "provisionedReasoningEngine": {
               "reasoningEngine": "projects/PROJECT_ID/locations/RESOURCE_LOCATION/reasoningEngines/RESOURCE_ID"
            }
         },
         "authorizationConfig": {
            "toolAuthorizations": [
               "projects/PROJECT_NUMBER/locations/global/authorizations/AUTH_ID"
            ]
         }
      }'

將變數替換為值:

  • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:

    • us 適用於美國多區域
    • eu 代表歐盟多區域
    • global 適用於全域位置
    詳情請參閱「為資料儲存庫指定多區域」。

  • PROJECT_ID:專案的 ID。 Google Cloud

  • PROJECT_NUMBER: Google Cloud 專案的編號。

  • APP_ID:Gemini Enterprise 應用程式的專屬 ID。

  • DESCRIPTION:代理程式的說明,會顯示在 Gemini Enterprise 中。

  • ICON_URI:要顯示在代理程式名稱附近的圖示公開 URI。或者,您也可以傳送 Base64 編碼的圖片檔案內容,在這種情況下,請使用 icon.content

    • RESOURCE_ID:ADK 代理部署所在的 Agent Runtime 端點 ID。如要進一步瞭解如何列出 Agent Runtime 上代管的代理程式並取得資源 ID,請參閱「列出已部署的代理程式」。

    • RESOURCE_LOCATION:Agent Runtime 端點的雲端位置。 詳情請參閱「Agent Runtime 位置」。

    • authorization_config:如果您已取得授權詳細資料,並希望代理程式代表使用者存取資源,請將 authorization_config 欄位新增至 JSON 資源。 Google Cloud

      • AUTH_ID:您在「設定授權詳細資料」部分中用於 AUTH_ID 的值。

與使用者共用代理

如要允許使用者透過 Gemini Enterprise 網頁應用程式存取代理,請參閱「共用代理」。

列出連結至應用程式的代理程式

下列程式碼範例說明如何取得連線至應用程式的所有代理程式詳細資料:

REST

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents"

將變數替換為值:

  • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
    • us 適用於美國多區域
    • eu 代表歐盟多區域
    • global 適用於全域位置
    詳情請參閱「為資料儲存庫指定多區域」。
  • PROJECT_ID:專案的 ID。 Google Cloud
  • LOCATION:應用程式的多區域:globaluseu
  • APP_ID:Gemini Enterprise 應用程式的 ID。

如果代理程式不是 Google 預先建構的,回應的前幾行會包含 name 欄位。這個欄位的值包含路徑結尾的代理程式 ID。舉例來說,在下列回應中,服務專員 ID 為 12345678901234567890

{
"name": "projects/123456/locations/global/collections/default_collection/engines/my-app/assistants/default_assistant/agents/12345678901234567890",
...
}

查看 ADK 代理的詳細資料

以下程式碼範例說明如何擷取已向 Gemini Enterprise 註冊的代理程式詳細資料:

REST

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents/AGENT_ID"

將變數替換為值:

  • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
    • us 適用於美國多區域
    • eu 代表歐盟多區域
    • global 適用於全域位置
    詳情請參閱「為資料儲存庫指定多區域」。
  • PROJECT_ID:專案的 ID。 Google Cloud
  • LOCATION:應用程式的多區域:globaluseu
  • APP_ID:Gemini Enterprise 應用程式的 ID。
  • AGENT_ID:代理程式的 ID。如要找出代理程式 ID,請列出連結至應用程式的代理程式

更新 ADK 代理

如要修改已向 Gemini Enterprise 註冊的現有代理程式詳細資料,可以使用 Google Cloud 控制台或 REST API。

控制台

如要使用 Google Cloud 控制台更新代理程式,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Gemini Enterprise」頁面。

    Gemini Enterprise

  2. 找出要更新代理程式的應用程式,然後按一下其名稱。

  3. 按一下「代理程式」

  4. 按一下要更新的 Agent Runtime 代理程式名稱,然後點選「編輯」

  5. 更新「顯示名稱」、「說明」或「Agent Runtime 推論引擎」

    資源路徑的格式如下:

    projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID
    

    如要進一步瞭解如何列出 Agent Runtime 上代管的代理程式並取得資源路徑,請參閱「列出已部署的代理程式」。

  6. 按一下 [儲存]

REST

您可以在代理商註冊期間更新所有欄位。不過,您必須更新下列欄位:

  • displayName
  • description
  • reasoningEngine

    這個程式碼範例示範如何更新現有 ADK 代理程式的註冊:

    curl -X PATCH \
       -H "Authorization: Bearer $(gcloud auth print-access-token)" \
       -H "Content-Type: application/json" \
       -H "X-Goog-User-Project: PROJECT_ID" \
       "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/AGENT_RESOURCE_NAME" \
       -d '{
             "displayName": "DISPLAY_NAME",
             "description": "DESCRIPTION",
             "adkAgentDefinition": {
             "provisionedReasoningEngine": {
                "reasoningEngine":
                "projects/PROJECT_ID/locations/RESOURCE_LOCATION/reasoningEngine
                s/RESOURCE_ID"
             },
          }
       }'
    

    將變數替換為值:

  • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:

    • us 適用於美國多區域
    • eu 代表歐盟多區域
    • global 適用於全域位置
    詳情請參閱「為資料儲存庫指定多區域」。

  • PROJECT_ID:專案的 ID。 Google Cloud

  • AGENT_RESOURCE_NAME:要更新的代理程式註冊資源名稱。

  • DISPLAY_NAME:必要。代理的易記名稱,會顯示在 Gemini Enterprise 中。

  • DESCRIPTION:必填。簡要說明代理程式的功能,這項資訊會顯示在 Gemini Enterprise 中。

  • RESOURCE_LOCATION:Agent Runtime 端點的雲端位置。 詳情請參閱「Agent Runtime 位置」。

  • RESOURCE_ID:ADK 代理部署所在的 Agent Runtime 端點 ID。如要進一步瞭解如何列出 Agent Runtime 上代管的代理程式並取得資源 ID,請參閱「列出已部署的代理程式」。

刪除 ADK 代理程式

下列程式碼範例示範如何刪除與應用程式連結的代理程式:

REST

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents/AGENT_ID"

將變數替換為值:

  • ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:
    • us 適用於美國多區域
    • eu 代表歐盟多區域
    • global 適用於全域位置
    詳情請參閱「為資料儲存庫指定多區域」。
  • PROJECT_ID:專案的 ID。 Google Cloud
  • LOCATION:應用程式的多區域:globaluseu
  • APP_ID:Gemini Enterprise 應用程式的 ID。
  • AGENT_ID:代理程式的 ID。如要找出代理程式 ID,請列出連結至應用程式的代理程式

Agent Runtime 位置

註冊或更新代理時,Agent Runtime 位置必須與 Gemini Enterprise 應用程式的位置相容。位置不符會導致錯誤。

相容性需求請參閱下表:

Gemini Enterprise 應用程式位置 允許的 Agent Runtime 位置
global 任何支援的 Google Cloud 區域
us us- 開頭的任何區域,例如 us-central1us-east4
eu europe- 開頭的任何區域,例如 europe-west1europe-west3