Function calling (вызов функций) — это механизм, позволяющий модели формировать структурированный запрос к инструменту или внешней функции, передавая параметры в формате, пригодном для выполнения.
Определение
Function calling — это архитектурный механизм, в котором языковая модель не просто генерирует текст, а создаёт структурированный вызов функции: имя инструмента и набор аргументов. Такой вызов интерпретируется внешней системой, которая выполняет действие — от запроса к API до запуска локального обработчика.
Формат вызова обычно задаётся JSON-схемой. Модель обучена подбирать корректные ключи, типы и структуру аргументов. Это превращает LLM из генератора текста в управляющий слой для инструментов.
Как работает
Механизм function calling строится вокруг четырёх компонентов:
- описание функций — система передаёт модели список доступных инструментов и их схемы;
- распознавание намерения — модель анализирует запрос и определяет, нужен ли вызов функции;
- формирование вызова — модель собирает JSON с именем функции и параметрами;
- исполнение — внешняя система вызывает инструмент и возвращает результат модели.
Важно, что модель не исполняет функции сама. Она лишь формирует корректный структурированный запрос. После выполнения система подмешивает результат в контекст, и модель формирует финальный ответ.
Где применяется
- Ассистенты с инструментами: поиск, вычисления, доступ к базам данных.
- Системы автоматизации: создание задач, управление документами, работа с внутренними API.
- Корпоративные ассистенты: операции CRM, генерация отчётов, аналитические запросы.
- DevOps-боты: управление окружениями, запуск CI/CD-пайплайнов, проверка логов.
- Code assistants: навигация по коду, рендеринг AST, поиск зависимостей.
- Мобильные и веб-приложения: действия от имени пользователя.
- Мультимодальные системы: вызов моделей для анализа изображений, аудио или видео.
Практические примеры использования
В ассистенте для аналитиков модель распознаёт запрос вроде «построй график по продажам за октябрь» и формирует вызов: { «name»: «build_chart», «arguments»: { «period»: «2025-10», «metric»: «sales» } }. Система строит график и возвращает данные модели для финального ответа.
В корпоративных чат-ботах function calling используется для работы с внутренними сервисами: «покажи статус заказа 48292», «создай задачу для отдела поддержки», «вытащи последний отчёт из CRM». Модель формирует структурированный вызов, API выполняет действие, результат возвращается в диалог.
В разработке программного обеспечения ассистент может вызвать функции навигации по проекту: поиск определений, рефакторинг участков кода, анализ зависимостей. Система выполняет действие локально и передаёт ответ модели.
В мультимодальных пайплайнах модель вызывает специализированную функцию обработки изображения: резюмирование содержания, поиск объектов, OCR, классификацию. Это делает LLM брокером между пользовательским запросом и модульной системой.
Преимущества и ограничения
- Плюс: структурирование действий модели и уменьшение ошибок фактов.
- Плюс: возможность работать с внешними инструментами и API.
- Плюс: независимость между генерацией текста и выполнением функции.
- Плюс: расширяемость за счёт добавления новых функций и схем.
- Минус: ошибки в распознавании намерений приводят к неправильным вызовам.
- Минус: требуется строгая валидация аргументов.
- Минус: сложные схемы увеличивают вероятность структурных ошибок.
- Минус: рост шагов inference — модель вызывает функцию, затем анализирует результат.
Связанные термины
- Tool use
- Agent loop
- RAG
- Planning
- API schema
- Self-consistency
- JSON mode
- Function signature
- Model memory