Chain-of-Thought(CoT)Prompting 是一種讓大型語言模型在給出最終答案前,先把中間推理步驟顯式地寫出來的提示技術。由 Wei et al.(2022)在 Google 發表的論文系統性地確認了它的效果:在數學問題、邏輯推理、常識推理等任務上,CoT 能讓模型的準確率大幅提升。
為什麼 CoT 有效?從 LLM 的工作機制來看,模型在生成每個 token 時,都在「從當前已生成的文字預測下一個最合理的 token」。當模型直接輸出最終答案時,它需要在有限的幾個 token 裡「壓縮」整個推理過程——這對複雜問題來說往往失敗。當模型被要求逐步推理時,每一個中間步驟的文字都成為後續推理的「錨點」,讓後面的推理能在正確的基礎上繼續,而不是從頭憑感覺猜測答案。
最簡單的 Zero-Shot CoT 只需要在提示詞末尾加一句話:「請一步一步思考。」這個看似平凡的做法,在 2022 年的研究中被發現能讓 GPT-3 在數學問題上的準確率從 17.7% 提升到 78.7%——提升超過 4 倍,只因為這一句話。
Zero-Shot CoT 和 Few-Shot CoT 的差別,以及什麼時候用哪個。
Zero-Shot CoT:直接在提示詞裡加上「請一步一步思考」「Let's think step by step」或類似的指令,不提供任何推理範例。這是最簡單的實作方式,對大多數需要推理的任務都有效。
Few-Shot CoT:不只說「一步步思考」,還提供幾個有完整推理過程的示範例子(問題 + 逐步推理 + 答案),讓模型學習「推理的格式和深度」。對需要特定推理格式、或者 Zero-Shot CoT 效果不夠好的任務,Few-Shot CoT 通常能再提升準確率。
選擇判斷:先試 Zero-Shot CoT(只加「一步步思考」)。如果輸出的推理步驟太淺、跳步太多、或準確率仍然不夠,改用 Few-Shot CoT,提供 2-3 個有完整推理過程的範例。
一個重要的細節:Few-Shot CoT 的示範例子中,推理步驟的品質比示範的數量更重要。2 個有深度的推理示範,通常比 5 個淺顯的示範效果更好。推理步驟要顯示「如何分解問題」「如何識別關鍵資訊」「如何排除錯誤選項」,而不只是「把步驟列出來」。
Chain-of-Thought 的幾個進階變體,適合不同場景。
Tree of Thoughts(ToT):讓模型同時探索多個不同的推理路徑(像樹狀圖分支),然後評估哪個路徑最有希望,選擇最好的路徑繼續推進。適合有多種可能解法的問題,比標準 CoT 更能找到最優解,但計算成本也更高。
Self-Consistency CoT:讓模型用 CoT 多次解同一個問題(使用不同的隨機採樣),然後取最常出現的答案作為最終答案。比單次 CoT 更可靠,適合重要性高、不允許失誤的任務。實作方式:在 API 裡設定 temperature > 0,呼叫 5-10 次,統計最常見的答案。
Step-Back Prompting:在直接解題之前,先讓模型退一步思考「這個問題的原理是什麼」「解決這類問題通常需要什麼知識」,然後再用這些原理來解決具體問題。研究顯示這能讓複雜問題的準確率再提升 10-20%。
Claude 4 的 Extended Thinking 是這些技術的內建版本:讓模型在生成最終回答前,在一個「思考空間」裡做更長時間的內部推理。對使用 Claude API 的開發者,Extended Thinking 是目前最容易使用的高品質 CoT 實作。
CoT 在 Claude 的實際使用中怎麼運用,以及幾個常見的錯誤使用方式。
在 claude.ai 裡使用 CoT:最直接的方式是在提示詞末尾加上「請一步一步思考,再給出最終答案」。對複雜問題,可以更明確地說「請先列出你的推理步驟,確認每一步是正確的,再給出最終結論」。
在 API 裡使用 CoT:除了在 System Prompt 或 User Message 裡加 CoT 指令,Claude 4 系列的 Extended Thinking 功能是更直接的方式——在 API 呼叫裡設定 thinking: {type: "enabled", budget_tokens: 5000},Claude 會在內部做 CoT 推理,只把最終結論輸出給你(或選擇也輸出思考過程)。
常見的錯誤使用方式:
在不需要推理的任務上用 CoT——翻譯、摘要、格式轉換這類任務不需要 CoT,加了只是增加延遲和費用。
Few-Shot 示範例子裡的推理步驟太淺——「先加法,再乘法」這樣的描述幫助有限,需要把推理的細節和判斷過程都寫出來。
把 CoT 當做萬能藥——CoT 對「需要推理」的任務有顯著效果,但對「需要知識」的任務(如事實查詢)效果有限;對「需要創意」的任務(如創意寫作),CoT 可能反而讓輸出變得過於結構化。
跟你的實際使用有什麼關係:如果你在做需要精確推理的任務(複雜分析、數學計算、邏輯判斷),加上「一步步思考」通常能讓 Claude 的回答準確率提升 20-50%,幾乎沒有任何代價。這是投入最低、效果最顯著的提示詞技巧之一。
一個法務分析師需要判斷某個合約條款是否符合特定的法律要求,說明 CoT 在專業判斷任務上的實際效果:
不用 CoT 的提示詞:「以下合約條款是否符合 GDPR 第 6 條的合法性要求?[貼入條款]」 → Claude 可能直接說「是」或「否」,但缺乏充分的推理過程,分析師很難評估這個判斷的可靠性。
用 CoT 的提示詞:「請你一步一步分析以下合約條款是否符合 GDPR 第 6 條的合法性要求。分析步驟:1. 識別這個條款涉及的個人資料處理活動;2. 確認 GDPR 第 6 條列出的六個合法依據;3. 逐一判斷哪個合法依據可能適用;4. 評估條款的具體措辭是否充分滿足該合法依據的要求;5. 給出你的結論和信心程度。[貼入條款]」
→ Claude 的輸出會逐步展示推理過程,分析師能看到每個判斷是基於什麼,識別哪些地方可能有不確定性,做出更有根據的最終決策。
這個例子說明了 CoT 在專業判斷任務上的核心價值:不只是讓回答更準確,更重要的是讓推理過程「可審閱」——你能評估 Claude 的判斷是否可靠,而不是盲目信任一個沒有推理過程的結論。
Chain-of-Thought 的核心取捨是「準確率 vs 速度和費用」。開啟 CoT 讓模型生成更多 token(中間推理步驟),這意味著更多的輸出 token 費用(通常多 2-5 倍)和更長的回應時間。在大多數高準確率要求的任務上,這個代價是值得的——多花 $0.01 的費用、多等 2 秒,換來準確率從 40% 提升到 80%,是非常划算的交換。不值得用 CoT 的場景:簡單事實查詢(不需要推理)、創意生成任務(CoT 可能讓輸出過於結構化)、對速度要求極高的實時應用(每次回應時間不能超過 1 秒)。最佳實踐:只在確實需要推理的任務上開 CoT,其他任務保持直接回答。