Основы использования инструментов
Основы использования инструментов
Цели обучения
- Понять, что такое использование инструментов
- Объяснить варианты использования инструментов
- Понять высокоуровневый процесс использования инструментов с Claude
Что такое использование инструментов?
Использование инструментов, также известное как вызов функций, относится к способности расширять возможности Claude путем определения и вызова внешних инструментов или функций. Мы можем предоставить Claude доступ к набору предопределенных инструментов, которые он может вызвать в любой момент. Инструменты позволяют нам писать код, который может выполнять определенные задачи или вычисления, которые Claude не смог бы выполнить иначе. Короче говоря: использование инструментов — это способ расширения функциональности Claude.

Почему это важно?
Использование инструментов — это революционная функция, которая раскрывает истинный потенциал Claude и открывает мир возможностей. Это критически важный компонент, который может значительно повысить ценность и влияние ваших приложений.
- Расширение возможностей Claude
- Использование инструментов позволяет расширять возможности Claude за пределы его встроенной функциональности. Определяя и вызывая внешние инструменты, вы можете дать Claude возможность выполнять задачи, которые он иначе не смог бы выполнить. Это означает, что вы можете создавать более мощные и универсальные приложения, которые могут удовлетворять более широкий круг потребностей и требований пользователей.
- Интеграция с существующими системами
- Использование инструментов обеспечивает бесшовную интеграцию между Claude и вашими существующими системами, базами данных или API. Вы можете определять инструменты, которые взаимодействуют с вашими бэкенд-сервисами, извлекают данные из ваших баз данных или запускают действия в ваших приложениях. Эта интеграция позволяет вам использовать мощь Claude, работая с вашей существующей инфраструктурой и данными.
- Автоматизация сложных задач
- С помощью использования инструментов вы можете автоматизировать сложные задачи и рабочие процессы, которые включают несколько шагов или требуют специализированных вычислений. Определяя инструменты, инкапсулирующие эти задачи, вы можете оптимизировать свои процессы, сократить ручной труд и повысить эффективность. Claude может интеллектуально вызывать нужные инструменты в нужное время на основе пользовательского ввода или предопределенных условий.
- Улучшение пользовательского опыта
- Использование инструментов может значительно улучшить пользовательский опыт ваших приложений. Предоставляя Claude доступ к соответствующим инструментам, вы можете дать ему возможность предоставлять более точные, контекстуальные и персонализированные ответы на запросы пользователей. Пользователи могут взаимодействовать с вашими приложениями на естественном языке, а Claude может использовать инструменты для предоставления богатой информации или выполнения желаемых действий от имени пользователей.
- Масштабирование и настройка
- С помощью использования инструментов вы можете масштабировать и настраивать свои приложения для удовлетворения меняющихся потребностей пользователей. По мере роста вашей пользовательской базы или изменения ваших требований вы можете легко добавлять новые инструменты или изменять существующие для расширения возможностей Claude. Эта гибкость позволяет быстро адаптироваться и итерировать, гарантируя, что ваши приложения остаются актуальными и конкурентоспособными.
Примеры вариантов использования
Некоторые общие темы, которые мы наблюдаем среди наших клиентов, использующих инструменты, включают:
- Получение информации
- Инструменты могут использоваться для получения данных из внешних источников, таких как базы данных, API или веб-сервисы. Например, инструмент может получать информацию о погоде, котировки акций или новостные статьи на основе пользовательского ввода.
- Выполнение вычислений
- Инструменты могут выполнять сложные вычисления или математические операции, которые могут выходить за рамки встроенных возможностей Claude. Это может включать финансовые расчеты, научные вычисления или статистический анализ.
- Манипулирование данными
- Инструменты могут использоваться для обработки, преобразования или манипулирования данными в различных форматах. Это может включать такие задачи, как форматирование данных, извлечение данных или преобразование данных.
- Взаимодействие с внешними системами
- Инструменты могут облегчить взаимодействие с внешними системами или сервисами, такими как отправка электронных писем, запуск уведомлений или управление устройствами IoT.
- Генерация контента
- Инструменты могут помочь в создании определенных типов контента, таких как изображения, диаграммы или форматированные документы, на основе пользовательского ввода или предопределенных шаблонов.
Более конкретные возможные варианты использования включают:
- Интеграция корпоративных данных: Интеграция Claude с корпоративными системами, такими как CRM, ERP и ITSM, для получения данных о клиентах, автоматизации рабочих процессов и предоставления персонализированной поддержки.
- Финансовый анализ и отчетность: Использование Claude и инструментов для анализа финансовых данных, создания инвестиционных отчетов, оценки рисков и обеспечения соответствия нормативным требованиям.
- Диагностика и планирование лечения в здравоохранении: Интеграция Claude с электронными медицинскими картами (EHR) и медицинскими базами знаний для помощи медицинским работникам в принятии обоснованных решений и создании персонализированных планов лечения.
- Репетиторство и создание контента в образовании: Использование Claude в сочетании с образовательными ресурсами и инструментами для предоставления персонализированного репетиторства, создания учебных материалов и адаптации к индивидуальным стилям обучения.
- Анализ и проверка юридических документов: Использование Claude и инструментов для анализа юридических документов, извлечения ключевой информации, выявления потенциальных проблем и создания резюме для оптимизации юридических процессов.
- Автоматизация поддержки клиентов: Интеграция Claude с базами знаний и системами обработки заявок для обеспечения автоматизированной поддержки клиентов, устранения неполадок и сокращения времени ответа.
- Автоматизация продаж и маркетинга: Сочетание Claude с инструментами для анализа данных клиентов, создания персонализированного маркетингового контента, квалификации лидов и оптимизации процессов продаж.
- Помощь в разработке программного обеспечения: Интеграция Claude с IDE, системами контроля версий и инструментами управления проектами для помощи разработчикам в написании кода, выявлении ошибок и управлении проектами программного обеспечения.
- Исследования и инновации: Использование Claude и инструментов для проведения маркетинговых исследований, анализа патентных данных, генерации новых идей и стимулирования инноваций в различных отраслях.
- Создание и оптимизация контента: Использование Claude и инструментов для генерации, оптимизации и персонализации контента для различных платформ, включая веб-сайты, социальные сети и маркетинговые кампании.
Как работает использование инструментов
Теперь давайте рассмотрим, как на самом деле работает использование инструментов. Самое важное, что нужно понять с самого начала, это то, что Claude сам по себе не выполняет какой-либо код. Мы сообщаем Claude о наборе инструментов, которые он может попросить нас вызвать, а затем наша задача — фактически запустить базовый код инструмента и сообщить Claude о результатах.
Обратите внимание, что Claude не имеет доступа к каким-либо встроенным серверным инструментам. Все инструменты должны быть явно предоставлены вами, пользователем, в каждом запросе API. Это означает, что вы определяете доступные инструменты с четкими описаниями и схемами ввода, а также реализуете и выполняете логику инструмента, такую как запуск определенной функции или запрос к API по запросу Claude. Это дает вам полный контроль и гибкость над инструментами, которые может использовать Claude.

