使用 Agent Development Kit 在 Vertex AI Agent Engine 上開發及部署代理

本頁說明如何使用 Agent Development Kit (ADK) 建立及部署代理,以便在 Vertex AI Agent Engine Runtime 中執行。本快速入門導覽課程會逐步引導您完成下列步驟:

  • 設定您的 Google Cloud 專案。

  • 安裝 Python 適用的 Vertex AI SDK 和 ADK。

  • 開發貨幣兌換代理程式。

  • 將代理部署至 Vertex AI Agent Engine 執行階段。

  • 測試已部署的代理程式。

您也可以使用下列 ADK 替代快速入門導覽課程:

  • ADK 快速入門:ADK 快速入門導覽課程完全在您的電腦上執行,並假設您使用本機 IDE 和終端機存取權。

  • Agent Starter Pack:一系列適用於 Vertex AI Agent Engine 的生成式 AI 代理範本,可直接用於正式環境。

如要使用 Agent Development Kit 以外的支援架構快速入門,請參閱「在 Vertex AI Agent Engine 上開發及部署代理」。

事前準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. 如要取得使用 Vertex AI Agent Engine 所需的權限,請要求管理員在專案中授予您下列 IAM 角色:

    如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

    您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

    安裝並初始化 Vertex AI SDK for Python

    1. 執行下列指令,安裝 Vertex AI SDK for Python 和其他必要套件:

      pip install --upgrade --quiet google-cloud-aiplatform[agent_engines,adk]>=1.112
    2. 以使用者身分進行驗證

      本機殼層

      執行下列指令:

      gcloud auth application-default login

      Colab

      請執行下列程式碼:

      from google.colab import auth
      
      auth.authenticate_user(project_id="PROJECT_ID")
      

      Cloud Shell

      您無需採取任何動作。

      快速模式

      如果您使用 Vertex AI 的快速模式,則無須採取任何行動。

    3. 執行下列程式碼,匯入 Vertex AI Agent Engine 並初始化 SDK:

      Google Cloud 專案

      import vertexai
      
      client = vertexai.Client(
          project="PROJECT_ID",               # Your project ID.
          location="LOCATION",                # Your cloud region.
      )
      

      其中:

      快速模式

      如果您在快捷模式下使用 Vertex AI,請執行下列程式碼:

      import vertexai
      from vertexai import agent_engines
      
      vertexai.init(
          key="API_KEY"
      )
      

      其中 API_KEY 是用來驗證代理程式的 API 金鑰。

    開發代理

    1. 為代理開發貨幣匯率工具:

      def get_exchange_rate(
          currency_from: str = "USD",
          currency_to: str = "EUR",
          currency_date: str = "latest",
      ):
          """Retrieves the exchange rate between two currencies on a specified date."""
          import requests
      
          response = requests.get(
              f"https://api.frankfurter.app/{currency_date}",
              params={"from": currency_from, "to": currency_to},
          )
          return response.json()
      
    2. 例項化代理程式:

      from google.adk.agents import Agent
      from vertexai import agent_engines
      
      agent = Agent(
          model="gemini-2.0-flash",
          name='currency_exchange_agent',
          tools=[get_exchange_rate],
      )
      
      app = agent_engines.AdkApp(agent=agent)
      
    3. 在本機測試代理:

      async for event in app.async_stream_query(
          user_id="USER_ID",
          message="What is the exchange rate from US dollars to SEK today?",
      ):
          print(event)
      

      其中 USER_ID 是使用者定義的 ID,字元上限為 128 個。

    部署代理程式

    在 Vertex AI 中建立 reasoningEngine 資源,部署代理:

    remote_agent = client.agent_engines.create(
        agent=app,
        config={
            "requirements": ["google-cloud-aiplatform[agent_engines,adk]"],
            "staging_bucket": "STAGING_BUCKET",
        }
    )
    

    其中 STAGING_BUCKET 是以 gs:// 為前置字元的 Cloud Storage bucket。

    使用代理

    傳送查詢內容,測試已部署的代理:

    async for event in remote_agent.async_stream_query(
        user_id="USER_ID",
        message="What is the exchange rate from US dollars to SEK today?",
    ):
        print(event)
    

    清除所用資源

    為了避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請按照下列步驟操作。

    remote_agent.delete(force=True)
    

    後續步驟