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-sonnet-4-5",
"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 支持两种类型的工具:
Anthropic 定义的工具使用版本化类型(例如,web_search_20250305、text_editor_20250124)来确保跨模型版本的兼容性。
通过以下步骤将客户端工具与 Claude 集成:
为 Claude 提供工具和用户提示
Claude 决定使用工具
stop_reason 为 tool_use,表示 Claude 的意图。执行工具并返回结果
tool_result 内容块的新 user 消息中返回结果Claude 使用工具结果制定响应
注意:步骤 3 和 4 是可选的。对于某些工作流程,Claude 的工具使用请求(步骤 2)可能就是您所需要的全部,无需将结果发送回 Claude。
服务器工具遵循不同的工作流程:
为 Claude 提供工具和用户提示
Claude 执行服务器工具
Claude 使用服务器工具结果制定响应
以下是一些代码示例,演示各种工具使用模式和技术。为了简洁起见,工具是简单的工具,工具描述比理想情况下要短,以确保最佳性能。
Tool use requests are priced based on:
tools parameter)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:
tools parameter in API requests (tool names, descriptions, and schemas)tool_use content blocks in API requests and responsestool_result content blocks in API requestsWhen 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.
| Model | Tool choice | Tool use system prompt token count |
|---|---|---|
| Claude Opus 4.5 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Opus 4.1 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Opus 4 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Sonnet 4.5 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Sonnet 4 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Sonnet 3.7 (deprecated) | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Haiku 4.5 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Haiku 3.5 | auto, noneany, tool | 264 tokens 340 tokens |
| Claude Opus 3 (deprecated) | auto, noneany, tool | 530 tokens 281 tokens |
| Claude Sonnet 3 | auto, noneany, tool | 159 tokens 235 tokens |
| Claude Haiku 3 | auto, noneany, 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 指标的一部分。
在我们的食谱中探索我们的即用工具使用代码示例存储库: