
О чём урок
Разработка приложений с использованием больших языковых моделей (LLM), таких как Claude, часто включает интеграцию с внешними инструментами. Эти инструменты позволяют Claude выполнять действия в реальном мире, получать актуальную информацию или проводить сложные вычисления, выходящие за рамки его собственных знаний. В простых сценариях Claude может вызвать один инструмент, получить результат и сразу же ответить пользователю. Однако что происходит, когда для ответа на один вопрос пользователя Claude требуется выполнить несколько последовательных действий, каждое из которых требует вызова отдельного инструмента? Например, если пользователь спрашивает: "Какой день будет через 103 дня от сегодняшней даты?", Claude не может ответить на этот вопрос напрямую. Ему сначала нужно узнать текущую дату, а затем прибавить к ней 103 дня. Это подразумевает два отдельных вызова инструмента: один для получения текущей даты, другой для выполнения арифметической операции с датами. Такие ситуации создают так называемый многошаговый диалог с инструментами (Multi-Turn Tool Pattern). В этом паттерне Claude делает несколько запросов к инструментам, прежде чем предоставить окончательный ответ. Ваше приложение должно быть спроектировано таким образом, чтобы автоматически обрабатывать эту последовательность взаимодействий, создавая впечатление бесшовного и мгновенного ответа для конечного пользователя. Чтобы лучше понять, как работает многошаговый диалог, давайте рассмотрим пример с датой: Пользователь спрашивает: "Какой день будет через 103 дня от сегодняшней даты?" Claude анализирует запрос: Он понимает, что для ответа ему нужна текущая дата. Claude отвечает с блоком tool_use: Он запрашивает вызов инструмента get_current_datetime. Ваш сервер получает запрос: Он вызывает функцию get_current_datetime (например, через API операционной системы или внешнего сервиса) и возвращает результат Claude (например, "2023-10-27"). Claude обрабатывает результат: Теперь у него есть текущая дата. Он понимает, что следующим шагом является добавление 103 дней. Claude снова отвечает с блоком tool_use: Он запрашивает вызов инструмента add_duration_to_datetime, передавая ему текущую дату и "103 дня".
План урока
- Многошаговые диалоги с инструментами: Когда Claude нужен не один инструмент
- Как Claude использует несколько инструментов: Сценарий взаимодействия
- Реализация цикла обработки диалога
- Обновление вспомогательных функций для работы с инструментами
- Гибкая обработка сообщений (add_user_message и add_assistant_message)
- Модификация функции chat
- Извлечение текстового контента (text_from_message)
- Ключевые преимущества и подготовка к сложным сценариям
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.