Инструменты и агенты: tool calls

Урок 7 из 12 курса «DeepSeek на практике»: неофициальный курс AI University о DeepSeek. Урок входит в платный доступ; первые уроки курса бесплатно.

О чём урок

До этого урока модель только отвечала текстом или JSON. Но у неё нет доступа к вашей базе данных, курсам валют или кнопке «отправить платёж». Чтобы модель могла действовать в реальном мире, ей нужен способ попросить вас выполнить что-то конкретное и получить результат обратно. Это и есть tool calls: вы описываете модели набор функций, она решает, какую вызвать и с какими аргументами, а код выполнения остаётся полностью на вашей стороне. После урока вы сможете написать агента, который сам решает, когда обратиться к внешним данным, и доведёт диалог до финального ответа, даже если для этого нужно несколько шагов.

Неофициальный курс AI University. Тексты, примеры и задания написаны нашей командой по открытой документации DeepSeek на 03.10.2026; курс не связан с DeepSeek и не одобрен ею. Модели и цены меняются, сверяйтесь с документацией.

Важно сразу избавиться от иллюзии: DeepSeek не запускает ваши функции. Он видит список доступных инструментов, читает вопрос пользователя и, если решает, что нужен внешний факт, возвращает не текст, а структурированный запрос вида «вызови функцию get_weather с аргументом location=Hangzhou». Дальше весь цикл выглядит так:

  1. Вы отправляете сообщения пользователя и список tools.
  2. Модель возвращает сообщение с полем tool_calls, где перечислены имена функций и аргументы в виде JSON-строки.
  3. Ваш код разбирает аргументы, реально вызывает функцию (запрос к базе, к API курсов валют, к поиску по каталогу) и получает результат.
  4. Вы добавляете в историю сообщение с role: "tool", tool_call_id и результатом в content.
  5. Отправляете обновлённую историю модели снова. Она либо просит вызвать ещё одну функцию, либо пишет финальный ответ пользователю обычным текстом.

Этот цикл может повторяться несколько раз подряд: модель вправе сначала узнать дату, затем по этой дате запросить погоду, и только потом ответить человеку. Именно поэтому обработку tool_calls всегда пишут как цикл, а не как разовый обмен запрос-ответ.

Каждый инструмент в параметре tools это объект с…

План урока

  1. Модель не выполняет код, она просит его выполнить
  2. Как описать инструмент для модели: JSON Schema
  3. Режим размышлений и tool calls: нюанс с reasoning_content
  4. Полный пример: агент с двумя функциями
  5. Надёжность: не доверяйте модели вслепую
  6. Попробуйте сами
  7. Итоги
  8. Документация DeepSeek

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Полезные гиды