Phone icon Связаться с нами

AI-агенты и автоматизация

Что такое function calling (вызов инструментов)?

Function calling (tool calling, вызов инструментов) — это механизм, который позволяет языковой модели обращаться к внешним функциям. Разработчик описывает доступные функции и их параметры, а модель, когда нужно, возвращает не текст, а структурированный запрос: какую функцию вызвать и с какими данными.

Важно: модель ничего не выполняет сама. Она только сообщает, что хочет сделать, в формате JSON — например, «вызови get_order_status с номером 12345». Ваш код проверяет запрос, выполняет функцию и возвращает результат модели, чтобы она сформулировала ответ.

Именно function calling превращает языковую модель в AI-агента. Без него модель может только писать текст, а с ним — получать актуальные данные и выполнять действия в реальных системах.

Где применяется

Это основа работы всех агентов. Через вызов функций модель узнаёт погоду, ищет заказ в базе, создаёт задачу в трекере, отправляет письмо. Без него она не может ни получить свежие данные, ни что-то изменить во внешней системе.

Разработчик описывает каждую функцию схемой: название, назначение, параметры и их типы. Модель по описанию выбирает нужную функцию и возвращает аргументы, а выполняет вызов ваш код. Это важно для безопасности: модель ничего не запускает, она только предлагает действие.

Пример

Пользователь спрашивает: «Какая погода в Киеве завтра?». Модель не выдумывает прогноз, а возвращает вызов функции get_weather с параметрами city=Kyiv и date=завтра. Код обращается к сервису погоды и передаёт результат модели, которая формулирует ответ.

{
  "name": "get_order_status",
  "description": "Возвращает статус заказа по его номеру",
  "input_schema": {
    "type": "object",
    "properties": {
      "order_id": {
        "type": "string",
        "description": "Номер заказа, например A-10427"
      }
    },
    "required": ["order_id"]
  }
}
Описание инструмента: по нему модель понимает, когда вызвать функцию и какие данные передать.

Function calling и MCP: как связаны

Function calling — это умение модели вызывать инструменты, а описание функций вы пишете под свой код. MCP — стандарт того, как инструменты описываются и подключаются, чтобы один набор работал в разных приложениях. MCP не заменяет function calling, а унифицирует, откуда берутся описания функций.

Частые вопросы

Выполняет ли модель функцию сама?

Нет, и это принципиально. Модель возвращает структурированный запрос: какую функцию вызвать и с какими параметрами. Выполняет вызов ваш код, и он же решает, можно ли выполнить это действие. Так контроль над реальными операциями остаётся в приложении.

Как модель выбирает, какую функцию вызвать?

По текстовому описанию функции и её параметров, которое вы передаёте вместе с запросом. Поэтому качество описания очень важно: размытое «работа с данными» приводит к ошибочному выбору, а точное описание назначения — к правильному.

Чем function calling отличается от MCP?

Function calling работает на уровне модели: как она формулирует вызов. MCP работает на уровне приложения: как инструменты описываются и подключаются. В итоге MCP-сервер тоже превращается в набор функций, которые модель вызывает тем же механизмом.

Что делать, если модель передаёт неправильные параметры?

Проверять их в коде перед выполнением, как любые данные из ненадёжного источника. Если что-то не так, возвращать модели понятное сообщение об ошибке — обычно она исправляет вызов со второй попытки. Помогают и чёткие схемы с перечнем допустимых значений.

Обучение программированию в OWU

Освойте профессию в IT на практических курсах с менторами и реальными проектами.

Выбрать курс