理解上下文視窗

「上下文視窗」指的是語言模型在生成新文本時可以回顧和參考的全部文本量,以及它所生成的新文本。這與語言模型訓練時使用的大型語料庫不同,而是代表模型的「工作記憶」。較大的上下文視窗允許模型理解和回應更複雜和冗長的提示,而較小的上下文視窗可能限制模型處理較長提示或在延伸對話中保持連貫性的能力。

下圖說明了 API 請求的標準上下文視窗行為1

1對於聊天界面,例如 claude.ai,上下文視窗也可以設置為「先進先出」的滾動系統。

  • 累進式標記累積: 隨著對話進行,每個使用者訊息和助理回應都會在上下文視窗中累積。先前的對話輪次會完整保留。
  • 線性增長模式: 上下文使用量隨每個對話輪次線性增長,先前的對話輪次會完整保留。
  • 20萬標記容量: 可用的總上下文視窗(200,000 個標記)代表了 Claude 存儲對話歷史和生成新輸出的最大容量。
  • 輸入輸出流程: 每個輪次包含:
    • 輸入階段: 包含所有先前的對話歷史加上當前的使用者訊息
    • 輸出階段: 生成成為未來輸入一部分的文本回應

具有延伸思考的上下文視窗

在使用延伸思考時,所有輸入和輸出標記,包括用於思考的標記,都計入上下文視窗限制,在多輪對話情況下有一些細微差異。

思考預算標記是 max_tokens 參數的子集,按輸出標記計費,並計入速率限制。

然而,先前的思考區塊會被 Anthropic API 自動從上下文視窗計算中剔除,不會成為模型在後續輪次中「看到」的對話歷史的一部分,從而為實際對話內容保留標記容量。

下圖展示了啟用延伸思考時的專門標記管理:

  • 剔除延伸思考: 延伸思考區塊(深灰色顯示)在每個輪次的輸出階段生成,但不會作為輸入標記傳遞到後續輪次。您不需要自己剔除思考區塊。如果您將它們傳回,Anthropic API 會自動完成這項工作。
  • 技術實現細節:
    • 當您將先前輪次的思考區塊作為對話歷史的一部分傳回時,API 會自動將其排除。
    • 延伸思考標記僅在生成時計算一次輸出標記費用。
    • 有效的上下文視窗計算變為:context_window = (input_tokens - previous_thinking_tokens) + current_turn_tokens
    • 思考標記包括 thinking 區塊和 redacted_thinking 區塊。

這種架構在標記使用上很有效率,允許進行大量推理而不浪費標記,因為思考區塊的長度可能會很大。

您可以在我們的延伸思考指南中閱讀更多關於上下文視窗和延伸思考的內容。

具有延伸思考和工具使用的上下文視窗

下圖說明了在結合延伸思考與工具使用時的上下文視窗標記管理:

1

第一輪架構

  • 輸入組件: 工具配置和使用者訊息
  • 輸出組件: 延伸思考 + 文本回應 + 工具使用請求
  • 標記計算: 所有輸入和輸出組件都計入上下文視窗,所有輸出組件都按輸出標記計費。
2

工具結果處理(第二輪)

  • 輸入組件: 第一輪的每個區塊以及 tool_result。延伸思考區塊必須與相應的工具結果一起返回。這是唯一一個您必須返回思考區塊的情況。
  • 輸出組件: 在工具結果傳回給 Claude 後,Claude 只會回應文本(在下一個 user 訊息之前不會有額外的延伸思考)。
  • 標記計算: 所有輸入和輸出組件都計入上下文視窗,所有輸出組件都按輸出標記計費。
3

第三步

  • 輸入組件: 除了思考區塊外,所有輸入和上一輪的輸出都會被保留,在 Claude 完成整個工具使用週期後,思考區塊可以被丟棄。如果您將思考區塊傳回,API 會自動剔除它,或者在這個階段您可以自行剔除它。這也是您會添加下一個 User 輪次的地方。
  • 輸出組件: 由於工具使用週期之外有新的 User 輪次,Claude 將生成新的延伸思考區塊並從那裡繼續。
  • 標記計算: 先前的思考標記會自動從上下文視窗計算中剔除。所有其他先前區塊仍計入標記視窗,當前 Assistant 輪次中的思考區塊計入上下文視窗。
  • 工具使用與延伸思考的考慮事項:
    • 在發布工具結果時,必須包含與該特定工具請求相關的完整未修改思考區塊(包括簽名/編輯部分)。
    • 系統使用加密簽名來驗證思考區塊的真實性。在工具使用過程中未能保留思考區塊可能會破壞 Claude 的推理連續性。因此,如果您修改思考區塊,API 將返回錯誤。

延伸思考和工具調用之間沒有交錯 - 在沒有非 tool_result 使用者輪次的情況下,您不會看到延伸思考,然後是工具調用,再然後是更多延伸思考。此外,目前不支援在延伸思考區塊本身內使用工具,儘管 Claude 可能會在思考區塊內推理它應該使用什麼工具以及如何調用它們。

您可以在延伸思考指南中閱讀更多關於具有延伸思考的工具使用的內容

較新 Claude 模型的上下文視窗管理

在較新的 Claude 模型中(從 Claude 3.7 Sonnet 開始),如果提示標記和輸出標記的總和超過模型的上下文視窗,系統將返回驗證錯誤,而不是靜默截斷上下文。這種變化提供了更可預測的行為,但需要更仔細的標記管理。

要規劃您的標記使用並確保您保持在上下文視窗限制內,您可以使用標記計數 API在將訊息發送給 Claude 之前估算您的訊息將使用多少標記。

請參閱我們的模型比較表以查看按模型列出的上下文視窗大小。

下一步

Was this page helpful?