TGViewer
Python Portal Python Portal @pythonportal · 50.3K subscribers
Post #5987 4.27K
Function calling и MCP для LLM — простое и понятное объяснение:

До появления MCP доступ к инструментам полностью строился на function calling, а каждую интеграцию приходилось настраивать вручную.

MCP стандартизировал этот интеграционный слой, но на нижнем уровне модель по-прежнему формирует тот же tool call.

На схеме ниже показано, как работает каждый из подходов.

При использовании function calling модель никогда ничего не выполняет самостоятельно:

> Модель получает промпт и определения доступных функций.
> Она определяет, какой инструмент подходит, и формирует в своём ответе запрос на вызов инструмента.
> Процедура на нашей стороне разбирает этот запрос и подготавливает фактический вызов функции.
> Бэкенд-сервис запускает инструмент и возвращает результат модели.

Всё это находится внутри нашего собственного стека.

> Мы хостим инструмент.
> Мы пишем логику, которая сопоставляет запрос на вызов инструмента с конкретной функцией и её параметрами.
> И мы выполняем этот вызов.

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

MCP стандартизирует эту интеграцию.

Вместо того чтобы вручную подключать каждый инструмент, MCP:

> Определяет единый протокол для объявления, хостинга и предоставления инструментов.
> Делает инструменты доступными для обнаружения вместе со схемами, которые клиент может читать напрямую.
> Требует подтверждения перед запуском инструмента.
> Разделяет сторону, которая реализует инструмент, и сторону, которая его использует.

После интеграции MCP-сервера для подключения его инструментов не требуется писать ни одной строки Python-кода.

Сервер добавляется один раз, а всё, что происходит дальше, следует протоколу, который обрабатывают MCP-клиент и модель.

> Они определяют нужный MCP-инструмент.
> Подготавливают входные аргументы.
> Вызывают инструмент через сервер.
> Используют возвращённый результат для генерации ответа.

Function calling и MCP — это не конкурирующие подходы, а два этапа одного и того же вызова инструмента.

> Function calling отвечает за выбор инструмента моделью.
> MCP отвечает за всё, что происходит после выбора: поиск инструмента, проверку его схемы, получение подтверждения и запуск.

Когда агент с помощью function calling решает: «Мне нужно выполнить поиск в интернете», это решение проходит через MCP, который выбирает подходящий инструмент среди зарегистрированных инструментов веб-поиска, вызывает его и возвращает результат.

Разумеется, за такое удобство приходится платить.

При интеграции MCP-сервера определения всех его инструментов загружаются в контекст. Тяжёлый сервер может занять большую часть контекстного окна схемами инструментов ещё до того, как агент выполнит хотя бы один вызов.

Мы подготовили подробное руководство с кодом о том, как решить именно эту проблему: ограничить загрузку инструментов только реально используемыми группами, выбирать отдельные инструменты вместо подключения всего сервера и сократить использование контекста на 80–90% в рабочей конфигурации.

👉 @PythonPortal
  • 👍 8
  • ❤ 5
More from @pythonportal
  1. Oct 4, 2026«Изучение математики. Почему память, практика и техника важнее таланта» Чтобы освоить мате…
  2. Oct 3, 2026«Как обучить нейросеть» — краткий конспект лекций курса MIT по глубокому обучению за 2024…
  3. Oct 3, 2026Tencent выпустила новую модель для перевода, которая, по их словам, обходит Google Transla…
  4. Oct 2, 2026Один из лучших ресурсов по производительности SQL: use-the-index-luke.com 👉 @PythonPortal
  5. Oct 2, 2026Многие постоянно путаются в этом: В чём на самом деле разница между 100 МБ/с и 100 Мбит/с?…
  6. Oct 1, 2026Исследователи MIT математически доказали, что ChatGPT устроен так, что может затягивать по…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →