ИИ ИИшка Про
Гайды

Что такое function calling: как нейросеть перестаёт болтать и начинает действовать

AI-редакция

Спрашиваете у обычной нейросети «какая погода в Москве?» — и получаете честное «я не знаю, у меня нет доступа к реальному времени». Спрашиваете то же самое у Claude или ChatGPT с включёнными инструментами — и получаете актуальную погоду. Разница называется function calling (вызов функций), и это она превращает болтающего чат-бота в агента, который действует.

В чём проблема, которую это решает

Языковая модель по своей природе умеет только одно — генерировать текст. Она не может посмотреть погоду, отправить письмо, сходить в базу данных или посчитать что-то точно. Всё, что она «знает», — это данные на момент обучения, устаревшие на месяцы.

Function calling даёт модели способ попросить внешний код сделать работу за неё. Модель не выполняет функцию сама — она говорит программе: «вызови вот эту функцию с вот такими параметрами», получает результат и вставляет его в ответ.

Как это работает по шагам

Представим бота, у которого есть функция «узнать погоду». Диалог устроен так:

  1. Вы даёте модели список доступных функций. Не код, а описание: «есть функция get_weather, принимает город, возвращает температуру». Это делается один раз при настройке.
  2. Пользователь спрашивает «какая погода в Москве?».
  3. Модель не отвечает текстом. Вместо этого она возвращает специальный ответ: «вызови get_weather с параметром city: "Москва"».
  4. Ваша программа выполняет функцию — реально ходит в погодный сервис — и отдаёт результат модели.
  5. Модель формулирует человеческий ответ: «В Москве сейчас +18 и облачно».

Ключевой момент: модель сама решает, когда функция нужна. На «привет» она ответит текстом, на «погоду» — попросит вызвать функцию. Это не жёсткое правило, а понимание из контекста.

Чем это отличается от обычного ответа

Обычный ответFunction calling
Что возвращаетТекст для человекаСтруктурированный вызов: имя функции + параметры
Кто выполняет действиеНикто, это просто словаВаш код
АктуальностьНа момент обученияРеальное время
Точность расчётовМожет ошибитьсяСчитает настоящий код

Последняя строка важна: нейросети плохо считают в уме. Дайте модели функцию-калькулятор — и «сколько будет 4471 × 928» перестанет быть лотереей.

Structured output — близкий родственник

Рядом живёт похожая механика — структурированный вывод (structured output, JSON mode). Разница тонкая:

  • Function calling — модель просит вызвать функцию.
  • Structured output — модель обязана вернуть ответ в строгом формате JSON, который ваша программа гарантированно разберёт.

Оба нужны для одного: чтобы вывод модели можно было скормить коду, а не парсить свободный текст регулярками. Свежие открытые модели вроде Gemma 4 ставят это в список главных фич не просто так — без надёжного JSON агент не построишь.

Зачем это знать, если вы не программист

Даже если вы не пишете код, function calling объясняет половину того, что умеют современные ИИ:

  • ИИ-агенты, которые бронируют, заказывают, заполняют формы, — это цепочки вызовов функций. Подробнее — в гайде про computer use.
  • MCP (протокол, через который Claude подключается к вашим приложениям) под капотом — это стандартизированный function calling. Разбор — здесь.
  • Плагины и «действия» в ChatGPT — то же самое.
  • Поиск в вебе внутри чата — модель вызывает функцию поиска, читает результат, отвечает.

Когда вы видите, что нейросеть «сходила в интернет» или «выполнила задачу», — почти всегда под этим function calling.

Ограничения, о которых честно

Три вещи, которые стоит держать в голове:

  1. Модель может вызвать функцию не вовремя или с кривыми параметрами. Она угадывает намерение, а не исполняет алгоритм. Поэтому критичные действия (отправка денег, удаление) стоит подтверждать вручную.
  2. Она может выдумать функцию, которой нет. Если описания составлены неаккуратно, модель придумает вызов несуществующего инструмента. Лечится чёткими описаниями.
  3. Больше функций — больше путаницы. Дайте модели пятьдесят инструментов — и она начнёт выбирать не те. Хороший агент имеет узкий, понятный набор.

Что запомнить

  • Function calling = способ модели попросить код сделать работу, которую сама она не может.
  • Модель не выполняет функцию, а лишь формирует вызов; выполняет ваша программа.
  • Модель сама решает, когда функция нужна, по контексту.
  • Это фундамент агентов, MCP, плагинов и поиска в вебе.
  • Структурированный вывод (JSON) — родственник: гарантирует формат, пригодный для кода.
  • Критичные действия подтверждайте вручную — модель угадывает, а не исполняет строго.

Как из этого собираются полноценные агенты — в гайде про ИИ-агентов на практике. Что такое MCP, через который всё это подключается, — здесь.