載入中

重要提示:擴展思考與其他一些功能不相容,特別是訊息預填(message pre-filling),並且它會限制您使用 temperature 的方式。請參閱此處的完整限制清單: https://platform.claude.com/docs/en/build-with-claude/thinking#limits-and-feature-compatibility

擴展思考是 Claude 的進階推理功能,讓模型在生成最終回應之前有時間處理複雜問題。您可以將其想像成 Claude 的「草稿紙」——您可以看到導向答案的推理過程,這有助於提升透明度,並且通常能產生品質更好的回應。

擴展思考的運作方式

啟用擴展思考後,Claude 的回應會從簡單的文字區塊變成包含兩個部分的結構化回應:

啟用思考功能後,您會同時獲得推理過程和最終答案:

主要優點包括:

  • 在複雜任務上具有更好的推理能力
  • 在困難問題上提高準確性
  • 對 Claude 的思考過程具有透明度

然而,也存在重要的取捨:

  • 更高的成本(您需要為思考 token 付費)
  • 增加的延遲(思考需要時間)
  • 程式碼中更複雜的回應處理

何時使用擴展思考

這個決定很簡單:使用您的提示評估。先在不啟用思考的情況下執行您的提示,如果在您已經優化過提示之後,準確性仍未達到您的要求,那麼就可以考慮啟用擴展思考。它是一個在標準提示方式無法完全達到目標時使用的工具。

回應結構與安全性

擴展思考的回應包含一個特殊的簽名系統以確保安全性:

簽名是一個加密 token,用於確保您沒有修改思考文字。這可防止開發者篡改 Claude 的推理過程,因為篡改可能會將模型導向不安全的方向。

已編輯的思考內容

有時您會收到一個已編輯(redacted)的思考區塊,而不是可讀的推理文字:

當 Claude 的思考過程被內部安全系統標記時,就會發生這種情況。已編輯的內容以加密形式包含實際的思考內容,讓您可以在未來的對話中將完整的訊息傳回給 Claude,而不會失去上下文。

實作方式

要在您的程式碼中啟用擴展思考,您需要在聊天函式中新增兩個參數:

python
def chat(
    messages,
    system=None,
    temperature=1.0,
    stop_sequences=[],
    tools=None,
    thinking=False,
    thinking_budget=1024
):

思考預算——請求中的 budget_tokens——設定 Claude 可用於推理的最大 token 數。budget_tokens 的最小值為 1024,並且您的 max_tokens 參數必須大於 budget_tokens。

將 thinking 參數新增到您的 API 請求中——這是一個物件,其 type 設為 "enabled",並帶有一個 budget_tokens 值——並提高 max_tokens,使其大於 budget_tokens:

python
if thinking:
    params["max_tokens"] = thinking_budget + 1000
    params["thinking"] = {
        "type": "enabled",
        "budget_tokens": thinking_budget
    }

然後在啟用思考功能的情況下呼叫您的聊天函式:

python
chat(messages, thinking=True)

測試已編輯的回應

出於測試目的,您可以透過傳送特殊的觸發字串,強制 Claude 回傳已編輯的思考區塊。這有助於確保您的應用程式能夠妥善處理已編輯的回應,而不會發生當機。

當您需要 Claude 處理複雜的推理任務時,擴展思考是一項強大的功能,但考量到成本和延遲的影響,請謹慎使用。先從標準提示方式開始,充分優化,然後在您需要額外的推理能力時再加入思考功能。