В частности, использование инструментов с Claude включает следующие шаги:
-
Предоставьте Claude инструменты и пользовательский prompt: (Запрос API)
- Определите набор инструментов, к которым вы хотите предоставить доступ Claude, включая их имена, описания и схемы ввода.
- Предоставьте пользовательский prompt, который может потребовать использования одного или нескольких из этих инструментов для ответа, например: "Сколько акций General Motors я могу купить на $500?"
-
Claude использует инструмент: (Ответ API)
- Claude оценивает пользовательский prompt и решает, поможет ли какой-либо из доступных инструментов с запросом или задачей пользователя. Если да, то он также решает, какой инструмент(ы) использовать и с каким(и) входом(ами).
- Claude выводит правильно отформатированный запрос на использование инструмента.
- Ответ API будет иметь
stop_reasonсо значениемtool_use, указывая, что Claude хочет использовать внешний инструмент.
-
Извлеките входные данные инструмента(ов), запустите код и верните результаты: (Запрос API)
- На стороне клиента вы должны извлечь имя инструмента и входные данные из запроса Claude на использование инструмента.
- Запустите фактический код инструмента на стороне клиента.
- Верните результаты Claude, продолжив разговор новым пользовательским сообщением, содержащим блок контента
tool_result.
-
Claude использует результат инструмента для формирования ответа: (Ответ API)
- После получения результатов инструмента Claude использует эту информацию для формирования своего окончательного ответа на исходный пользовательский prompt.
Шаги (3) и (4) необязательны — для некоторых рабочих процессов использование инструмента Claude является всей необходимой информацией, и вам может не потребоваться возвращать результаты инструмента обратно в Claude. Подробнее об этом в следующей главе.
Гипотетический сценарий использования инструмента
Чтобы лучше понять процесс использования инструментов, давайте представим, что мы создаем чат-приложение, которое позволяет пользователям общаться с Claude о фондовом рынке и получать текущие цены акций.
Конечно, Claude не знает текущих условий и цен на фондовом рынке в любой момент времени, поэтому нам нужно предоставить Claude инструмент get_stock_price, который получает текущую цену акции для компании.
Вот простая диаграмма, показывающая поток информации между нашим приложением и Claude:

Подробная разбивка процесса
Ниже приведена подробная разбивка шагов использования инструментов
Шаг 0: Напишите функциональность инструмента
Прежде чем мы сообщим Claude о конкретном инструменте, к которому он имеет доступ, нам нужно сначала написать функциональность этого инструмента. В случае нашего инструмента get_stock_price мы, вероятно, напишем функцию, которая ожидает название компании или биржевой тикер в качестве аргумента, а затем отправляет запрос к API фондового рынка для получения актуальных данных о ценах акций. Примерно так:
def get_stock_price(company):
#Отправить запрос к API фондового рынка для поиска текущей цены акции для данной компании
#Возвращает словарь, содержащий информацию о текущей цене акции для указанной компании
Если бы эта функция была полностью реализована, и мы вызвали бы ее с get_stock_price("General Motors"), мы могли бы получить возвращаемое значение, которое выглядит так:
{
"symbol”: “GM”,
"price”: 43.09
}
Шаг 1: Предоставьте Claude инструменты и пользовательский prompt (Запрос API)
Далее нам нужно определить инструмент get_stock_price с его именем, описанием и схемой ввода. Мы уделим больше времени определению инструментов позже, но вот гипотетическое определение инструмента get_stock_price, о котором мы могли бы сообщить Claude:
tool_definition = {
"name": "get_stock_price",
"description": "Retrieves the current stock price for a given company",
"input_schema": {
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "The company name to fetch stock data for"
}
},
"required": ["company"]
}
}
Затем мы сообщили бы Claude о существовании этого инструмента и сделали бы запрос с prompt'ом, который может потребовать этот инструмент:
response = client.messages.create(
model="claude-3-opus-20240229",
messages=[{"role": "user", "content": "How many shares of General Motors can I buy with $500?"}],
max_tokens=500,
tools=[tool_definition]
)
Шаг 2: Claude использует инструмент (Ответ API)
Claude получает запрос API и оценивает пользовательский prompt. Он определяет, что инструмент get_stock_price был бы полезен для ответа на вопрос о покупке акций General Motors.
Claude отвечает правильно отформатированным запросом на использование инструмента. Мы углубимся в это позже, но вот пример ответа от Claude, указывающий, что он "хочет" использовать наш инструмент:
{
"stop_reason": "tool_use",
"tool_use": {
"name": "get_stock_price",
"input": {
"company": "General Motors"
}
}
}
Шаг 3: Извлеките входные данные инструмента, запустите код и верните результаты (Запрос API)
На стороне клиента мы извлекаем имя инструмента (get_stock_price) и имя компании (General Motors) из запроса Claude на использование инструмента.
Мы выполняем фактическую функцию get_stock_price, которая получает актуальные данные фондового рынка из API, используя входные данные, извлеченные из запроса инструмента Claude. Функция может вернуть данные, которые выглядят так:
{
"symbol”: “GM”,
"price”: 43.09
}
Затем мы сообщаем Claude о результате работы нашего инструмента. Мы возвращаем Claude результаты инструмента по цене акции, продолжая разговор новым пользовательским сообщением, содержащим блок контента tool_result (подробнее об этом позже).
Шаг 4: Claude использует результат инструмента для формирования ответа (Ответ API)
Claude получает результат инструмента по цене акции и включает актуальную информацию о фондовом рынке в свой окончательный ответ на исходный пользовательский prompt, в итоге отвечая чем-то вроде:
Похоже, что при текущей цене акции в $43.09 вы можете купить около 11 акций General Motors на свои $500.
Тест
Вопрос 1
Какие из следующих вариантов использования могут хорошо подходить для использования инструментов?
- (a) Чат-бот поддержки клиентов, которому необходимо извлечь информацию о заказе из базы данных на основе идентификатора заказа клиента.
- (b) Помощник по письму, который помогает пользователям улучшать грамматику и стиль письма.
- (c) Финансовый консультант, который предоставляет персонализированные инвестиционные рекомендации на основе толерантности пользователя к риску и его финансовых целей.
- (d) Чат-бот для путешествий, который может бронировать рейсы и отели на основе предпочтений пользователя и наличия мест.
Показать ответ на вопрос 1
**a, c и d** * (a) Чат-бот поддержки клиентов, которому необходимо извлечь информацию о заказе из базы данных на основе идентификатора заказа клиента. * (c) Финансовый консультант, который предоставляет персонализированные инвестиционные рекомендации на основе толерантности пользователя к риску и его финансовых целей. * (d) Чат-бот для путешествий, который может бронировать рейсы и отели на основе предпочтений пользователя и наличия мест. Эти варианты использования включают извлечение информации из внешних источников, выполнение расчетов или манипуляций с данными, а также взаимодействие с внешними системами, что является общими сценариями, где использование инструментов может расширить функциональность Claude. Вариант использования (b) не обязательно требует использования инструментов, так как он потенциально может быть обработан встроенными возможностями Claude по пониманию и генерации языка.Вопрос 2
Расположите следующие шаги рабочего процесса использования инструментов в правильном порядке: * (a) Claude использует результат инструмента для формирования ответа на исходный пользовательский prompt. * (b) Код на стороне клиента извлекает имя инструмента и входные данные из запроса Claude на использование инструмента. * (c) Claude оценивает пользовательский prompt и решает использовать инструмент, а затем выводит запрос на использование инструмента. * (d) Код на стороне клиента выполняет фактическую функциональность инструмента и возвращает результаты Claude. * (e) Код на стороне клиента предоставляет Claude набор доступных инструментов и пользовательский prompt.