Несколько инструментов

Чему научитесь

Видео 3:38 и текст урока

К концу урока вы сможете:

Видео и текст урока.

Смотреть урок на Skilljar Using multiple tools · 3:38

Когда основная инфраструктура для работы с инструментами готова, добавлять новые инструменты просто. Этот урок показывает, как подключить дополнительные инструменты по простому шаблону.

Три нужных инструмента: текущие дата и время, прибавление длительности к дате, установка напоминания.
Три инструмента проекта: текущие дата и время, прибавление длительности, установка напоминания.

Какие инструменты добавляем

Для системы напоминаний нужны три возможности:

Хорошая новость: бо́льшая часть работы уже сделана. Функции add_duration_to_datetime и set_reminder даны готовыми вместе со схемами.

Добавляем инструменты в разговор

Сначала обновите функцию run_conversation, добавив новые схемы в список инструментов:

response = chat(messages, tools=[
    get_current_datetime_schema,
    add_duration_to_datetime_schema,
    set_reminder_schema
])

Так Claude узнаёт обо всех трёх инструментах, доступных в разговоре.

Обновляем маршрутизатор

Затем измените функцию run_tool, чтобы она обрабатывала новые вызовы. Добавьте ветку elif для каждого нового инструмента:

def run_tool(tool_name, tool_input):
    if tool_name == "get_current_datetime":
        return get_current_datetime(**tool_input)
    elif tool_name == "add_duration_to_datetime":
        return add_duration_to_datetime(**tool_input)
    elif tool_name == "set_reminder":
        return set_reminder(**tool_input)

Шаблон простой: проверить имя инструмента, вызвать соответствующую функцию с переданными аргументами и вернуть результат.

Проверяем работу нескольких инструментов

Для проверки дайте запрос, которому нужно несколько инструментов: «Set a reminder for my doctors appointment. Its 177 days after Jan 1st, 2050.»

Этот запрос заставляет Claude:

Вывод ноутбука: set_reminder печатает Setting the following reminder for 2050-06-27T00:00:00: Doctor's appointment.
Вывод ноутбука: set_reminder печатает «Setting the following reminder for 2050-06-27T00:00:00: Doctor's appointment».

Claude сначала объясняет, что собирается сделать, а затем по очереди вызывает нужные инструменты. В разговоре видно, как Claude вычисляет дату — 27 июня 2050 года — и ставит на неё напоминание.

Как устроен поток сообщений

Если посмотреть историю разговора, видна полная структура сообщений:

Каждое сообщение ассистента объединяет TextBlock и ToolUseBlock; результат инструмента — Monday, June 27, 2050 12:00:00 AM.
Каждое сообщение ассистента — текст плюс вызов инструмента; результат одного из вызовов — «Monday, June 27, 2050 12:00:00 AM».

Это показывает, что Claude может включать в одно сообщение несколько блоков — пояснительный текст вместе с запросами инструментов.

Простой шаблон добавления инструментов

Когда основная инфраструктура для инструментов есть, новый инструмент добавляется так:

Такой модульный подход позволяет расширять возможности ИИ-ассистента без перестройки существующего кода. Каждый новый инструмент встраивается в текущий ход разговора и логику обработки инструментов.

Дальше

Следующий урок — потоковая передача вызовов инструментов и fine-grained tool calling.

Оригинал урока: Using multiple tools.