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

Замыкаем цикл: возвращаем tool_result

Отправляем результат функции обратно с нужным tool_use_id и доводим диалог до финального ответа.

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

Цикл инструмента целиком

В прошлом уроке модель попросила вызвать get_order с order_id: "7788" и вернула блок tool_use с id: "toolu_01ABC". Теперь нужно: выполнить функцию у себя, отдать результат модели и получить человеческий ответ.

Возвращаем результат

API без состояния — он не помнит прошлый запрос. Поэтому шлём всю историю заново: исходное сообщение пользователя, ответ ассистента с блоком tool_use, и новое user-сообщение с блоком tool_result. Главное — tool_use_id должен совпадать с id из блока tool_use.

from anthropic import Anthropic

client = Anthropic()
order_status = "в пути, доставка завтра"  # результат твоей функции

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

Теперь модель видит результат и формулирует финальный ответ покупателю. stop_reason станет end_turn.

Если tool_use_id не совпадёт с id из блока tool_use — будет 400. Это не ошибка ключа, ретраить бесполезно: чини запрос.
Блок tool_result всегда идёт в сообщении с ролью user — это «ответ от инструмента» в глазах API.

Проверь себя

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

Что должно совпадать у блока tool_result?

В сообщении с какой ролью отправляется блок tool_result?

Почему при многоходовом диалоге нужно слать всю историю messages заново?

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

📝 Мои заметки

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

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