К содержимому
Claude Code с 0:полный курс
Уровень 2 · Структура и инструменты 5 мин Проверено автором · 21 июн. 2026 г.

Tool use: даём модели вызывать ваши функции

Описываем инструмент в input_schema и читаем ответ со stop_reason: tool_use.

Уровень 2 · 0 / 4 уроков0%

В этом уроке нет практического задания — просто прочитай и ответь на вопросы.

Идея tool use

Модель сама не ходит в твою базу заказов. Но ты можешь дать ей инструмент — описание функции, которую она вправе «вызвать». Модель не выполняет её сама: она говорит «вызови get_order с таким аргументом», а саму функцию запускаешь у себя.

Описываем инструмент

Каждый инструмент — это name, description и input_schema (JSON Schema аргументов). Хорошее описание важно: по нему модель решает, когда инструмент нужен.

tools = [{
    "name": "get_order",
    "description": "Вернуть статус заказа по его номеру",
    "input_schema": {
        "type": "object",
        "properties": {"order_id": {"type": "string"}},
        "required": ["order_id"]
    }
}]

Запрос и ответ

Передаёшь tools в запрос. tool_choice управляет поведением: auto (по умолчанию), any, конкретный tool или none.

from anthropic import Anthropic

client = Anthropic()
resp = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1024,
    tools=tools,
    messages=[{"role": "user", "content": "Где мой заказ 7788?"}],
)
print(resp.stop_reason)  # tool_use

Если модель решила вызвать инструмент, придёт stop_reason: "tool_use", а в content будет блок с type == "tool_use":

{
  "type": "tool_use",
  "id": "toolu_01ABC",
  "name": "get_order",
  "input": {"order_id": "7788"}
}

Совет

Запомни id блока (toolu_...) — он понадобится, чтобы вернуть результат функции в следующем уроке.

Проверь себя

Отвечено 0/3
Режим:

Какой stop_reason приходит, когда модель хочет вызвать инструмент?

Из чего состоит описание инструмента?

Что на самом деле делает модель при tool use?

Выполни задание в терминале и ответь на вопросы, чтобы завершить урок.

📝 Мои заметки

Сохраняется автоматически в этом браузере · видно на странице «Заметки».

Вопросы и ответы по уроку

Какой stop_reason приходит, когда модель хочет вызвать инструмент?

Когда модель решает вызвать инструмент, ответ приходит со stop_reason: tool_use и блоком type tool_use в content.

Из чего состоит описание инструмента?

Инструмент описывается полями name, description и input_schema (JSON Schema аргументов). Саму функцию выполняешь ты сам, в описании её кода нет.

Что на самом деле делает модель при tool use?

Модель только сообщает, какой инструмент и с какими аргументами вызвать (блок tool_use с id, name, input). Выполнение функции и возврат результата — на твоей стороне.

Почитать по теме в блоге

Листай уроки клавишами · поиск по ⌘K