Claude Developer Platform Advanced Tool Use
Anthropic 發布了 Claude Developer Platform 的三項新功能——Tool Search Tool、Programmatic Tool Calling 和 Tool Use Examples——旨在讓 AI agent 在操作海量工具庫和複雜數據集時,不會耗盡模型的上下文窗口(context window)。這些更新將工具使用從簡單的函數調用轉變為智能編排,從而減少 token 消耗並提高執行準確度。
Tool Search Tool: On-Demand Tool Discovery
Tool Search Tool 透過按需發現工具,而非預先加載所有定義,來減少上下文消耗。 在擁有眾多 Model Context Protocol (MCP) server 的環境中,工具定義在對話開始前就可能消耗超過 100K tokens,導致「上下文膨脹」(context bloat)並增加工具選擇的錯誤率。
Technical Implementation
開發者可以透過將工具標記為 defer_loading: true 來將其排除在初始上下文之外。Claude 會獲得 Tool Search Tool 本身(以及任何標記為 defer_loading: false 的關鍵工具)。當需要特定功能時,Claude 會使用搜尋工具來尋找相關引用,隨後這些引用會在上下文中展開為完整的定義。
Performance Gains
- Token Reduction: 在一個包含 50 個以上 MCP tools 的測試案例中,上下文消耗從約 77K tokens 降至約 8.7K tokens,降幅達 85%。
- Accuracy Improvements: 內部 MCP 評估顯示顯著提升:Opus 4 從 49% 提升至 74%,Opus 4.5 從 79.5% 提升至 88.1%。
- Caching: 由於延遲加載的工具被排除在初始提示詞(prompt)之外,系統提示詞和核心工具定義仍能與提示詞緩存(prompt caching)相容。
Programmatic Tool Calling: Code-Based Orchestration
Programmatic Tool Calling 允許 Claude 在沙盒環境中透過 Python 代碼編排多個工具,防止中間數據污染模型的上下文。 傳統的工具調用需要為每一次調用進行完整的推理過程,且所有原始結果都會進入上下文窗口,這對於大型數據集來說效率低下。
How it Works
Claude 不再使用連續的自然語言請求,而是編寫一個 Python 腳本來調用多個工具、處理輸出(使用迴圈、條件判句和轉換),並僅將最終結果返回給模型。
- Opt-in: 工具被標記為
allowed_callers: ["code_execution_20250825"]。 - Execution: Claude 會生成一個包含 Python 代碼的
server_tool_use請求。 - Processing: 工具結果會在 Code Execution 環境中進行處理;模型不會看到原始的中間數據。
- Final Output: 只有腳本的最終
stdout會進入 Claude 的上下文。
Key Benefits
- Token Savings: 在複雜的研究任務中,平均使用量下降了 37%(從 43,588 降至 27,297 tokens)。
- Latency Reduction: 透過在一個代碼塊中執行 20 個以上的工具調用,系統消除了 19 個以上的非必要推理過程。
- Accuracy: 知識檢索能力從 25.6% 提升至 28.5%,GIA 基準測試從 46.5% 提升至 51.2%。
- Real-world Application: Claude for Excel 利用此功能來修改包含數千行的試算表,而不會造成上下文窗口過載。
Tool Use Examples: Improving Invocation Precision
Tool Use Examples 為展示正確的工具使用模式提供了一種通用標準,這些模式是 JSON schemas 無法表達的,例如格式規範和參數關聯。 雖然 JSON schemas 定義了結構有效性,但它們無法指定何時使用可選參數,或 API 所預期的特定字符串格式。
Implementation and Impact
開發者可以向工具定義中添加一個 input_examples 數組,其中包含工具調用的示例。這可以教導 Claude:
- Format Conventions: 例如,使用 YYYY-MM-DD 格式表示日期,或特定的 ID 前綴(例如,「USR-12345")。
- Nested Structures: 如何正確填充複雜的嵌套對象。
- Parameter Logic: 哪些可選參數的組合在不同場景下是合適的的(例如,需要更高升級層級的關鍵錯誤)。
內部測試顯示,提供示例可以將複雜參數處理的準確度從 72% 提升至 90%。
Deployment Best Practices
Anthropic 建議根據 agent 的特定瓶頸來分層使用這些功能:
| Bottleneck | Recommended Feature |
|---|---|
| Context bloat from tool definitions | Tool Search Tool |
| Large intermediate results polluting context | Programmatic Tool Calling |
| Parameter errors and malformed calls | Tool Use Examples |
Optimization Tips
- Discovery: 使用清晰、具描述性的工具名稱和描述來提高搜尋準確度。保持 3-5 個高頻率工具始終加載,同時延遲加載其餘工具。
- Execution: 在工具描述中清晰地記錄返回格式,以幫助 Claude 編寫準確的 Python 解析邏輯。將編程化調用(programmatic calling)集中在冪等操作(idempotent operations)和可並行化的任務上。
- Accuracy: 為每個工具提供 1-5 個真實的示例,重點關注 schema 描述不足的模糊領域。
Sources
相關
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- 專案