Loading...
    • 建構
    • 管理
    • 模型與定價
    • 客戶端 SDK
    • API 參考
    Search...
    ⌘K
    Log in
    管理工具上下文
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    建構/工具基礎架構

    管理工具上下文

    在工具搜尋、程式化工具呼叫、提示快取和上下文編輯之間進行選擇,以管理上下文膨脹。

    Was this page helpful?

    工具定義和累積的 tool_result 區塊會消耗您的上下文視窗。具有許多工具或許多輪次的長時間執行代理可能會在任務完成之前耗盡可用上下文。四種方法在管道的不同點解決此問題。

    四種方法

    每種方法都針對不同的上下文壓力來源。選擇與您的令牌流向相符的方法。

    方法減少的內容適用時機了解更多
    工具搜尋預先載入的工具定義大型工具集(20+ 個工具),其中大多數工具不是每次都需要工具搜尋工具
    程式化工具呼叫tool_result 往返可以作為單一指令碼執行的工具呼叫鏈程式化工具呼叫
    提示快取重複工具定義的令牌成本跨許多請求的穩定工具集使用提示快取的工具使用
    上下文編輯歷史記錄中的舊 tool_result 區塊長對話,其中早期結果不再相關上下文編輯

    工具搜尋

    工具搜尋將工具定義保留在上下文視窗之外,直到 Claude 要求它們。您不是預先發送 50 個工具架構,而是發送單一 tool_search 工具,讓 Claude 按需發現其餘部分。這用少量延遲(一個額外的輪次來查詢工具)換取基線上下文使用量的大幅減少。

    程式化工具呼叫

    程式化工具呼叫將一系列工具呼叫摺疊成 Claude 編寫且 Anthropic 的程式碼執行沙箱執行的單一程式碼區塊。Claude 不是發出五次 tool_use 和 tool_result 的往返,而是發出一個指令碼,該指令碼從沙箱內呼叫所有五個函數。中間結果永遠不會進入對話歷史記錄。

    提示快取

    提示快取不會減少上下文中的令牌數量,但會減少您在後續請求中為其支付的費用。如果您的工具定義是穩定的,請快取一次,並在數千個請求中重複使用快取的前綴。當工具集很大但固定時,這是正確的選擇。

    上下文編輯

    上下文編輯會在舊 tool_result 區塊完成其目的後將其從對話歷史記錄中移除。長代理迴圈可能會產生數百個中間結果,這些結果在當時很有用,但現在已成為累贅。上下文編輯讓您可以在不重新啟動對話的情況下修剪它們。

    組合方法

    這些方法可以組合。長時間執行的代理可能會使用工具搜尋來保持工具集精簡,使用提示快取來攤銷剩餘定義的成本,並使用上下文編輯在對話增長時修剪陳舊的結果。每種方法都解決問題的不同部分,因此一起使用它們沒有衝突。

    高容量代理的合理起點:

    1. 從第一天開始在工具定義上啟用提示快取。快取寫入的標記費用比基本輸入定價高 25%,在第二個命中快取的請求時就會回本。
    2. 一旦您的工具集增長到大約 20 個工具或您的基線上下文使用量變得明顯,就添加工具搜尋。
    3. 一旦個別對話開始執行足夠長的時間,使早期結果變得不相關,就添加上下文編輯。
    4. 如果您注意到可以作為單一批次執行的重複小工具呼叫鏈,請考慮程式化工具呼叫。

    後續步驟

    工具搜尋工具

    按需載入工具定義,而不是預先載入。

    程式化工具呼叫

    將工具呼叫鏈摺疊成單一可執行指令碼。

    使用提示快取的工具使用

    跨請求快取工具定義以降低令牌成本。

    上下文編輯

    從長時間執行的對話中修剪陳舊的工具結果。