Function Calling — это механизм, при котором языковая модель по формулировке пользователя собирает структурированный вызов внешней функции с заполненными аргументами. Что это значит на практике: модель не запускает код, а отдаёт приложению имя функции и набор параметров в формате JSON, а выполнение остаётся на стороне сервиса.
Работает вызов функций там, где нужен доступ к данным вне обучающей выборки: погода, курс валют, запись в CRM, поиск по базе. Разработчик заранее описывает доступные инструменты через схему с полями name, description и parameters, а модель выбирает подходящий и подставляет значения из запроса.
§ 01Зачем нужен
Языковая модель обучена на срезе данных и не знает текущих значений: остатка на складе, статуса заказа, времени в другом городе. Function Calling закрывает этот разрыв. Модель распознаёт, что для ответа нужен внешний источник, и формирует запрос к нему вместо того, чтобы выдумывать факт. Так строятся агенты и ассистенты, которые бронируют встречи, дергают API оплаты, читают документы. Без этого подхода LLM ограничена генерацией текста и склонна к галлюцинациям в задачах, требующих актуальных или приватных данных.
§ 02Как устроен
Цикл состоит из четырёх шагов. Сначала разработчик передаёт модели список инструментов в виде JSON Schema с типами аргументов. Затем модель по запросу возвращает объект с именем функции и значениями параметров. Приложение исполняет функцию на своей стороне и получает результат. Финальный шаг — результат возвращается модели, и она формулирует ответ на естественном языке. Ключевое: обращение модели к инструментам ограничено выбором и заполнением параметров, сам код запускает бэкенд.
обработка заявок −65% — B2B SaaS для логистики с MRR $180k подключил Function Calling к GPT-4o: модель извлекала параметры и вызывала API создания заявки в CRM. Время обработки упало с 4 мин до 1.4 мин за 8 недель. Замер через логи бэкенда и Amplitude.
конверсия чата +31% — Онлайн-школа английского на edtech-платформе внедрила вызов функций для проверки слотов и записи на пробный урок прямо в диалоге. Конверсия из чата в запись выросла с 18% до 23.6% за 3 месяца. Динамика по GA4 и внутренней аналитике.
§ 03Как настраивается
Инструмент описывается схемой, где обязательны name, текстовое description и блок parameters с перечнем полей и их типами. Качество description напрямую влияет на то, выберет ли модель нужный тул. В API OpenAI список передаётся через параметр tools, у Anthropic — через тот же ключ с полем input_schema. Режим выбора регулируется настройкой tool_choice: авто, принудительный вызов конкретной функции или запрет. Параметры стоит помечать как обязательные через required, иначе модель может опустить критичное поле.
§ 04Подводные камни
Модель иногда придумывает несуществующую функцию или подставляет аргумент неверного типа — проверяйте вывод валидатором до исполнения. Расплывчатое description ведёт к тому, что при похожих тулах выбирается не тот. Чем длиннее список инструментов, тем выше шанс ошибки выбора, поэтому набор держат компактным. Отдельная зона риска — безопасность: структурированный запрос к функции способен запустить действие с побочным эффектом, например списание средств, так что критичные операции закрывают подтверждением на стороне приложения.