---
title: "Function Calling"
source: "https://systems-analysis.info/wiki/Function_Calling"
wiki: "systems-analysis.info/wiki"
article: "Function_Calling"
language: "ru"
categories:
  - "Категория:Prompt инжиниринг"
  - "Категория:Russian"
  - "Категория:Большие языковые модели"
  - "Категория:Машинное обучение"
revision_id: 102
wiki_created_at: 2026-09-06T21:55:02Z
wiki_modified_at: 2026-09-06T21:55:02Z
downloaded_at: 2026-09-07T22:17:26Z
---

# Function Calling

**Function Calling** (**Вызов функций**) — это механизм в [больших языковых моделях (LLM)](https://systems-analysis.info/wiki/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D1%8B%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8 "Большие языковые модели"), позволяющий модели взаимодействовать с внешними инструментами и API, генерируя структурированные данные (как правило, JSON) для вызова функций вместо прямого текстового ответа<sup>[\[1\]](https://systems-analysis.info/wiki/Function_Calling#cite_note-hopsworks_whatis-1)</sup>.

Иными словами, модель на основе запроса пользователя определяет, какую функцию из предложенного набора следует вызвать и с какими параметрами. Этот механизм расширяет сферу применения LLM, позволяя им служить интерфейсом между естественным языком и практическими действиями. Это открывает возможности для интеграции ИИ с внешними системами: модель может запрашивать актуальные данные, выполнять операции или пользоваться сервисами, что особенно ценно при создании интеллектуальных ассистентов и автономных агентов. Использование внешних инструментов также снижает риск [галлюцинаций](https://systems-analysis.info/wiki/%D0%93%D0%B0%D0%BB%D0%BB%D1%8E%D1%86%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D0%B8_%D0%B8_%D0%BD%D0%B5%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%82%D0%BD%D1%8B%D0%B5_%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%8B_LLM "Галлюцинации и некорректные ответы LLM") (вымышленных фактов) за счёт обращения к достоверным источникам<sup>[\[2\]](https://systems-analysis.info/wiki/Function_Calling#cite_note-dark_side_paper-2)</sup>.

## История и подходы к реализации

### Ранние подходы (промптинг и Toolformer)

Идея научить языковые модели вызывать инструменты сформировалась в 2022–2023 годах. Ранние подходы основывались на технологиях сложного промптинга. Так, в 2022 году была предложена схема **[ReAct](https://systems-analysis.info/wiki/ReAct_Prompting "ReAct Prompting")**, где модель в ходе диалога чередовала рассуждения и действия (вызовы инструментов), закодированные в одном тексте.

Ключевым шагом стало появление модели **[Toolformer](https://systems-analysis.info/wiki/Toolformer "Toolformer")**, представленной исследователями Meta в начале 2023 года. Toolformer продемонстрировал, что LLM можно специально дообучить самостоятельно вызывать внешние инструменты (калькулятор, поисковик, календарь) по текстовым подсказкам, вставляя в генерируемый текст специальные [токены](https://systems-analysis.info/wiki/%D0%A2%D0%BE%D0%BA%D0%B5%D0%BD "Токен") вызова API<sup>[\[3\]](https://systems-analysis.info/wiki/Function_Calling#cite_note-toolformer_paper-3)</sup>.

### Официальная поддержка и развитие

Особую веху отметила компания OpenAI, которая в июне 2023 года официально внедрила поддержку Function Calling в свои API для моделей GPT-3.5 и GPT-4<sup>[\[4\]](https://systems-analysis.info/wiki/Function_Calling#cite_note-openai_fc_announcement-4)</sup>. Новые версии моделей были дообучены распознавать ситуации, когда пользовательский запрос подразумевает обращение к внешней функции, и генерировать точно структурированный JSON-объект с аргументами. В OpenAI назвали эту возможность «новым способом надёжно соединить [GPT](https://systems-analysis.info/wiki/GPT "GPT") с внешними инструментами и API».

### Открытые инициативы

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

- **Gorilla**: Проект UC Berkeley, дообученная версия [LLaMA](https://systems-analysis.info/wiki/LLaMA "LLaMA"), способная формировать вызовы к тысячам различных API. Для оценки таких моделей был создан бенчмарк Berkeley Function-Calling Leaderboard<sup>[\[5\]](https://systems-analysis.info/wiki/Function_Calling#cite_note-gorilla_site-5)</sup>.
- **ToolAlpaca**, **ToolLLaMA**, **Hermes**: Серии открытых моделей, дообученных на синтетических примерах вызовов функций, часто сгенерированных более мощными моделями.

## Механизм работы

Процесс использования Function Calling, как правило, включает несколько шагов:

1.  **Определение функций**. Разработчик заранее определяет набор доступных для модели функций (например, внешних API) и описывает их сигнатуры и назначение, как правило, в формате JSON Schema.
2.  **Анализ запроса**. Во время диалога модель анализирует намерение пользователя и самостоятельно решает, следует ли для ответа вызвать одну из определённых функций.
3.  **Генерация вызова**. Если требуется действие, LLM вместо обычного текста генерирует специальный структурированный вывод (например, JSON с именем функции и аргументами). Если же вызов не требуется, модель возвращает обычный текстовый ответ.
4.  **Исполнение функции**. Внешняя программа (оболочка чат-бота или агент) получает JSON, выполняет реальный вызов указанной функции с предложенными параметрами и передаёт результат обратно модели.
5.  **Формирование финального ответа**. Модель использует полученные данные для генерации итогового ответа пользователю<sup>[\[4\]](https://systems-analysis.info/wiki/Function_Calling#cite_note-openai_fc_announcement-4)</sup>.

Для управления этим многошаговым процессом в ходе обучения моделей применяются специальные форматы диалога, например, разметка ChatML от OpenAI, где помимо ролей «пользователь» и «ассистент» вводится роль «функция» для передачи результатов вызовов.

## Применение и преимущества

Возможность вызывать функции заметно расширяет спектр задач, решаемых с помощью LLM.

- **Интеграция с внешними API**. Модель может отвечать на запросы, требующие актуальной информации, вызывая внешние сервисы (например, для получения погоды, курсов валют, новостей).
- **Автоматизация действий пользователя**. LLM может выполнять рутинные задачи: отправлять электронные письма, создавать события в календаре, размещать заказы в интернет-магазинах.
- **Доступ к базам данных и аналитике**. Запросы на естественном языке могут транслироваться в вызовы внутренних API или SQL-запросы для извлечения и анализа данных.
- **Извлечение структурированной информации**. LLM может сама выделять факты из длинного текста (например, имена, даты, адреса) и возвращать их в виде структурированного JSON-массива, удобного для последующей программной обработки.

## Проблемы безопасности

Расширяя возможности моделей, Function Calling одновременно несёт новые риски.

- **Непроверенные выводы**. Взаимодействие модели с внешними инструментами должно быть тщательно защищено. Если модель получает от API вредоносное или ошибочное значение, она может включить его в ответ или вызвать другую функцию на его основе, что приведёт к непредсказуемым последствиям.
- **Атаки через аргументы функций**. Исследователи обнаружили уязвимости, специфичные для режима Function Calling. В 2025 году была продемонстрирована атака, названная «Тёмная сторона Function Calling». Её суть заключается в предложении модели специальной «функции», внутри аргументов которой скрывается запрещённая инструкция (*jailbreak-пейлоад*). Модель, следуя принципу вызова функции, генерирует аргументы, содержащие нарушающий правила контент, и тем самым обходит модерационные фильтры. Тестирование показало успех атаки более чем в **90%** случаев на шести современных моделях, включая GPT-4 и [Claude](https://systems-analysis.info/wiki/Claude "Claude")<sup>[\[2\]](https://systems-analysis.info/wiki/Function_Calling#cite_note-dark_side_paper-2)</sup>.

Для предотвращения таких инцидентов рекомендуется предоставлять модели только доверенные инструменты, внедрять подтверждение пользователя перед выполнением критически важных действий, а также использовать специальные «оборонительные» промпты и строгую проверку аргументов на опасное содержимое.

## См. также

- [ReAct Prompting](https://systems-analysis.info/wiki/ReAct_Prompting "ReAct Prompting")
- [AI-агент](https://systems-analysis.info/wiki/AI-%D0%B0%D0%B3%D0%B5%D0%BD%D1%82 "AI-агент")
- [LLaMA](https://systems-analysis.info/wiki/LLaMA "LLaMA")
- [Большие языковые модели](https://systems-analysis.info/wiki/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D1%8B%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8 "Большие языковые модели")
- [Галлюцинации и некорректные ответы LLM](https://systems-analysis.info/wiki/%D0%93%D0%B0%D0%BB%D0%BB%D1%8E%D1%86%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D0%B8_%D0%B8_%D0%BD%D0%B5%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%82%D0%BD%D1%8B%D0%B5_%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%8B_LLM "Галлюцинации и некорректные ответы LLM")

## Ссылки

- <a href="https://openai.com/index/function-calling-and-other-api-updates/" class="external text" rel="nofollow">Официальный анонс Function Calling от OpenAI</a>
- <a href="https://gorilla.cs.berkeley.edu/" class="external text" rel="nofollow">Страница проекта Gorilla LLM</a>
- Apideck (2024). *An Introduction to Function Calling and Tool Use*. <a href="https://www.apideck.com/blog/llm-tool-use-and-function-calling" class="external text" rel="nofollow">Apideck Blog</a>.
- LangChain (2025). *Tool Calling (Documentation)*. <a href="https://python.langchain.com/docs/concepts/tool_calling/" class="external text" rel="nofollow">LangChain Docs</a>.
- Mistral AI (2025). *Function Calling – Documentation*. <a href="https://docs.mistral.ai/capabilities/function_calling/" class="external text" rel="nofollow">Mistral Docs</a>.
- Hopsworks (2024). *What is Function Calling with LLMs?*. <a href="https://www.hopsworks.ai/dictionary/function-calling-with-llms" class="external text" rel="nofollow">Hopsworks Dictionary</a>.
- Hopsworks (2024). *Unlocking the Power of Function Calling with LLMs*. <a href="https://www.hopsworks.ai/post/unlocking-the-power-of-function-calling-with-llms" class="external text" rel="nofollow">Hopsworks Blog</a>.
- University of California, Berkeley (2025). *Berkeley Function Calling Leaderboard V3*. <a href="https://gorilla.cs.berkeley.edu/leaderboard.html" class="external text" rel="nofollow">Online Resource</a>.

## Литература

- Wu, Z. et al. (2025). *The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models*. <a href="https://aclanthology.org/2025.coling-main.39.pdf" class="external text" rel="nofollow">ACL 2025</a>.
- OpenAI (2023). *Function Calling and Other API Updates*. <a href="https://openai.com/index/function-calling-and-other-api-updates/" class="external text" rel="nofollow">OpenAI Blog</a>.
- Schick, T. et al. (2023). *Toolformer: Language Models Can Teach Themselves to Use Tools*. <a href="https://arxiv.org/abs/2302.04761" class="external text" rel="nofollow">arXiv:2302.04761</a>.
- Patil, S. G. et al. (2023). *Gorilla: Large Language Model Connected with Massive APIs*. <a href="https://arxiv.org/abs/2305.15334" class="external text" rel="nofollow">arXiv:2305.15334</a>.
- Liu, W. et al. (2024). *ToolACE: Winning the Points of LLM Function Calling*. <a href="https://arxiv.org/abs/2409.00920" class="external text" rel="nofollow">arXiv:2409.00920</a>.
- Yao, S. et al. (2022). *ReAct: Synergizing Reasoning and Acting in Language Models*. <a href="https://arxiv.org/abs/2210.03629" class="external text" rel="nofollow">arXiv:2210.03629</a>.

## Примечания

1.  <span id="cite_note-hopsworks_whatis-1">[↑](https://systems-analysis.info/wiki/Function_Calling#cite_ref-hopsworks_whatis_1-0) «What is Function Calling with LLMs?». *Hopsworks*. <a href="https://www.hopsworks.ai/dictionary/function-calling-with-llms" class="external autonumber" rel="nofollow">[1]</a></span>
2.  <span id="cite_note-dark_side_paper-2">↑ <sup>[2,0](https://systems-analysis.info/wiki/Function_Calling#cite_ref-dark_side_paper_2-0)</sup> <sup>[2,1](https://systems-analysis.info/wiki/Function_Calling#cite_ref-dark_side_paper_2-1)</sup> Wu, Z. et al. «The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models». *Proceedings of the 2025 Conference on Empirical Methods in Natural Language Processing*, 2025. <a href="https://aclanthology.org/2025.coling-main.39.pdf" class="external autonumber" rel="nofollow">[2]</a></span>
3.  <span id="cite_note-toolformer_paper-3">[↑](https://systems-analysis.info/wiki/Function_Calling#cite_ref-toolformer_paper_3-0) Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». *arXiv:2302.04761*, 2023. <a href="https://arxiv.org/abs/2302.04761" class="external autonumber" rel="nofollow">[3]</a></span>
4.  <span id="cite_note-openai_fc_announcement-4">↑ <sup>[4,0](https://systems-analysis.info/wiki/Function_Calling#cite_ref-openai_fc_announcement_4-0)</sup> <sup>[4,1](https://systems-analysis.info/wiki/Function_Calling#cite_ref-openai_fc_announcement_4-1)</sup> «Function calling and other API updates». *OpenAI*, 2023. <a href="https://openai.com/index/function-calling-and-other-api-updates/" class="external autonumber" rel="nofollow">[4]</a></span>
5.  <span id="cite_note-gorilla_site-5">[↑](https://systems-analysis.info/wiki/Function_Calling#cite_ref-gorilla_site_5-0) «Gorilla: Large Language Model Connected to Massive APIs». *University of California, Berkeley*. <a href="https://gorilla.cs.berkeley.edu/" class="external autonumber" rel="nofollow">[5]</a></span>
