Все статьи
2026-03-29 · 8 мин

Function calling в 2026: как агент реально вызывает твои инструменты

Это та штука благодаря которой агент перестаёт быть болтуном и начинает работать. Разбираю механику на конкретном примере.

С чего начинается полезный агент

Пока агент умеет только генерировать текст, это хороший чатбот но не сотрудник. Настоящая польза начинается когда агент может сам вызывать внешние функции: проверить заказ в базе, отправить письмо, создать задачу в CRM, найти клиента по номеру телефона.

Это называется function calling. В 2026 это стандарт, но я до сих пор встречаю разработчиков которые не понимают как он устроен внутри.

Механика без магии

Когда ты настраиваешь агента, ты описываешь ему набор функций. У каждой есть имя, описание, список параметров. Например, функция get_order_status принимает параметр order_id и возвращает статус заказа.

Во время диалога модель получает запрос пользователя и список доступных функций. Если модель считает что запрос требует вызвать одну из функций, она возвращает не текст, а структурированный JSON: вот имя функции, вот значения параметров.

Твой код получает этот JSON, реально вызывает функцию с этими параметрами, получает результат, отдаёт результат обратно в модель. Модель видит результат и формулирует ответ пользователю.

Это всё. Никакой магии. Просто модель умеет возвращать структурированные вызовы и обрабатывать их результаты.

Конкретный пример из моего проекта

У меня был клиент, интернет-магазин запчастей. Нужно было сделать бота который принимает вопросы типа "где мой заказ 45123".

Я описал агенту четыре функции. Первая: найти заказ по номеру. Вторая: проверить статус доставки. Третья: получить треки курьерской службы. Четвёртая: эскалировать к оператору если что-то не так.

Пользователь пишет: где моя посылка номер 45123. Модель возвращает вызов get_order_status с параметром 45123. Мой код идёт в базу, достаёт статус "выехал со склада 2 часа назад", отдаёт модели. Модель формулирует пользователю ответ на человеческом языке.

Все четыре функции работали на 90% обращений. Оставшиеся 10% эскалировались к живому оператору, и это нормально.

Где function calling ломается

Первая частая проблема: плохие описания функций. Если описание размытое, модель путается когда её вызывать. Я пишу описания так же как пишу документацию для нового стажёра. Конкретно, с примерами входа и выхода.

Вторая проблема: слишком много функций сразу. Если я даю агенту 30 функций, он начинает тупить в выборе. В моей практике оптимум это 5-10 функций. Если нужно больше, разбиваю на несколько агентов, каждый со своим небольшим набором.

Третья проблема: длинные JSON-результаты. Если функция возвращает простыню на 10 килобайт, модель захлёбывается. Я всегда сжимаю результат до того минимума, который нужен для ответа пользователю.

Что изменилось в 2026

Нативный function calling теперь есть во всех приличных моделях. OpenAI, Claude, Gemma 4, Llama. Это больше не фича премиальных моделей, это базовая возможность.

Вторая новость: модели научились лучше обрабатывать цепочки вызовов. Раньше агент часто путался если надо было вызвать несколько функций подряд. В 2026 это работает заметно стабильнее.

Третья новость: function calling стал работать с голосом и картинкой. Можно показать фото детали, модель вызовет функцию поиска по картинке, вернётся с вариантами.

Если ты строишь своего агента

Не делай один гигантский промпт где ты описываешь что делать в каждой ситуации. Вместо этого опиши функции, дай агенту свободу выбирать и следи за тем как он её выбирает. Первые дни ты будешь править описания функций, и это нормальный этап.

Хочешь чтобы я показал function calling на твоей задаче, пиши в t.me/kulmashev.

Готовы внедрить эти решения в свой бизнес?

Запишитесь на бесплатный разбор ваших бизнес-процессов.

Связаться с нами