Що таке 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-сервер урешті перетворюється на набір функцій, які модель викликає цим самим механізмом.
Що робити, якщо модель передає хибні аргументи?
Перевіряти їх у коді перед виконанням, як дані від будь-якого недовіреного джерела. За невідповідності повертати моделі зрозуміле повідомлення про помилку — зазвичай вона виправляє виклик із другої спроби. Допомагають і суворі схеми з переліком допустимих значень.