如是你正在指導一位全能演員上台表演,為了完美的表現出你期待的角色,你至少要給他三種提示:
- System Prompting(系統提示):就像導演給的「劇組最高公約與演出規範」。它決定了模型的底層總目標、安全邊界與交件格式(例如:「無論如何,你都必須講中文,且答案最後必須輸出成 JSON 格式」)。
- Role Prompting(角色提示):就像給演員的「角色人設與性格劇本」。它為模型賦予一個具體身份、語氣風格與專業視角(例如:「你是一位說話幽默、風格犀利的資深職涯顧問」)。
- Contextual Prompting(情境提示):就像當前場景的「背景道具與即時情報」。它提供與眼前這場戲直接相關的動態資訊,讓模型能精準貼合當前狀況(例如:「目前的諮詢者是一位工作 3 年、想轉職 AI 的軟體工程師」)。
🎯 核心重點
- 三者的核心目的與劃分:
- System Prompting:定義模型的基本能力與整體目標(The 'big picture')。常用於設定輸出結構(如 JSON)、規範安全條款等。
- Role Prompting:賦予模型特定角色身份(Character / Identity)。能為輸出注入專業領域視角(Focused expertise)、寫作風格與語氣(Tone & Style,如正式、幽默、啟發性等)。
- Contextual Prompting:提供即時、具體的任務背景資訊(Immediate & task-specific context)。能協助模型捕捉微妙差異並精準調整回答內容。
- 三者的相互重疊與組合(Framework for design):
- 在實際應用中,這三者常有重疊或組合使用(例如:在 System Prompt 中設定角色的同時,一併要求 JSON 輸出格式)。區分三者有助於建立結構清晰、意圖明確的提示詞架構。
- System Prompt 要求 JSON 輸出的隱藏優勢:
- 在 System Prompt 中要求以 JSON 等結構化格式輸出,不僅方便後端程式解析,更能強制模型遵循結構,從而有效降低「幻覺(Hallucinations)」。
💡 實際例子(打造 AI 職涯顧問)
假設我們要開發一個輔助求職者的 AI 系統,我們可以將提示詞拆解為三個層次:
【System Prompt(系統規範)】
你是一個專業的求職諮詢系統。請分析使用者的狀況並提供建議。
輸出必須符合以下 JSON 格式:
{
"summary": "一句話評估",
"suggestions": ["建議1", "建議2", "建議3"]
}
【Role Prompt(角色人設)】
請扮演一位擁有 15 年矽谷招募經驗、說話直接、語氣專業且具鼓勵性的資深 HR 總監。
【Contextual Prompt(當前情境)】
背景情境:使用者目前擔任前端工程師 3 年,希望在半年內轉職為 AI 應用工程師,但缺乏大型語言模型(LLM)專案經驗。
- 模型輸出:
{ "summary": "前端經驗是你的優勢,但缺乏 LLM 實務專案是目前的關鍵短板。", "suggestions": [ "利用現有前端技能,結合 Gemini API 開發一個具備 UI 的小型 AI 工具專案。", "深入學習 Prompt Engineering 與 RAG(檢索增強生成)的基礎架構。", "在 Resume 中突出展示與 AI API 對接的實作經驗,而非僅強調純前端開發。" ] }
❌ 常見錯誤
- 把所有需求混在一起成一大段亂麻:沒有區分「系統硬性規則」、「角色語氣」與「背景情境」,導致模型混淆何者是必須嚴格遵守的格式指令,何者只是背景參考。
- 角色設定過於空泛:僅寫「你是一個專家」,而未指定具體的語氣風格(如 Direct, Humorous, Persuasive 等)或專業視角,無法發揮 Role Prompting 提升回答質量與特化的效益。
- 以為角色設定能替代背景資訊:以為賦予模型「科技顧問」的角色後,它就會自動通曉使用者的特定背景,而忽略了提供動態的 Contextual Prompt。
📖 來源依據
單元內容依據《Prompt Engineering》教材:
- System, Contextual 與 Role Prompting 概述與差異:第 18–19 頁
- System Prompting 定義、範例與 JSON 優勢:第 19–21 頁
- Role Prompting 範例與語氣風格清單:第 21–23 頁
- Contextual Prompting 定義與範例:第 23–25 頁
- JSON 結構化輸出降低幻覺:第 21 頁、第 60 頁
📝 3 題理解測驗
第 1 題(單選題) 關於 System Prompting、Role Prompting 與 Contextual Prompting 的主要功能劃分,下列何者描述最為正確? (A) System Prompting 用於設定角色語氣,Role Prompting 用於提供動態對話背景,Contextual Prompting 用於規定輸出格式。 (B) System Prompting 定義模型的總體目的與系統規範,Role Prompting 設定身份語氣與專業風格,Contextual Prompting 提供當前任務的特定背景。 (C) 三者完全相同,只是不同 AI 廠商對提示詞的叫法不同。 (D) Contextual Prompting 是三者中最不重要的,因為模型會自動抓取使用者所有的背景資訊。
第 2 題(單選題) 根據教材,在 System Prompt 中要求模型將抽取的資料以 JSON 格式 回傳,除了方便程式解析之外,還有什麼關鍵的工程效益? (A) 可以自動將模型 Temperature 降為 0。 (B) 能強制模型建立輸出結構,從而有效減少「幻覺(Hallucinations)」。 (C) 可以讓模型的回答速度提升 10 倍。 (D) 可以不必設定 Token 長度限制。
第 3 題(應用簡答題) 假設你要設計一個「幫國小生批改英文作文」的 AI 系統。 請分別寫出這個系統的:
- System Prompt(至少包含一項格式或系統規則)
- Role Prompt(設定身份與語氣風格)
- Contextual Prompt(當前批改任務的背景)
測驗答案:(參考)
第1題:B。System Prompting 定義模型的總體目的與系統規範,Role Prompting 設定身份語氣與專業風格,Contextual Prompting 提供當前任務的特定背景。
第2題:B 。在 System Prompt 中要求以 JSON 等結構化格式輸出,不僅方便後端程式解析,更能強制模型遵循結構,從而有效降低「幻覺(Hallucinations)」。
第3題:
System Prompt(至少包含一項格式或系統規則):你是一個專業的英文作文批改系統,要批改英文作文,並且打出0~100之間的分數作為成績,也要給出改進建議。輸出格式必須符合下列的CSV或Markdown檔案格式:
學生姓名、班級、學號、成績、建議
Role Prompt(設定身份與語氣風格):你是一位任教超過十年資歷的英文課程老師。
Contextual Prompt(當前批改任務的背景):國中二年級學生的平時測驗。
註:
這「學習系列」的文章,是記錄自己與AI一起探索知識的過程,也是我將AI做為私人家教的一項試驗。對於如何藉由Ai輔助自我學習,請參考這篇:
https://blog.udn.com/tku_89056/192561353
https://goldenbird-willy.blogspot.com/2026/09/gemini-notebook-ai.html
學習教材:《Prompt Engineering》
本書探討了提示工程的核心概念、多種進階技巧、以及最佳實務(use cases)。內容涵蓋如何設定大型語言模型的輸出長度與取樣參數,並且介紹零樣本、少樣本、角色扮演、思維鏈、以及如何結合外部工具的推理與行動等實用策略。此外,本書也示範了如何利用人工智慧來編寫、解釋、翻譯和除錯程式碼。最後,本書提供了多項專業的建議,例如簡化提示設計、優先使用正面指令、利用如JSON的結構化格式、以及落實詳盡的版本記錄與迭代。
本書作者Lee Boonstra是一名人工智慧軟體工程師、技術主管和系統架構師,在谷歌全球首席技術官辦公室(OCTO)、應用創新工廠等擁有10年以上的資歷。
免費下載:https://www.kaggle.com/whitepaper-prompt-engineering
留言
發佈留言