使用 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 上開發及部署代理」。
事前準備
- 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. -
Vertex AI 使用者 (
roles/aiplatform.user) - 儲存空間管理員 (
roles/storage.admin) 執行下列指令,安裝 Vertex AI SDK for Python 和其他必要套件:
pip install --upgrade --quiet google-cloud-aiplatform[agent_engines,adk]>=1.112以使用者身分進行驗證
本機殼層
執行下列指令:
gcloud auth application-default loginColab
請執行下列程式碼:
from google.colab import auth auth.authenticate_user(project_id="PROJECT_ID")Cloud Shell
您無需採取任何動作。
快速模式
如果您使用 Vertex AI 的快速模式,則無須採取任何行動。
執行下列程式碼,匯入 Vertex AI Agent Engine 並初始化 SDK:
為代理開發貨幣匯率工具:
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()例項化代理程式:
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)在本機測試代理:
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 Agent Engine 所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
安裝並初始化 Vertex AI SDK for Python
開發代理
部署代理程式
在 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)