Перейти к основному содержимому

Использование инструментов / вызов функций

Средний

Использование инструментов позволяет Claude вызывать функции, которые определяете вы — поиск, калькулятор, вашу базу данных, любой API — и использовать результаты. Это фундамент любого агента.

What you'll learn
  • Как работает четырёхшаговый агентный цикл, от определений инструментов до финального ответа
  • Как определить инструмент на Python с именем, описанием и вводом по JSON-Schema
  • Почему описания инструментов работают как промпты, формирующие то, когда и как Claude их вызывает
  • Как валидировать ввод, возвращать ошибки как результаты и безопасно использовать серверные инструменты

Цикл

Использование инструментов — это диалог, а не одиночный вызов. Вы передаёте Claude меню инструментов; Claude выбирает один и приостанавливается; вы выполняете его и отчитываетесь; Claude встраивает результат в свой ответ — повторяя по мере необходимости.

Guided walkthrough1 of 4
  1. Вы включаете список определений инструментов — каждое с именем, описанием и вводом по JSON-Schema.

Определение инструмента (Python)

Определение инструмента — это просто имя, описание на естественном языке и JSON-Schema для ввода. Передайте его в tools, затем проверяйте stop_reason, чтобы понять, когда Claude хочет действовать.

Инструмент get_weather + первый вызов

tools = [{
  "name": "get_weather",
  "description": "Get current weather for a city.",
  "input_schema": {
      "type": "object",
      "properties": {"city": {"type": "string"}},
      "required": ["city"],
  },
}]

msg = client.messages.create(
  model="claude-sonnet-5", max_tokens=1024,
  tools=tools,
  messages=[{"role": "user", "content": "What's the weather in Rome?"}],
)
# If msg.stop_reason == "tool_use": run the tool, then send a tool_result back.

Советы

Мелкие решения о том, как вы определяете и обрабатываете инструменты, сильно влияют на надёжность.

  • Описания — это промпты. Ясное description инструмента и документация параметров сильно улучшают то, когда/как Claude его вызывает.
  • Валидируйте получаемый ввод перед выполнением — никогда не доверяйте ему вслепую.
  • Возвращайте ошибки как результаты. Если инструмент даёт сбой, отправьте tool_result с описанием ошибки, чтобы Claude мог восстановиться.
  • Серверные инструменты. Anthropic также предлагает встроенные инструменты (например, веб-поиск, выполнение кода, использование компьютера) — смотрите актуальный набор в документации.

:::warning Инструменты = действия = риск Инструмент, совершающий реальные действия, наследует модель безопасности. Применяйте минимум привилегий и держите человека в цикле для рискованных вызовов — см. Защита агентов и инструментов. :::

Словарь использования инструментов
Нажмите Enter или пробел, чтобы перевернуть карточку. Используйте стрелки влево и вправо для перехода между карточками.Показан термин.
1 / 4

Проверь себя

0/3
  1. После того как Claude возвращает блок tool_use, кто выполняет инструмент?
  2. Определённый вами инструмент даёт сбой во время выполнения. Какое действие рекомендуется?
  3. Почему ясное описание инструмента так важно?
Key takeaways
  • Использование инструментов — это цикл: отправьте определения инструментов, Claude возвращает блок tool_use и останавливается, вы выполняете и возвращаете tool_result, Claude продолжает, пока не ответит.
  • Определение инструмента — это имя, описание и ввод по JSON-Schema — передайте его в tools и проверяйте stop_reason == tool_use.
  • Описания — это промпты; валидируйте ввод перед выполнением; возвращайте сбои как ошибки tool_result, чтобы Claude мог восстановиться.
  • Anthropic также предлагает серверные инструменты, и любому инструменту, совершающему реальные действия, нужны минимум привилегий плюс человек в цикле.

Далее