Проще говоря, модель говорит приложению: “нужно вызвать вот эту функцию с такими параметрами”. Например, `create_ticket` с темой, описанием и приоритетом; `search_orders` с номером телефона; `send_email` с адресом, темой и текстом. Важно: обычно сама модель не выполняет действие напрямую. Она предлагает вызов, а backend проверяет аргументы и вызывает реальный код или API.
Function calling полезен, когда AI должен работать с внешними системами: CRM, календарем, почтой, базой данных, платежами, таблицами, helpdesk или внутренним API. Вместо хрупкого разбора текста приложение получает предсказуемую структуру: имя функции, JSON-аргументы, типы полей и результат выполнения.
Но function calling требует контроля. Нужно описывать schema, валидировать аргументы, ограничивать опасные функции, проверять права пользователя, логировать вызовы и отправлять рискованные действия на human approval. Иначе модель может выбрать неверный инструмент или передать некорректные параметры.
Примеры
- Модель выбирает функцию `get_weather` и передает город в JSON-аргументах.
- AI-агент поддержки вызывает `create_ticket`, если вопрос клиента требует второй линии.
- Функция `search_crm_deal` получает `email` и возвращает данные сделки из CRM.
- Перед отправкой письма backend показывает function call человеку на approval.
- Если аргументы не проходят JSON Schema, приложение не вызывает функцию и просит модель исправить формат.
Где используется
- Подключение LLM к API, CRM, helpdesk и внутренним системам
- Создание AI-агентов, которые могут выполнять действия
- Структурированное извлечение параметров из пользовательского запроса
- Поиск данных, создание тикетов, отправка сообщений и обновление статусов
- No-code и low-code автоматизации с LLM
- Контроль write-действий через approval workflow
- Логирование tool calls, отладка и evals агентских сценариев
Связанные термины
Частые вопросы
Function calling и tool calling — это одно и то же?
Термины близкие. Function calling чаще описывает вызов конкретной функции с аргументами. Tool calling шире: инструментом может быть API, поиск, браузер, база данных, кодовый интерпретатор или другой сервис.
Модель сама выполняет функцию?
Обычно нет. Модель выбирает функцию и формирует аргументы. Реальное выполнение делает приложение или backend после валидации, проверки прав и политики безопасности.
Зачем нужна schema для function calling?
Schema описывает доступные поля, типы, обязательные параметры и допустимые значения. Она снижает хаос и помогает backend безопасно проверить аргументы перед выполнением.
Какие риски есть у function calling?
Неверный выбор функции, неправильные аргументы, prompt injection, доступ к лишним данным, повторные write-действия, отсутствие idempotency и выполнение опасной операции без approval.