02|什麼是 Prompt?跟 AI 對話的「設計」

💬 一句話:Prompt 就是你給 AI 的「指令 + 背景 + 資料」——同一個模型,不同 prompt 寫法,輸出品質可以差 10 倍。
一、Prompt 是什麼
Prompt = 你送進 AI 的所有訊息。 Prompting = 設計這份訊息的工藝。 Prompt Engineering = 把「會用 AI」變成可重複的工程實踐。
Prompt 不是聊天,是規格書——你告訴 AI:
- 你是誰(角色 / persona)
- 我要你做什麼(任務 / task)
- 用什麼資料(context)
- 怎麼產出(output format)
- 不能做什麼(rules / red lines)
二、三類訊息:System / User / Assistant
大多數 LLM API 把對話拆三類角色:
| 角色 | 用途 | 例子 |
|---|---|---|
| System | 框架性指令、persona、規則 | 「你是法規研究助理,回答時引用條文編號」 |
| User | 使用者實際提問 | 「金管會最新 ESG 揭露要求?」 |
| Assistant | AI 先前的回應(歷史) | (AI 之前說過的話) |
System prompt 通常是最持久的——一次設定,整個對話都套用;User / Assistant 則是對話歷史。
三、好 Prompt 的 7 段骨架
<role>
你是 [具體角色 + 經驗深度]。
</role>
<context>
[產品、客群、現況、限制]
</context>
<task>
你的工作是 [動詞 + 具體交付物 + 標準]。
</task>
<rules>
- [硬規則 1]
- [絕對不能做的事]
</rules>
<examples>
<example>
Input: ...
Output: ...
</example>
</examples>
<output_format>
[JSON schema / Markdown 模板 / 純文字]
</output_format>
<critical>
[最不能違反的紅線——放結尾]
</critical>
💡 Claude 偏好 XML tags,GPT-4o 偏好 Markdown headers,多模型部署用 XML 安全。
四、6 條核心原則
| 原則 | ❌ 反例 | ✅ 正例 |
|---|---|---|
| 具體勝抽象 | 「回覆要專業」 | 「200 字內、無 emoji、結尾有 next step」 |
| Show > Tell | 用 100 字描述格式 | 給 2-3 個 <example> |
| 正面 > 負面 | 「不要太冗長」 | 「用 3 個 bullets,每點 ≤ 15 字」 |
| 關鍵指令放結尾 | 紅線藏中間 | <critical> 放最後(recency bias) |
| Delimiters 切段 | 指令跟使用者輸入混 | <user_query>...</user_query> |
| 指定輸出格式 | 自由發揮 | JSON schema 或填空模板 |
五、Before / After 實例
❌ Before
你是專業助理,幫客戶解答問題。不要說錯話,不要承諾退款。
問題:role 模糊、規則抽象、沒範例、沒格式、用負面指令。
✅ After
<role>
你是 B2B SaaS 客戶成功專員,3 年金融科技經驗。
</role>
<context>
我們販售 AI 顧問服務,客戶多為 100-1000 人企業 CIO/CTO。
</context>
<task>
針對客戶 inbound 詢問,產出回覆草稿。每則必須:
- 確認需求
- 提出下一步
- 邀請 30 分鐘 discovery call
</task>
<rules>
- 用正體中文,敬語但不過度
- 限 150 字內
- 提到價格用「依範圍評估」,不直接報價
</rules>
<examples>
<example>
Input: 「你們做 AI 顧問費用多少?」
Output: 「謝謝您的詢問。每個專案複雜度差異大,會依範圍評估。想邀請您 30 分鐘 discovery call,週三或週四上午方便嗎?」
</example>
</examples>
<critical>
絕對不報具體價格數字。
</critical>
六、進階技巧
🔹 Prompt Caching(成本殺手鐧)
Anthropic / OpenAI 都支援把長且不變的 System Prompt 快取——下次呼叫費率降至 10%。長 prompt 應用裡,這條一加可省 60-90% 成本。
🔹 Modular Prompt
把 prompt 拆模組存檔(persona.md + rules.md + examples.md),組合時拼接,方便版控、A/B 測試、多 agent 共用。
🔹 Eval-Driven Iteration
不要憑感覺改 prompt。準備 10-20 個 test case,每次改完跑一輪,看 pass rate 變化。沒有 eval,改 prompt 就是矇眼開車。
七、常見誤解
| ❌ 誤解 | ✅ 正解 |
|---|---|
| 「拜託 AI」會更聽話 | 不會。直接動詞、結構清楚比較有效 |
| 用「請」「謝謝」浪費 token | 不會浪費,但對結果幫助也接近 0 |
| Prompt 一勞永逸 | 不會。模型升級、需求變化都要 re-tune |
| Prompt 改愈長愈好 | 不會。長 prompt 反而稀釋關鍵指令 |
| 「假裝你是 X」 | 不要用 pretend,直接 You are X |