「Tool use」(工具使用)讓 Claude 能夠呼叫您定義或 Anthropic 提供的函式。Claude 會根據使用者的請求和工具的描述來決定何時呼叫工具。接著它會回傳一個結構化的呼叫,由您的應用程式執行(用戶端工具)或由 Anthropic 執行(伺服器工具)。
以下是使用伺服器工具的最簡範例,即 Web search 工具,由 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)Claude 在 Anthropic 的基礎設施上執行搜尋,並在同一個回應中回傳附有引用來源的結果。若要讓 Claude 呼叫您定義的函式,請傳遞一個帶有 input_schema 的工具,然後在 Claude 回傳 tool_use 區塊時執行該呼叫。定義工具和處理工具呼叫涵蓋了這個往返流程。
工具的主要差異在於程式碼執行的位置。用戶端工具(包括使用者定義的工具以及具有 Anthropic 定義結構描述的工具,例如 bash 和 text_editor)在您的應用程式中執行。Claude 會以 stop_reason: "tool_use" 和一個或多個 tool_use 區塊回應。您的程式碼執行該操作並回傳 tool_result。伺服器工具(例如 web_search、web_fetch、code_execution 和 tool_search)在 Anthropic 的基礎設施上執行:您無需處理執行過程即可直接看到結果,除非 Claude 在與您的某個用戶端工具相同的平行工具呼叫群組中呼叫該工具(請參閱停止原因與備援)。
如需完整的概念模型,包括代理迴圈以及何時選擇每種方法,請參閱工具使用的運作方式。
如需連接到「Model Context Protocol」,即 MCP 伺服器,請參閱 MCP 連接器。如需建立您自己的 MCP 用戶端,請參閱 Model Context Protocol 的建立 MCP 用戶端指南。
在預設的 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。
透過嚴格工具使用保證結構描述一致性
在您的自訂工具定義中加入 strict: true,以確保 Claude 的工具呼叫始終完全符合您的結構描述。請參閱嚴格工具使用。
每個伺服器工具的頁面都會更詳細地描述其觸發界限。
如需 type 字串、版本和 beta 標頭,請參閱工具參考。
對於您定義的工具,您撰寫結構描述,並由您的應用程式執行每次呼叫。
Anthropic 發布結構描述並以此訓練 Claude。您的應用程式仍需執行每次呼叫並回傳 tool_result。
在您控制的檔案中跨對話儲存和擷取資訊。
在維持狀態的持續性工作階段中執行 shell 命令。
檢視和修改文字檔案以除錯、修正和改進程式碼。
在桌面環境中擷取螢幕截圖並控制滑鼠和鍵盤。
伺服器工具在 Anthropic 的基礎設施上執行,您的應用程式中無需處理程式碼。請參閱伺服器工具以了解它們共用的機制。
搜尋網路以取得知識截止日期之後的資訊,並附有引用來源。
擷取指定網頁和 PDF 文件的完整內容。
在沙箱容器中執行 Python 和 bash 程式碼以分析資料和產生檔案。
讓較快的執行模型在生成過程中諮詢更高智慧的顧問模型。
透過按需探索和載入來處理數千個工具。
從 Messages API 連接到遠端 MCP 伺服器,無需單獨的 MCP 用戶端。
Claude Managed Agents 提供內建工具集,Claude 可在工作階段中自主使用。如需該工具集以及 Managed Agents 新增自訂工具的方式,請參閱其工具頁面。
工具使用請求的計價依據如下:
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(已停用,Google Cloud 除外) | auto、noneany、tool | 313 個 token 315 個 token |
| Claude Sonnet 5 | auto、noneany、tool | 354 個 token 474 個 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 和 Google Cloud 除外) | auto、noneany、tool | 313 個 token 315 個 token |
| Claude Haiku 4.5 | auto、noneany、tool | 496 個 token 588 個 token |
| Claude Haiku 3.5(已停用,Bedrock 和 Google Cloud 除外) | auto、noneany、tool | 264 個 token 355 個 token |
這些 token 數量會加到您正常的輸入和輸出 token 中,以計算請求的總費用。
請參閱模型總覽表格以取得目前各模型的價格。
當您傳送工具使用提示時,與任何其他 API 請求一樣,回應會在回報的 usage 指標中包含輸入和輸出 token 數量。
某些伺服器工具會在 token 之外增加基於使用量的費用:請參閱 Web search 工具和 Code execution 工具以了解其費率。
了解工具使用迴圈、工具在何處執行,以及何時使用工具而非文字敘述。
從單一工具呼叫到可用於生產環境的代理迴圈的引導式逐步解說。
Anthropic 提供的工具目錄以及選用工具定義屬性的參考。
Was this page helpful?