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

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

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

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

Идея 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?

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

📝 Мои заметки

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

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