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 на практических курсах с менторами и реальными проектами.
Выбрать курс