iT邦幫忙

2026 iThome 鐵人賽

DAY 7
0
Build on Google AI

ADK × A2A × Cloud Run 打造可部署、可互通的 Agent 系統系列 第 7 篇

Day 7:第一個 agent(中)`instruction` 與換模型的成本

  • 分享至 

  • xImage
  •  

Day 6 把 agent.py 那段定義拆完,剩下兩個參數還沒講:instruction 跟 model。這兩個看起來都是最好懂的欄位,一個是給模型的一段話,一個是選哪支模型。但 instruction 只是一個字串這件事,決定的東西比表面上多;換模型這件事的成本,也不只是改一行程式碼那麼簡單。

instruction 是字串

模板寫的是一句話:

You are a helpful AI assistant designed to provide accurate and useful information.

這句話在 A2A 的 card 裡會出現,但位置不是你以為的地方。它跑到 skills[0] 去了,而 card 本身的 description 是另一個硬寫的值。這件事影響路由,我留到 Day 9 用實際的 card JSON 講。

別的框架換了個名字做同一件事

instruction 只是一個字串,但它決定整個 agent 的人格跟行為,這件事不是 ADK 特有的設計。我另外整理 CrewAI 的筆記時,看到的是同一個概念換了個名字:CrewAI 的 backstory 表面上像是幫 agent 寫的小說背景設定,實際上是直接塞進 system prompt 的內容。範例是這樣:

backstory="你的讀者看不懂術語,所以你寫得很白。"

這句話會真的改變輸出的文風,換成「你為學術期刊寫作,用詞精確嚴謹」,同一個任務會吐出完全不同的東西。CrewAI 那邊把 backstory 當成最主要的調校旋鈕,覺得輸出不對,先改這欄,不是先改程式邏輯,這跟這裡 instruction 字串直接決定行為,是同一個道理,只是換了個看起來比較有故事感的名字。

CrewAI 另外還有一個 expected_output 欄位,管的是模型怎麼判斷「我做完了嗎」。寫得模糊,像 expected_output="一些趨勢",模型可能吐兩個也可能吐十五個;寫得清楚,像 expected_output="剛好三個趨勢,每個一句話說明,條列格式",輸出的格式就穩定很多。backstory 跟 expected_output 是 CrewAI 的 API 名稱,ADK 這邊目前只有 instruction 一個字串欄位,沒有另外切一個管輸出格式的參數。這代表寫 instruction 的時候,語氣跟格式這兩件事得自己在腦子裡分清楚,再一起塞進同一個字串。

模型憑證有兩條路

.env.example 給了選擇:

# Vertex AI Configuration (default)
GOOGLE_GENAI_USE_VERTEXAI=true
GOOGLE_CLOUD_PROJECT=your-gcp-project-id
GOOGLE_CLOUD_LOCATION=global

# Alternatively, for Gemini API via Google AI Studio,
# comment out the three lines above and uncomment:
# GEMINI_API_KEY=your-api-key-here

預設走 Vertex AI,計費落在 GCP 專案,權限走 IAM。另一條是 AI Studio 的 API key,設定簡單但走的是不同的帳務與配額體系。

要部署到 Agent Runtime 或 Cloud Run 的話走 Vertex 這條比較順,因為服務帳號的權限模型是一致的。

GOOGLE_CLOUD_LOCATION=global 這個值後面有個陷阱。app/app_utils/a2a.py 裡有一段註解專門警告不要拿它去組 endpoint,因為會拼出無效的主機名。那是 Day 9 提過的 card url 問題,這裡先記著。

明天

看 tools=[get_weather, get_current_time] 這兩個函式。它們就是普通 Python function,沒有裝飾器,而它們的 docstring 會被原文搬到 A2A 的 card 上。模板自己就示範了一個反例。


上一篇
Day 6:第一個 agent(上)定義與 `App` 結構
下一篇
Day 8:第一個 agent(下)tool 的 docstring 就是對外描述
系列文
ADK × A2A × Cloud Run 打造可部署、可互通的 Agent 系統 共 16 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言