工具設計的藝術
Think Tool:讓 AI 先想後做
Agent 在執行長工具鏈時,經常忘記前面的信息,或者在需要權衡多條規則時犯錯。實踐證明,給 Agent 一個停下來想一想的工具,就能大幅提升準確率。
問題場景:Agent 為什麼會犯錯
信息在工具鏈中丟失
Agent 調用了 5 個工具後,早期工具返回的關鍵信息被後續的大量上下文淹沒,模型不再關注它。
策略密集型決策
客服場景有 20 條退款政策、6 種例外情況。Agent 需要同時考慮多條規則才能做出正確判斷,但它常常只看到了最近的幾條。
串行依賴決策
每一步都基於前一步的結果。Agent 在第 3 步做決策時,需要回憶第 1 步的上下文,但那已經在 2000 個 Token 之前了。
什麼是 Think Tool
一句話:Think Tool 是一個沒有副作用的特殊工具。它不會查數據庫、不會調 API、不會改任何狀態。它唯一的作用是讓 Agent 把思考過程寫下來,強制自己想清楚再行動。
Extended Thinking
模型在生成回覆之前進行深度思考。適合需要一次性想清楚的複雜推理問題。
THINK
深度思考,規劃方案
ACTION
調用工具 A
ACTION
調用工具 B
ACTION
生成回覆
思考發生在開頭,之後一路執行
Think Tool
Agent 在執行過程中隨時暫停思考。適合需要中途整理信息、重新評估策略的長鏈場景。
ACTION
調用工具 A,獲取用戶訂單
THINK
結合政策 3 和 7,這種情況...
ACTION
調用工具 B,查退款記錄
THINK
用戶已退過 2 次,觸發規則 12...
ACTION
做出最終決策
思考穿插在行動之間,步步為營
實現:極其簡單
Think Tool 的實現簡單到令人驚訝:它就是一個只接受一段文字、什麼都不做的工具。
Think Tool 定義 (JSON)
{
"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.",
"input_schema": {
"type": "object",
"properties": {
"thought": {
"type": "string",
"description": "A thought to think about."
}
},
"required": ["thought"]
}
}
為什麼不直接在 System Prompt 裏説「麻煩你先想清楚」?因為 Agent 在工具調用模式下,思考和調用工具是兩種不同的輸出格式。把思考包裝成一個工具調用,能讓 Agent 在工具鏈的流程中自然地插入一段思考,保持工具調用的節奏。
效果:有多好用數據説話
在 τ-bench(一個模擬真實客服場景的 Agent 評測基準)上測試 Think Tool 的效果:
τ-bench Airline(航空客服)
0.570
0.878
+54% 提升
τ-bench Retail(零售客服)
0.812
0.904
+11% 提升
注意航空場景的提升幅度。航空退改簽政策比零售複雜得多(不同艙位、不同時段、不同會員等級),策略密度越高,Think Tool 的價值越大。
動手試試:模擬客服 Agent
撳上方「下一步」,對話喺按鈕下面展開。切 Tab 睇有冇 Think Tool 嘅分別。
場景:用戶要退一張 36 小時前購買的機票(政策:24 小時內全額退款,超過扣手續費)
什麼時候用 Think Tool 2025.12 更新
適用場景
- 複雜工具鏈:調用 5+ 個工具,中途需要整理和重新評估
- 策略密集環境:需要同時考慮多條業務規則(如客服政策、審批流程)
- 串行依賴決策:每步決策依賴前一步結果,需要承上啓下的思考
- 多輪信息聚合:從多個工具返回中拼湊完整圖景
不適用場景
- 簡單工具調用:查天氣、讀檔案這類一步到位的操作,Think Tool 是多餘的開銷
- 非序列任務:各步驟相互獨立、不需要前後關聯的場景
- 已有 Extended Thinking 的場景:如果模型支持深度思考,簡單任務用 Extended Thinking 更直接
- 純生成任務:寫文章、翻譯等不涉及工具調用的場景
2025 年 12 月更新:業界進一步明確了 Think Tool 和 Extended Thinking 的分工:簡單任務直接用 Extended Thinking,Think Tool 的真正價值在於長鏈路中的中途暫停,讓 Agent 在行動之間重新整理思路。
有時候最有用的工具就是停下來想一想。Think Tool 不取得資訊、不改變狀態,但它給了 Agent 一個在行動鏈中暫停、整理、反思的機會。越複雜的任務,這種暫停的價值越大。