快速回答:Chain of Thought 是什麼?
Chain of Thought(CoT,思維鏈)是一種提示技巧,讓 AI 在回答之前先把推理過程寫出來,一步一步想清楚再給結論。就像考數學時老師要你「寫出計算過程」,AI 寫出思考步驟後,答案的正確率會明顯提升。
CoT 的正式定義
CoT 的概念由 Google Research 的 Wei et al. 在 2022 年論文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》中正式提出。定義是:在提示中加入中間推理步驟(intermediate reasoning steps),引導語言模型產生一連串的思考過程,再根據這些推理得出最終答案。
論文的核心發現是:只要在 few-shot 範例中示範推理過程,大型語言模型就能學會「邊想邊答」,而且在數學、邏輯、常識推理等任務上的表現大幅提升。
白話解釋
想像你問一個國中生:「一本書打 8 折後是 240 元,原價多少?」
如果他直接猜答案,可能會答錯。但如果你要求他「把計算過程寫出來」:
- 打 8 折 = 原價 × 0.8
- 240 = 原價 × 0.8
- 原價 = 240 ÷ 0.8 = 300
答案就對了。CoT 對 AI 做的事情一模一樣:強迫它把中間步驟攤開來,而不是直接跳到結論。
CoT 為什麼有效
語言模型在生成每個 token 時,計算量是固定的。如果一個問題需要五步推理,但模型只輸出一個答案,它等於要在一步之內完成五步的運算。
CoT 把這個問題拆開了。每一步推理都是一次輸出,模型在每一步都能「看到」自己之前寫了什麼,再決定下一步。這樣做有幾個好處:
- 複雜問題被拆成小塊,每一塊都在模型能力範圍內
- 中間步驟寫出來後,模型可以在後面的步驟中「自我修正」
- 推理路徑可見,人類可以檢查哪一步出錯
簡單說,CoT 是用「輸出更多 token」來換「更正確的答案」。
兩種 CoT 方式
Zero-shot CoT
最簡單的做法,在提示最後加一句「請一步一步思考」或 "Let's think step by step",不需要提供任何範例。
問題:公司有 23 台筆電,今年採購了 15 台,報廢了 8 台,
其中 5 台借給了外部合作廠商。公司自己還有幾台可用?
請一步一步思考,再給我最終答案。
AI 的回應會像這樣:
1. 原有筆電:23 台
2. 新採購:23 + 15 = 38 台
3. 報廢:38 - 8 = 30 台
4. 借出:30 - 5 = 25 台
公司自己可用的筆電:25 台
Zero-shot CoT 的優點是完全不需要準備範例,適合快速使用。Kojima et al. 2022 的研究發現,光是加上 "Let's think step by step" 就能在多個推理基準測試上提升 10-20% 的準確率。
Few-shot CoT
提供 1-3 個包含完整推理過程的範例,讓模型學會你要的思考格式和深度。
範例:
Q:一間教室有 4 排座位,每排 8 個位子。今天有 5 個學生請假。
教室裡坐了幾個學生?
A:先算總座位數:4 排 × 8 個 = 32 個位子。
不過題目問的是「坐了幾個學生」,而不是空位。
假設原本全部坐滿:32 - 5(請假)= 27 個學生在教室。
答案:27 個學生。
現在回答這個問題:
Q:MIS 部門有 3 個機櫃,每個機櫃放 12 台伺服器。
這個月有 4 台送修,2 台已經修好裝回去。目前機房裡有幾台?
Few-shot CoT 的好處是你可以控制推理的風格和深度,特別適合領域專業問題。
實戰範例
數學問題
沒有 CoT:
Q:公司每月雲端費用 USD 2,340,年約打 85 折。
改年約後每年省多少台幣?(匯率 1 USD = 32 TWD)
A:省 134,784 元。(直接給答案,容易算錯)
加上 CoT:
Q:(同上)請列出計算過程。
A:
月費:2,340 USD
年費(月付):2,340 × 12 = 28,080 USD
年約 85 折:28,080 × 0.85 = 23,868 USD
每年省下:28,080 - 23,868 = 4,212 USD
換算台幣:4,212 × 32 = 134,784 TWD
每年省下約 134,784 元台幣。
程式除錯
這段 Python 程式碼有 bug,請一步一步分析執行流程,找出問題:
def get_average(scores):
total = 0
for score in scores:
total += score
return total / len(scores)
result = get_average([])
AI 用 CoT 分析:
1. 函式接收 scores = [](空 list)
2. total = 0,for 迴圈不執行(因為是空 list)
3. 執行 return total / len(scores)
4. len([]) = 0
5. total / 0 → ZeroDivisionError
問題:沒有處理空 list 的情況。
修正:在計算前檢查 if not scores: return 0
邏輯推理
情境:公司資安政策規定:
- 所有存取客戶資料的 API 必須走 VPN
- 走 VPN 的連線必須用雙因素認證
- 內部測試環境的 API 不需要走 VPN
問題:QA 工程師從測試環境的 API 存取了客戶資料的副本(測試用),
這樣需要雙因素認證嗎?
請分析政策適用情況。
CoT 能幫助 AI 抓到這類邏輯衝突:測試環境 API 不需要 VPN,但存取客戶資料需要 VPN,那測試環境裡的客戶資料副本怎麼辦?這是政策本身的漏洞。
CoT 的進階變體
Self-Consistency
讓 AI 用同一個問題產生多條不同的推理路徑,最後看哪個答案出現最多次。這像是「問五個人同一題數學,三個人答 42,就選 42」。對數學和邏輯題特別有效,但 token 成本會翻好幾倍。
Tree of Thought
把推理過程想成一棵樹。每一步都可以分支出多個可能方向,AI 會評估每個分支的可行性,砍掉看起來不對的,繼續發展有希望的。適合需要探索和回溯的問題,例如規劃類任務。
Reasoning Models
2024 年之後,各家模型開始把 CoT 直接內建到模型架構裡。OpenAI 的 o1/o3 系列、Claude 的 extended thinking 模式,都是在模型內部自動執行長鏈推理,使用者不需要手動寫「請一步一步想」。
這些模型的 CoT 是「隱式」的:推理過程在模型內部發生,你看到的只有最終答案(或部分推理摘要)。好處是不需要特殊提示就能獲得 CoT 效果,壞處是你可能看不到完整的推理鏈來檢查。
什麼時候該用 CoT
適合用 CoT 的場景:
- 多步驟數學計算
- 邏輯推理和條件判斷
- 程式碼除錯和分析
- 政策合規性判斷
- 需要比較多個選項的決策
不需要用 CoT 的場景:
- 簡單事實查詢(「台灣的首都是哪裡?」)
- 翻譯
- 文字摘要
- 創意寫作
- 格式轉換
判斷原則:如果一個問題你自己需要在紙上算或畫圖才能解,那 AI 也需要 CoT。
限制與風險
CoT 會增加輸出 token 數量,直接影響 API 成本和回應時間。一個原本 50 tokens 就能回答的問題,加上 CoT 可能變成 300-500 tokens。
AI 可能產生「看起來很合理但其實是錯的」推理鏈。它會很有自信地列出步驟 1、2、3,但中間某步的邏輯是錯的。推理過程的存在可能讓你更容易相信錯誤答案,因為「它連過程都寫了,應該是對的吧」。
另外,CoT 對簡單任務可能反而有害。要求模型「想太多」有時會讓它 overthink,把簡單的事情搞複雜。
安全考量
CoT 的推理鏈可能洩漏系統提示的邏輯。如果你的 system prompt 包含商業邏輯或過濾規則,AI 在推理過程中可能把這些規則「想出來」並寫在輸出裡。
攻擊者可以利用 CoT 來做推理鏈操控。例如在輸入中夾帶一段「假推理」,引導模型沿著攻擊者設計的思路走,最終產出不當內容。
對於 reasoning models 的隱式 CoT,還有一個 faithfulness 問題:模型展示的推理過程不一定是它「真正」的決策依據。它可能先有了結論,再事後合理化推理步驟。這在高風險決策場景(醫療、法律)中值得警惕。
台灣使用情境
在繁體中文環境下使用 CoT 時,幾個實務建議:
中文 CoT 提示詞用「請一步一步分析」比「讓我們逐步思考」更自然。英文模型對 "Let's think step by step" 反應較好,但 Claude 和 GPT-4 對中文 CoT 指令的反應已經相當穩定。
企業常見的 CoT 應用場景:
- 會計和財務人員用 CoT 讓 AI 列出稅務計算過程
- MIS 用 CoT 分析系統故障的可能原因鏈
- 法務用 CoT 讓 AI 逐條比對合約條款
- PM 用 CoT 讓 AI 分析需求之間的相依性
實用提示模板:
你是一位資深 [角色]。
請針對以下問題,先列出你的分析步驟,再給出結論。
每一步都要說明你的判斷依據。
如果有不確定的地方,請標註出來。
問題:[你的問題]
知識檢測
讀完文章後,測試一下你對這個主題的理解。
常見問題 FAQ
CoT 和 Prompt Engineering 是什麼關係?
CoT 是 Prompt Engineering 的一種技巧。Prompt Engineering 涵蓋所有改善 AI 輸入的方法,CoT 專注在「引導推理過程」這件事。
每次都要用 CoT 嗎?
不用。簡單問題用 CoT 反而浪費 token 和時間。只在需要多步驟推理的場景使用。
CoT 會讓 AI 變慢嗎?
會。因為輸出更多 token,回應時間和成本都會增加。streaming 模式下體感影響較小,但 token 用量確實會多 3-10 倍。
Zero-shot 和 Few-shot CoT 哪個比較好?
看場景。日常使用、快速提問用 Zero-shot 就夠。需要特定格式或領域專業的推理時,Few-shot 效果更穩定。
CoT 對中文有效嗎?
有效。2024 年之後的主流模型對繁體中文 CoT 的支援已經很好。不過在某些極端邊界情況,用英文寫 CoT 指令仍然略勝一籌。
Reasoning model(如 o1)還需要手動寫 CoT 嗎?
通常不需要。這些模型已經內建了推理機制。但如果你想控制推理方向或格式,加上 CoT 指示仍然有幫助。
CoT 能保證答案正確嗎?
不能。CoT 提升的是正確率,不是保證正確。AI 仍然可能在推理鏈中犯邏輯錯誤,或基於錯誤的前提推理。重要決策仍需人類驗證。
怎麼判斷 AI 的推理鏈是不是在唬爛?
檢查每一步是否有根據、是否存在跳躍、結論是否確實從前面的步驟推導出來。如果某一步「看起來合理但你無法驗證」,那就要去查證那一步的事實基礎。
參考資料
- Chain-of-Thought Prompting Elicits Reasoning in Large Language Models — Chain-of-Thought 原始論文 (Wei et al., 2022)
- Anthropic Prompt Engineering Guide — Anthropic CoT 提示技巧說明
- Prompt engineering — Wikipedia — Chain-of-Thought 定義與背景