同一個場景,加了一個東西之後,Claude 的正確率從 37% 跳到 57%。

那個東西不是更強的模型、不是更長的 prompt、不是換一個框架。是加了一個叫 think 的工具——讓 Claude 在工具呼叫鏈的中間,有個地方可以把想法寫下來。

這是 Anthropic 工程師在 2025 年 3 月發表的設計模式。一個工程師做 code review,但不能用草稿紙,所有推理都得在腦子裡跑。同一個人、同樣的問題,給他一張草稿紙,結果大概率不一樣。think tool 就是在做這件事——給 Claude 一張草稿紙,讓它在需要的時候把推理過程寫出來,不直接跳到下一個動作。


它和 Extended Thinking 不一樣

這是很多人容易混的地方,值得先講清楚。

Extended Thinking 是 Claude 在開始回應之前的思考——一個深度推理過程,讀完你的問題,在心裡把整個計畫想清楚,然後才開始生成答案。就像你解一道數學題之前,先在腦子裡把解題路徑跑一遍。

think tool 是不一樣的東西。它是 Claude 已經開始行動之後的中途思考。Claude 呼叫了工具 A,拿到結果,這個結果告訴了它一些新資訊——但它還沒決定下一步要怎麼走。這時候它可以呼叫 think,把這些資訊、相關規則、衝突之處都梳理一遍,再決定下一個動作。

用做菜來類比:Extended Thinking 是你在進廚房之前把整道菜的做法在腦子裡過一遍。think tool 是你切完洋蔥,嘗了一下,覺得哪裡不對,然後停下來想「接下來應該加醬油還是鹽」,把推理寫在旁邊的便條紙上。

Anthropic 在 2025 年 12 月更新了建議:大部分情況下,優先用 Extended Thinking(包括 Adaptive Thinking),因為整體效果更好。但有一類場景 think tool 還是比 Extended Thinking 更合適——就是長串工具呼叫鏈,每一步都依賴上一步的結果,而且中途拿到的資訊比問題本身更關鍵。


實作

工具定義很簡單,實際上就是一個不做任何事的工具:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"name": "think",
"description": "Use the tool to think about something. It will not obtain new information or change the database, but just append the thought to the log. Use it when complex reasoning or some cache memory is needed.",
"input_schema": {
"type": "object",
"properties": {
"thought": {
"type": "string",
"description": "A thought to think about."
}
},
"required": ["thought"]
}
}

Claude 呼叫這個工具時,它回傳的東西是空的——沒有任何副作用,只是把推理過程寫進 tool use 的 log 裡。下一輪的 context 就包含了這段推理,Claude 在決定下一步時可以參考。

光是加這個工具,在某些場景已經有效果。但 Anthropic 的測試顯示,搭配 system prompt 裡的使用說明,效果會顯著更好

1
2
3
4
5
6
7
## Using the think tool

Before taking any action or responding to the user after receiving tool results, use the think tool as a scratchpad to:
- List the specific rules that apply to the current request
- Check if all required information is collected
- Verify that the planned action complies with all policies
- Iterate over tool results for correctness

難域(像是有複雜規則的航空客服)中,光有工具但沒有說明的效果接近 Extended Thinking;加了說明的版本把 pass^1 從 0.33 推到 0.57。


什麼時候用、什麼時候不用

think tool 適合的場景有三類:

長串工具呼叫鏈:每一步的輸出是下一步的輸入,而且錯一步後面都錯。例如:先查使用者身份 → 查訂單狀態 → 查退款規則 → 判斷能不能退 → 執行退款。這個鏈上有任何一步判斷錯誤,後面就會雪崩。think tool 讓 Claude 在每個決策點把資訊整理清楚,再往下走。

規則複雜的環境:有詳細業務規則需要遵守,而且規則之間可能有衝突(「高級會員享免費托運,除非跨太平洋航線除非有促銷碼除非…」)。Claude 原生的行為容易漏掉邊界條件。

Sequential decision making:每個動作都在改變環境狀態,而且代價昂貴——搞錯了要付出真實成本,不是重試一次就好。

不適合用的場景也清楚:

單一工具呼叫、並行工具呼叫、簡單的指令跟隨。這些情況加 think tool 不會讓結果更好,只會多燒 token 和延遲。


效果數據

Anthropic 用 τ-Bench 測試,這個 benchmark 設計來評估 AI 在真實客服情境裡的工具使用能力——要對話、要查資料庫、要遵守複雜的規則。

航空客服域(複雜規則):

設定 pass^1
基線(無任何強化) 0.33
只加 Extended Thinking 0.41
只加 think tool(無說明) 0.40
think tool + optimized prompt 0.57

零售客服域(規則相對簡單):

設定 pass^1
基線 0.78
Extended Thinking 0.77
think tool(無說明) 0.81

兩個發現:在複雜域裡,提示詞說明和 think tool 要同時用才能拉開差距;在簡單域裡,光加工具就有效果。

SWE-Bench 的結果也在同一篇報告裡:Claude 3.7 Sonnet 的 SWE-Bench 評分中,加入 think tool 讓平均準確率提升了 1.6%(統計顯著,p < .001,d = 1.47)。


和現在的 Adaptive Thinking 怎麼搭

2026 年推薦的設定是 Adaptive Thinking——Claude 自己判斷問題複雜度,決定要不要使用 Extended Thinking,以及用多少。大部分一般 API 應用已經夠了。

如果你在做的是:

  • 有 3 個以上工具呼叫、每步依賴前步結果的 agent
  • 有複雜業務規則需要遵守的 customer-facing 應用
  • 每個錯誤都有真實後果的自動化流程

那可以考慮在 Adaptive Thinking 的基礎上再加 think tool,讓 Claude 在工具呼叫之間有額外的思考機制。兩者不衝突。

加這個工具的成本很低——它不會改變現有工具的行為,不會在 Claude 不需要它的時候被呼叫,也不會干擾其他工作流。唯一的代價是偶爾多幾個 token——如果問題夠複雜,這個代價是值得的。


學完這個設計模式,如果你想繼續深入,下一步是看看怎麼用 system prompt 裡的 domain-specific examples 讓 think 的效果最大化。Anthropic 在報告裡給了航空客服的完整 prompt 範例——那些範例教 Claude 什麼時候思考、思考什麼面向、怎麼把規則列出來交叉驗證,是最直接的參考。

原文來源:The “think” tool: Enabling Claude to stop and think in complex tool use situations - Anthropic Engineering
參考來源:Extended Thinking documentation - Anthropic
參考來源:τ-Bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains