Claude 能夠與工具和函數互動,讓您能夠擴展 Claude 的能力來執行更廣泛的任務。

在我們的新課程中學習掌握 Claude 工具使用所需的一切!請 繼續使用此表單分享您的想法和建議。

以下是使用 Messages API 為 Claude 提供工具的範例:

curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-opus-4-20250514",
    "max_tokens": 1024,
    "tools": [
      {
        "name": "get_weather",
        "description": "Get the current weather in a given location",
        "input_schema": {
          "type": "object",
          "properties": {
            "location": {
              "type": "string",
              "description": "The city and state, e.g. San Francisco, CA"
            }
          },
          "required": ["location"]
        }
      }
    ],
    "messages": [
      {
        "role": "user",
        "content": "What is the weather like in San Francisco?"
      }
    ]
  }'

工具使用的運作方式

Claude 支援兩種類型的工具:

  1. 客戶端工具:在您的系統上執行的工具,包括:

    • 您創建和實作的使用者定義自訂工具
    • Anthropic 定義的工具,如電腦使用文字編輯器,需要客戶端實作
  2. 伺服器工具:在 Anthropic 伺服器上執行的工具,如網路搜尋工具。這些工具必須在 API 請求中指定,但不需要您進行實作。

Anthropic 定義的工具使用版本化類型(例如 web_search_20250305text_editor_20250124)以確保跨模型版本的相容性。

客戶端工具

透過以下步驟將客戶端工具與 Claude 整合:

1

為 Claude 提供工具和使用者提示

  • 在您的 API 請求中定義具有名稱、描述和輸入架構的客戶端工具。
  • 包含可能需要這些工具的使用者提示,例如「舊金山的天氣如何?」
2

Claude 決定使用工具

  • Claude 評估是否有任何工具可以幫助處理使用者的查詢。
  • 如果有,Claude 會構建格式正確的工具使用請求。
  • 對於客戶端工具,API 回應的 stop_reasontool_use,表示 Claude 的意圖。
3

執行工具並返回結果

  • 從 Claude 的請求中提取工具名稱和輸入
  • 在您的系統上執行工具程式碼
  • 在包含 tool_result 內容區塊的新 user 訊息中返回結果
4

Claude 使用工具結果來制定回應

  • Claude 分析工具結果以制定對原始使用者提示的最終回應。

注意:步驟 3 和 4 是可選的。對於某些工作流程,Claude 的工具使用請求(步驟 2)可能就是您所需要的全部,無需將結果發送回 Claude。

伺服器工具

伺服器工具遵循不同的工作流程:

1

為 Claude 提供工具和使用者提示

  • 伺服器工具,如網路搜尋,有自己的參數。
  • 包含可能需要這些工具的使用者提示,例如「搜尋關於 AI 的最新新聞。」
2

Claude 執行伺服器工具

  • Claude 評估伺服器工具是否可以幫助處理使用者的查詢。
  • 如果可以,Claude 執行工具,結果會自動整合到 Claude 的回應中。
3

Claude 使用伺服器工具結果來制定回應

  • Claude 分析伺服器工具結果以制定對原始使用者提示的最終回應。
  • 伺服器工具執行不需要額外的使用者互動。

工具使用範例

以下是一些程式碼範例,展示各種工具使用模式和技術。為了簡潔起見,這些工具是簡單的工具,工具描述比理想情況下要短,以確保最佳效能。


定價

Tool use requests are priced based on:

  1. The total number of input tokens sent to the model (including in the tools parameter)
  2. The number of output tokens generated
  3. For server-side tools, additional usage-based pricing (e.g., web search charges per search performed)

Client-side tools are priced the same as any other Claude API request, while server-side tools may incur additional charges based on their specific usage.

The additional tokens from tool use come from:

  • The tools parameter in API requests (tool names, descriptions, and schemas)
  • tool_use content blocks in API requests and responses
  • tool_result content blocks in API requests

When you use tools, we also automatically include a special system prompt for the model which enables tool use. The number of tool use tokens required for each model are listed below (excluding the additional tokens listed above). Note that the table assumes at least 1 tool is provided. If no tools are provided, then a tool choice of none uses 0 additional system prompt tokens.

ModelTool choiceTool use system prompt token count
Claude Opus 4auto, none
any, tool
346 tokens
313 tokens
Claude Sonnet 4auto, none
any, tool
346 tokens
313 tokens
Claude Sonnet 3.7auto, none
any, tool
346 tokens
313 tokens
Claude Sonnet 3.5 (Oct)auto, none
any, tool
346 tokens
313 tokens
Claude Sonnet 3.5 (June)auto, none
any, tool
294 tokens
261 tokens
Claude Haiku 3.5auto, none
any, tool
264 tokens
340 tokens
Claude Opus 3auto, none
any, tool
530 tokens
281 tokens
Claude Sonnet 3auto, none
any, tool
159 tokens
235 tokens
Claude Haiku 3auto, none
any, tool
264 tokens
340 tokens

These token counts are added to your normal input and output tokens to calculate the total cost of a request.

請參閱我們的模型概述表以了解當前的每個模型價格。

當您發送工具使用提示時,就像任何其他 API 請求一樣,回應將輸出輸入和輸出令牌計數作為報告的 usage 指標的一部分。


下一步

在我們的食譜中探索我們的即用工具使用程式碼範例庫: