「Tool use」(工具使用)讓 Claude 能夠呼叫您定義的函式或 Anthropic 提供的函式。Claude 會根據使用者的請求和工具的描述來決定何時呼叫工具,然後回傳一個結構化的呼叫,由您的應用程式執行(用戶端工具)或由 Anthropic 執行(伺服器工具)。
以下是使用伺服器工具的最簡單範例,其中由 Anthropic 處理執行:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
tools=[{"type": "web_search_20260209", "name": "web_search"}],
messages=[{"role": "user", "content": "What's the latest on the Mars rover?"}],
)
print(response.content)工具的主要差異在於程式碼執行的位置。用戶端工具(包括使用者定義的工具以及 Anthropic 結構描述工具,如 bash 和 text_editor)在您的應用程式中執行:Claude 會以 stop_reason: "tool_use" 和一個或多個 tool_use 區塊回應,您的程式碼執行該操作,然後您回傳一個 tool_result。伺服器工具(web_search、code_execution、web_fetch、tool_search)在 Anthropic 的基礎設施上執行:您可以直接看到結果,無需處理執行過程。
如需完整的概念模型,包括代理迴圈(agentic loop)以及何時選擇每種方法,請參閱工具使用的運作方式。
如需連接到 MCP 伺服器,請參閱 MCP 連接器。如需建立您自己的 MCP 用戶端,請參閱 modelcontextprotocol.io。
使用嚴格工具使用來保證結構描述一致性
在您的工具定義中加入 strict: true,以確保 Claude 的工具呼叫始終完全符合您的結構描述。請參閱嚴格工具使用。
工具存取是您可以賦予代理最有效的能力之一。在 LAB-Bench FigQA(科學圖表解讀)和 SWE-bench(真實世界軟體工程)等基準測試中,即使只加入基本工具也能帶來顯著的提升,通常超越人類專家的基準水準。
在預設的 tool_choice 為 {"type": "auto"} 的情況下,Claude 會在每個回合決定是呼叫工具還是直接回應。當請求對應到該工具所描述的功能,且答案尚未存在於上下文中時,它會呼叫工具。對於穩定的知識、創意任務和對話性回合,它會直接回應。
這個界限可以透過您的系統提示來引導。如果 Claude 在您預期的情況下沒有呼叫工具,像 "Use the tools to investigate before responding." 這樣的輕量指令可以明顯增加工具使用。更強的形式如 "Always call a tool first before responding." 會進一步推動。相反地,"Use your judgment about whether to call a tool or respond directly." 會讓觸發行為保持保守。
如需硬性保證而非輕微引導,請使用 tool_choice。
每個伺服器工具的頁面都會更詳細地描述其自身的觸發界限。例如請參閱網頁搜尋工具或程式碼執行工具。
如需完整的實作逐步教學,請參閱教學課程。如需個別概念的參考範例,請參閱定義工具和處理工具呼叫。
工具使用請求的計價依據如下:
tools 參數中的內容)用戶端工具的計價方式與任何其他 Claude API 請求相同,而伺服器端工具可能會根據其特定用量產生額外費用。
工具使用所產生的額外 token 來自:
tools 參數(工具名稱、描述和結構定義)tool_use 內容區塊tool_result 內容區塊當您使用 tools 時,API 也會自動為模型加入一個特殊的系統提示以啟用工具使用。每個模型所需的工具使用 token 數量列於下方(不包含上述的額外 token)。請注意,此表格假設至少提供了 1 個工具。如果未提供任何 tools,則 tool choice 為 none 時會使用 0 個額外的系統提示 token。
| 模型 | Tool choice | 工具使用系統提示 token 數量 |
|---|---|---|
| Claude Opus 4.8 | auto、noneany、tool | 290 個 token 410 個 token |
| Claude Opus 4.7 | auto、noneany、tool | 675 個 token 804 個 token |
| Claude Opus 4.6 | auto、noneany、tool | 497 個 token 589 個 token |
| Claude Opus 4.5 | auto、noneany、tool | 496 個 token 588 個 token |
| Claude Opus 4.1(已棄用) | auto、noneany、tool | 313 個 token 315 個 token |
| Claude Opus 4(已停用,Vertex AI 除外) | auto、noneany、tool | 313 個 token 315 個 token |
| Claude Sonnet 4.6 | auto、noneany、tool | 497 個 token 589 個 token |
| Claude Sonnet 4.5 | auto、noneany、tool | 496 個 token 588 個 token |
| Claude Sonnet 4(已停用,Bedrock 和 Vertex AI 除外) | auto、noneany、tool | 313 個 token 315 個 token |
| Claude Haiku 4.5 | auto、noneany、tool | 496 個 token 588 個 token |
| Claude Haiku 3.5(已停用,Bedrock 和 Vertex AI 除外) | auto、noneany、tool | 264 個 token 355 個 token |
這些 token 數量會加到您正常的輸入和輸出 token 中,以計算請求的總費用。
請參閱模型概覽表以取得目前各模型的價格。
當您發送工具使用提示時,與任何其他 API 請求一樣,回應會在回報的 usage 指標中包含輸入和輸出 token 數量。
了解工具使用迴圈、工具在何處執行,以及何時使用工具而非純文字。
從單一工具呼叫到可用於生產環境的代理迴圈的引導式逐步教學。
Anthropic 提供的工具目錄以及選用工具定義屬性的參考資料。
Was this page helpful?