A
返回 AI 知識
AI 知識2026/05/10 君澤智庫研究員 Bryan Chan6 分鐘閱讀

Prompt Engineering 系統化方法論:從 Few-shot 到 ReAct

Prompt Engineering 的完整方法論:Few-shot、Chain-of-Thought、Tree-of-Thought、ReAct、Self-Consistency 等技術的原理與實戰。

Prompt Engineering 為什麼重要?

同樣的 LLM,不同的 Prompt,效果天差地別。Prompt Engineering 不是「寫幾句提示詞」,而是一套系統化的方法論


基礎層:Zero-shot vs Few-shot

Zero-shot

不給示例,直接提問:

將以下句子翻譯成英文:「今天天氣真好」

Few-shot(2-3 個示例)

英文 → 中文:
Hello → 你好
Goodbye → 再見
Thank you → 謝謝
How are you? →

何時用 Few-shot:任務格式複雜、輸出有特定結構要求時。


推理層:Chain-of-Thought (CoT)

讓 LLM 先思考,再回答

標準 CoT

問題:一個農場有 15 隻雞和 8 隻牛,每隻雞有 2 條腿,每隻牛有 4 條腿。請計算總共有多少條腿。

讓我們一步一步思考:
1. 雞的腿:15 × 2 = 30 條
2. 牛的腿:8 × 4 = 32 條
3. 總腿數:30 + 32 = 62 條
答案:62 條腿

Zero-shot CoT

只需加上魔法咒語 Let's think step by step

問題:一個農場有 15 隻雞和 8 隻牛...讓我們一步一步思考。

效果:在數學推理任務上,Zero-shot CoT 將準確率從 18% 提升至 79%(Kojima et al., 2022)。


進階層

Tree-of-Thought (ToT)

不只一條推理路徑,而是同時探索多條,選擇最佳:

問題:如何用 4、6、8、9 通過四則運算得到 24?

思路 A:9 - 6 = 3, 8 × 3 = 24, 24 / 4 = 6(失敗)
思路 B:8 - 6 = 2, 9 + 4 = 13, 2 × 13 = 26(失敗)
思路 C:9 × 8 = 72, 6 × 4 = 24, 72 / 3(失敗)
思路 D:8 × (9 - 6) = 24, 24 ✓(成功!不需要用 4)

ReAct(Reasoning + Acting)

結合推理和行動,讓 LLM 在思考過程中調用工具

問題:2026 年奧斯卡最佳影片的導演是誰?

Thought: 我需要知道 2026 年奧斯卡最佳影片是什麼
Action: search("2026 Oscar Best Picture winner")
Observation: "The Last Signal" won Best Picture at the 2026 Academy Awards

Thought: 現在我需要知道這部電影的導演
Action: search("The Last Signal 導演 director")
Observation: "The Last Signal" was directed by Sarah Chen

Answer: Sarah Chen

Self-Consistency

對同一問題生成多個推理路徑,取多數結果:

問題:如果 5 台機器 5 分鐘生產 5 個零件,100 台機器生產 100 個零件需要多少分鐘?

路徑 1:100 台機器 5 分鐘生產 100 個零件 → 5 分鐘
路徑 2:5 台 5 分鐘 5 個 → 1 台 5 分鐘 1 個 → 100 台 5 分鐘 100 個 → 5 分鐘
路徑 3:5 台 5 分鐘 5 個 → 5 台 1 分鐘 1 個 → 100 台 1 分鐘 20 個 → 100 分鐘(錯誤)

多數結果:5 分鐘 ✓

實戰框架

CRISPE 框架

元素 說明 例子
Capacity & Role 定義角色 「你是一位資深 Python 工程師」
Request 明確任務 「請重構以下代碼」
Insight 提供背景 「這段代碼在處理大文件時效能很差」
Statement 格式要求 「輸出重構後的代碼並說明變更理由」
Personality 風格 「使用簡潔的英文註釋」
Example 示例 (可選)提供輸入輸出示例

完整 CRISPE 示例

[C] 你是一位資深 Python 後端工程師,專精效能優化。
[R] 請重構以下數據處理函數,提升處理 10GB JSON 文件時的效能。
[I] 當前代碼在處理大文件時耗時超過 30 分鐘,瓶頸在於全量載入記憶體。
[S] 請輸出重構後的代碼、變更說明、以及預期效能提升百分比。
[P] 使用類型提示和清晰的函數命名。

Claude Code 中的實戰

System Prompt 模板(CRISPE 格式)

[C] 你是我的專屬開發助手,擅長 React + TypeScript + Next.js。
[R] 我會給你任務,請按以下流程執行:
    1. 先確認你的理解(1-2 句)
    2. 列出實作步驟
    3. 逐步編寫代碼
    4. 每步完成後說明變更
[S] 代碼使用 TypeScript strict mode,Tailwind CSS,函數組件。
[P] 簡潔回應,重點放在代碼質量。

推薦閱讀