M05.13|Prompt Engineering 進階:CoT、ToT 與結構化提示設計
不是問 AI 更多話,而是教 AI 怎麼想
本講學習重點
Prompt 策略層次: 1. Zero-shot:直接問問題,不給範例(適合簡單任務) 2. Few-shot:給 2-5 個範例再問問題(適合格式化任務) 3. CoT(Chain-of-Thought):要求 AI 逐步推理(適合複雜邏輯) 4. ToT(Tree-of-Thought):探索多條推理路徑再選最佳(適合開放式問題) Chain-of-Thought (CoT): - 核心概念:讓 AI「寫出計算過程」而不是「直接給答案」 - 觸發方式:加上「Let's think step by step」或明確要求分步驟 - 效果:在 GSM8K 數學題上,CoT 讓 GPT-3 的準確率從 18% 提升到 57% - 原理:逐步推理讓模型在每一步都能利用前一步的結果,減少跳步錯誤 - 限制:對簡單任務反而降低效率(多餘的推理步驟浪費 token 和時間) Tree-of-Thought (ToT): - 核心概念:同時探索多條推理路徑,評估每條路徑,選擇最佳 - 比喻:下棋時想三步棋的每種可能,而不是只走一條線 - 適用:需要創意、有多種可能方案、需要比較取捨的任務 - 成本:比 CoT 消耗更多 token(因為要探索多條路徑) 結構化輸出設計: - JSON mode:要求 AI 以 JSON 格式輸出,方便程式解析 - XML tags:用標籤區隔不同部分的輸出 - System Prompt 框架:角色設定 + 任務描述 + 輸出格式 + 約束條件 - 重要性:程式化處理 AI 輸出時,結構化是必須的 Prompt 的邊際效應遞減: - Prompt 優化能提升 10-30% 的效果,但有上限 - 超過某個點後,更長更精細的 Prompt 不會帶來顯著改善 - 此時應該考慮:RAG(給 AI 更多知識)或 Fine-tuning(改變 AI 的能力) Context Engineering(上下文工程): - 不只是寫 Prompt,而是管理整個輸入上下文 - 包括:System Prompt + 對話歷史 + RAG 檢索結果 + 工具回傳 + 使用者資料 - 2025-2026 年的趨勢:從 Prompt Engineering 進化為 Context Engineering
🎙️ Podcast(中文)
一句話搞懂
Prompt Engineering 的精髓不是「問更多話」,而是「設計 AI 的思考方式」——Chain-of-Thought 讓 AI 一步步想、Tree-of-Thought 讓 AI 多條路比較、結構化提示讓 AI 的輸出可以被程式直接使用。
白話解說
複習:Zero-shot 和 Few-shot
在進入進階技巧之前,先複習兩個最基礎的 Prompt 策略。
Zero-shot(零範例提示):直接問問題,不給任何範例。比如「請把以下英文翻譯成中文:Hello world」。你信任 AI 已經從訓練中學會了怎麼做翻譯,所以不需要額外示範。Zero-shot 適合 AI 已經擅長的常見任務——翻譯、摘要、分類、問答。
Few-shot(少量範例提示):在問問題之前,先給 2-5 個「輸入→輸出」的範例。比如你想讓 AI 把客戶評論分成「正面/負面/中性」,你先給幾個已經標記好的範例,然後再給它新的評論讓它分類。Few-shot 的威力在於:透過範例,你不需要用文字解釋規則,AI 自己會從範例中推斷出你的意圖和格式要求。
Few-shot 特別適合兩種場景:(1) 你要的輸出格式很特殊,用文字描述很麻煩,給範例更直覺;(2) 任務有微妙的判斷標準,用範例比用規則更容易傳達。
Chain-of-Thought:讓 AI 「寫出計算過程」
2022 年,Google 的 Jason Wei 等人發表了一篇極具影響力的論文,發現了一個簡單但強大的技巧:在 Prompt 中加上「Let’s think step by step(讓我們一步步想)」,或者在 Few-shot 範例中示範推理過程,AI 在複雜推理任務上的表現會大幅提升。
用考試來比喻:如果你是數學老師,你問學生「35 × 27 等於多少?」,有兩種出題方式。第一種是選擇題——學生直接選答案,可能碰運氣。第二種是計算題——學生必須寫出計算過程(35 × 27 = 35 × 20 + 35 × 7 = 700 + 245 = 945),這時候學生被迫正確地執行每一步計算。
CoT 做的就是同樣的事——強迫 AI「寫出計算過程」。沒有 CoT 時,AI 嘗試一步到位直接跳到答案,中間可能跳過關鍵步驟而出錯。有了 CoT,AI 被要求逐步推理,每一步的結果成為下一步的輸入,大幅減少了跳步出錯的機會。
實際效果有多驚人?在 GSM8K(小學數學題)測試中,GPT-3 直接回答的準確率只有 18%,加上 CoT 後飆升到 57%。在多步推理、邏輯判斷、因果分析等需要「想清楚」的任務上,CoT 通常能帶來 20-40% 的準確率提升。
CoT 的實際使用方式:
最簡單的方式是在問題後面加上「請一步步思考」。更精確的做法是給出推理結構:「首先分析問題的條件,然後列出可能的方法,接著選擇最適合的方法,最後給出答案。」
在 Few-shot 中使用 CoT 更有效——不只給「輸入→答案」的範例,而是給「輸入→推理過程→答案」的範例。AI 會學到你的推理風格,在處理新問題時也用同樣的方式逐步思考。
CoT 的重要限制:CoT 不是萬能的。對於簡單任務(如單詞翻譯、簡單分類),加上 CoT 反而浪費 token、增加延遲,效果不會更好甚至可能更差(因為多餘的推理步驟引入了不必要的複雜度)。CoT 的價值在於「思考過程有助於得到正確答案」的任務——如果任務本身不需要多步推理,CoT 就是多此一舉。
Tree-of-Thought:多路徑探索
CoT 是「一條線想下去」——一步接一步,線性推理。但有些問題需要「想多條路」——考慮多個可能方案,比較優劣,然後選最好的。這就是 Tree-of-Thought(ToT)。
比喻:CoT 像是走迷宮時只走一條路,碰到死路就卡住。ToT 像是在每個岔路口都派出分身,同時探索多條路線,哪條路先到出口就選哪條。更準確地說,ToT 像下棋——好的棋手不會只想一步,而是想「如果我走這裡,對手會走哪裡,然後我又該走哪裡」,同時評估多條路線的勝率。
ToT 的實際運作:AI 在每個思考步驟產生多個候選想法(比如 3 個),然後對每個想法評估「這個方向有多大可能通往正確答案」,砍掉明顯不好的方向,對有希望的方向繼續深入展開。這個過程產生一棵「思考樹」——從根節點(原始問題)到葉節點(最終答案),中間有多條路徑。
ToT 適合什麼任務? 需要創意和多方案比較的任務特別受益:寫作(嘗試多種開頭,選最好的)、程式設計(嘗試多種演算法,選最適合的)、策略規劃(嘗試多種方案,評估各自的利弊)、解謎(嘗試多個切入點,看哪個能突破)。
ToT 的成本:因為要探索多條路徑,ToT 消耗的 token 是 CoT 的數倍。在即時對話場景中(延遲敏感),ToT 通常太慢。它更適合離線的批量任務,或是願意等待更好結果的場景。
結構化輸出設計:讓程式能讀懂 AI
當 AI 的輸出需要被程式自動處理時(而不是給人類閱讀),結構化輸出設計就至關重要。
JSON Mode:要求 AI 以 JSON 格式輸出。比如你要 AI 分析一篇文章的情感,與其讓它回「這篇文章的情感是正面的,信心度很高」,不如要求它回 {"sentiment": "positive", "confidence": 0.92, "keywords": ["創新", "成長"]}。程式可以直接解析這個 JSON,不需要用正則表達式從自然語言中提取資訊。
大多數主流 LLM API(OpenAI、Anthropic、Google)都已支援 JSON Mode,能在 API 層面保證輸出是合法的 JSON,不只是在 Prompt 中「拜託」AI 用 JSON。
XML Tags:用 XML 標籤區隔輸出的不同部分。比如:
<summary>文章摘要在這裡</summary>
<keywords>關鍵字1, 關鍵字2</keywords>
<sentiment>positive</sentiment>
這比純文字更容易用程式解析,也讓 AI 更清楚每個部分的邊界。
System Prompt 框架:一個設計良好的 System Prompt 通常包含四個部分——角色設定(你是一個XX專家)、任務描述(你的任務是XX)、輸出格式(請以XX格式回答)、約束條件(不要做XX,如果不確定就說不知道)。這四個元素的組合,能讓 AI 的行為更加可預測和穩定。
Prompt 的邊際效應遞減
一個很多人不願意接受的事實是:Prompt 優化有上限。
在一般經驗中,從「隨便寫一句話」到「精心設計的 Prompt」,效果可能提升 10-30%。但從「好的 Prompt」到「非常精細的 Prompt」,提升可能只有 2-5%。再繼續優化,邊際效益趨近於零——你多加的每一句描述和限制,幾乎不會再改善結果。
這是因為 Prompt 本質上是在模型已有能力的範圍內「引導」輸出方向。如果模型本身對某個領域的知識不夠深、或推理能力有限,再好的 Prompt 也突破不了這個天花板。
當 Prompt 遇到瓶頸時,有兩個升級方向:
第一是 RAG(檢索增強生成)——不改變 AI 的能力,但給它更多相關知識。如果 AI 回答品質差是因為「它不知道」,RAG 是最直接的解法。
第二是 Fine-tuning(微調)——改變 AI 本身的能力和偏好。如果 AI 回答品質差是因為「它不擅長這類任務」或「它的風格不對」,Fine-tuning 是更根本的解法。
Prompt Engineering → RAG → Fine-tuning,這是一個成本遞增、效果也遞增的升級路徑。大多數應用場景在 Prompt + RAG 就能解決,真正需要 Fine-tuning 的情境比想像中少。
Context Engineering:比 Prompt 更大的畫面
2025 年開始,業界越來越多人用「Context Engineering(上下文工程)」取代「Prompt Engineering」這個說法,因為 Prompt 只是 AI 輸入的一小部分。
一個完整的 AI 輸入上下文包括:System Prompt(角色和行為規範)、對話歷史(之前的互動紀錄)、RAG 檢索結果(從知識庫中找到的相關文件片段)、工具回傳結果(Agent 呼叫工具後拿到的數據)、使用者資料(使用者的偏好、歷史行為)。
Context Engineering 的核心是:如何在有限的上下文視窗(context window)中,放入最相關、最有用的資訊,讓 AI 做出最好的回答。這涉及到資訊的選擇(該放什麼進去)、排序(什麼放前面、什麼放後面)、壓縮(如何在有限空間內傳達最多資訊)、以及動態調整(根據任務性質改變上下文的組成)。
這是一個比「寫好 Prompt」大得多的系統工程問題,也是 2026 年 AI 應用開發中最受重視的技能之一。
應用場景
| 技術 | 最佳適用場景 | 不適合的場景 | 典型效果提升 |
|---|---|---|---|
| Zero-shot | 簡單翻譯、摘要、分類 | 複雜推理、特殊格式 | 基準線 |
| Few-shot | 格式化輸出、微妙判斷 | 需要深度推理的任務 | +5-15% |
| CoT | 數學、邏輯推理、多步驟分析 | 簡單任務(反而變慢) | +20-40% |
| ToT | 創意寫作、方案比較、策略規劃 | 即時對話(太慢) | +10-25%(品質) |
| JSON Mode | API 整合、資料處理 pipeline | 純人類閱讀的場景 | 程式解析成功率 99%+ |
| Context Engineering | 複雜 Agent 系統、企業 AI 平台 | 簡單的一問一答 | 系統層面的全面提升 |
常見誤區
誤區一:CoT 對所有任務都有效
CoT 的核心價值是「讓推理過程顯式化」,但前提是任務本身需要多步推理。對於簡單的事實查詢(「日本的首都是哪裡?」)、直接的分類任務(「這封 Email 是垃圾郵件嗎?」)、或格式轉換任務(「把這段文字翻成英文」),加上 CoT 只會讓 AI 多輸出一堆不必要的推理文字,增加延遲和成本,效果不會更好。一個有經驗的 Prompt Engineer 知道什麼時候用 CoT、什麼時候不用,而不是一律加上「請一步步思考」。
誤區二:Prompt 越長越好
更長的 Prompt 意味著更多的指令和約束,但也意味著更多的潛在矛盾和混淆。當 Prompt 超過一定長度,AI 可能會「注意力分散」——遺漏中間的某些指令,或者在矛盾的指令之間做出不一致的選擇。好的 Prompt 是精煉的:清楚、具體、無歧義,但不冗長。如果你發現 Prompt 越寫越長但效果沒有改善,通常代表你需要的是 RAG 或 Fine-tuning,而不是更長的 Prompt。
誤區三:Prompt 能突破模型能力邊界
Prompt 能做的是在模型已有能力範圍內「引導最佳表現」,但不能讓模型做它本身做不到的事。如果一個小型模型(如 7B 參數)在高等數學上的能力本身就很有限,再怎麼精心設計 Prompt 也不可能讓它解出偏微分方程。Prompt 是「調整方向盤」,不是「升級引擎」。當 Prompt 優化觸頂時,換一個更強的模型或用 RAG 補充知識,通常比繼續打磨 Prompt 更有效。
小練習
練習一:選擇 Prompt 策略
以下五個任務,請為每個選擇最適合的 Prompt 策略(Zero-shot / Few-shot / CoT / ToT),並簡述理由:
- (A) 把一篇 500 字的中文新聞翻譯成英文
- (B) 判斷一個數學應用題的答案是否正確,需要驗算過程
- (C) 為一個新產品想出三個不同的行銷口號,並選出最好的一個
- (D) 從 100 筆客戶回饋中,把每筆分類為「產品問題 / 服務問題 / 價格問題 / 正面回饋 / 其他」
- (E) 分析一個商業決策的利弊,並給出建議
點擊查看參考答案
練習一:Prompt 策略選擇
- **(A) Zero-shot**:翻譯是 LLM 的核心能力,不需要範例或推理過程。直接翻即可。 - **(B) CoT**:驗算數學題需要「逐步重算每個步驟」,是典型的多步推理任務。Prompt 應要求 AI「請重新計算每一步,檢查是否有錯誤」。 - **(C) ToT**:需要先發散(想出多個創意方案),再收斂(比較選出最佳),正是 ToT 的最佳場景。讓 AI 先各自想 3 個口號,再從不同維度評估,選出最佳。 - **(D) Few-shot**:分類任務有明確的類別,給 3-5 個標記好的範例讓 AI 理解每個類別的判斷標準,比用文字定義更有效。搭配 JSON 輸出格式便於批量處理。 - **(E) CoT**:利弊分析是「先列出正面因素 → 再列出負面因素 → 權衡比較 → 得出結論」的多步推理任務。CoT 讓這個過程更結構化。如果方案不只一個,可以考慮 ToT。練習二:改善 Prompt
以下是一個效果不好的 Prompt,請指出問題並改寫:
原始 Prompt:「你是一個很厲害的 AI 助手,請幫我分析這個數據,給我一些有用的結論,要詳細一點但也不要太長,用中文回答。」