Claude способен взаимодействовать с инструментами и функциями, позволяя вам расширить возможности Claude для выполнения более широкого спектра задач.
Гарантированное соответствие схеме при строгом использовании инструментов
Структурированные выходные данные обеспечивают гарантированную валидацию схемы для входных данных инструментов. Добавьте strict: true в определения ваших инструментов, чтобы гарантировать, что вызовы инструментов Claude всегда точно соответствуют вашей схеме — больше никаких несоответствий типов или отсутствующих полей.
Идеально подходит для производственных агентов, где неправильные параметры инструментов могут привести к сбоям. Узнайте, когда использовать строгое использование инструментов →
Вот пример того, как предоставить инструменты Claude, используя Messages API:
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, такие как инструменты веб-поиска и веб-выборки. Эти инструменты должны быть указаны в запросе API, но не требуют реализации с вашей стороны.
Инструменты, определённые Anthropic, используют версионированные типы (например, web_search_20250305, text_editor_20250124) для обеспечения совместимости между версиями моделей.
Интегрируйте клиентские инструменты с Claude в следующие этапы:
Предоставьте Claude инструменты и запрос пользователя
Claude решает использовать инструмент
stop_reason равный tool_use, сигнализируя о намерении Claude.Выполните инструмент и верните результаты
user, содержащем блок содержимого tool_resultClaude использует результат инструмента для формулирования ответа
Примечание: Этапы 3 и 4 являются необязательными. Для некоторых рабочих процессов запрос Claude на использование инструмента (этап 2) может быть всем, что вам нужно, без отправки результатов обратно в Claude.
Серверные инструменты следуют другому рабочему процессу:
Предоставьте Claude инструменты и запрос пользователя
Claude выполняет серверный инструмент
Claude использует результат серверного инструмента для формулирования ответа
Если вы создаёте приложение, которое использует Model Context Protocol (MCP), вы можете использовать инструменты с серверов MCP непосредственно с Messages API Claude. Определения инструментов MCP используют формат схемы, который похож на формат инструментов Claude. Вам просто нужно переименовать inputSchema на input_schema.
Не хотите создавать свой собственный клиент MCP? Используйте MCP коннектор для прямого подключения к удалённым серверам MCP из Messages API без реализации клиента.
Когда вы создаёте клиент MCP и вызываете list_tools() на сервере MCP, вы получите определения инструментов с полем inputSchema. Чтобы использовать эти инструменты с Claude, преобразуйте их в формат Claude:
from mcp import ClientSession
async def get_claude_tools(mcp_session: ClientSession):
"""Convert MCP tools to Claude's tool format."""
mcp_tools = await mcp_session.list_tools()
claude_tools = []
for tool in mcp_tools.tools:
claude_tools.append({
"name": tool.name,
"description": tool.description or "",
"input_schema": tool.inputSchema # Rename inputSchema to input_schema
})
return claude_toolsЗатем передайте эти преобразованные инструменты в Claude:
import anthropic
client = anthropic.Anthropic()
claude_tools = await get_claude_tools(mcp_session)
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
tools=claude_tools,
messages=[{"role": "user", "content": "What tools do you have available?"}]
)Когда Claude ответит с блоком tool_use, выполните инструмент на вашем сервере MCP, используя call_tool(), и верните результат в Claude в блоке tool_result.
Полное руководство по созданию клиентов MCP см. в разделе Создание клиента MCP.
Вот несколько примеров кода, демонстрирующих различные паттерны и методы использования инструментов. Для краткости инструменты простые, а описания инструментов короче, чем было бы идеально для обеспечения лучшей производительности.
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.
Изучите наш репозиторий готовых к внедрению примеров кода использования инструментов в наших кулинарных книгах:
Узнайте, как интегрировать простой инструмент калькулятора с Claude для точных численных вычислений.
Создайте отзывчивого бота обслуживания клиентов, который использует инструменты клиента для улучшения поддержки.
Посмотрите, как Claude и использование инструментов могут извлекать структурированные данные из неструктурированного текста.