在前幾天的練習裡,我們已經成功建立了簡單的 Root_Agent
,並透過 Google ADK 讓它們能互相協作。
不過你可能會發現一個現象:明明程式碼幾乎一樣,Agent 的表現卻差很多?
其實,關鍵就在於 —— Prompt。
今天我們就來聊聊什麼是 Prompt,以及它在 Agent 裡的重要角色。
簡單來說,Prompt = 提示 / 指令 / 問題。
它就是你輸入給 AI 的「文字說明」,用來告訴 AI:
換句話說,Prompt 就是 AI 的任務說明書。
舉個例子:
你是一個友善的客服,請用簡單的語氣回答使用者的問題。
這樣的一段文字,就可以算是一個 Prompt。
要寫出一個好的 Prompt,可以從三個角度來思考:
假設我想讓 AI 當英文老師:
幫我學英文
太模糊,AI 根本不知道從哪裡開始。你是一位英文老師,請解釋 "break a leg" 的意思,並舉三個生活化例句。
這就很具體,AI 會用老師的口吻解釋片語,還會提供例子。差別很明顯:清楚的 Prompt 才能得到更有條理、更符合期待的輸出。
在 Google ADK 的設計裡,每個 Agent 通常會有:
name
:名稱,用來識別description
:描述,讓人知道它的用途instruction
:這就是 Prompt其中,真正決定 Agent 行為邏輯 的,其實就是 instruction
(Prompt)。
如果 Prompt 沒設計好,Agent 可能會出現「答非所問」、甚至亂發揮的狀況。
所以可以把 Prompt 想像成 Agent 的操作手冊 —— 它直接影響結果的品質與穩定度。
在一個 LLM Agent 系統中,Prompt 就像是 行為設定檔。常見的用法有:
角色設定(Role Setting)
你是一個精確的數學助教,專門負責解題。
→ 讓模型用特定身份回覆。
任務說明(Task Instruction)
當使用者輸入一個算式,請回傳計算結果,並附上簡短解釋。
→ 清楚定義它要做的事。
格式規範(Output Format)
請回傳 JSON 格式:
{
"status": "success",
"result": "..."
}
→ 輸出一致,方便程式解析。
限制範圍(Boundary Setting)
如果問題與數學無關,請回覆「這不在我的範圍內」。
→ 避免模型胡亂回答。
Prompt 太模糊 → 輸出不穩定
例如只寫「請幫我查天氣」,AI 可能會亂講或缺少細節。
Prompt 清晰明確 → 輸出一致
你是一個天氣助手。
請根據輸入的地點與日期,輸出以下格式:
- 地點
- 日期
- 天氣描述
- 溫度
Prompt 有明確邊界 → 減少錯誤
例如指定「如果資訊不足就回覆請求補充」,能避免模型亂編。
在實務上,設計一個好的 Agent,往往不是一次就能完成,而是需要 不斷測試與微調 Prompt。這樣才能讓 Agent 的行為真正符合我們的需求。