- Дата публикации
MCP против CLI+Skill: как подружить ИИ‑агента с внутренними API и не сжечь лишние токены
Когда вы запускаете ИИ‑агента в бою, его главный враг — не только плохие промпты, но и накладные расходы. Контекстное окно ограничено, а токены уходят не только на саму задачу, но и на служебный «мусор»: описания инструментов, параметры вызовов, промежуточные ответы.
Команда разработки партнёрских продуктов Городских сервисов Яндекса решила посчитать, сколько именно это стоит. Они сравнили два способа подключить ИИ‑агента к внутренним API: MCP и связку CLI + Skill. Взяли 14 реальных сценариев, две разные модели, прогнали больше 400 запросов по живым внутренним инструментам. И в какой‑то момент всё, что работало, сломалось — и это помогло понять, где каждый подход начинает буксовать.
Ниже — что из этого вышло и как выбрать подход под свои задачи.
Что нового
Команда не просто «подключила агента к API», а построила бенчмарк вокруг двух архитектур:
-
MCP (Model Context Protocol)
- Агент видит инструменты через единый протокол.
- Описания инструментов и схемы передаются в контекст.
- Накладные расходы растут вместе с количеством инструментов и сложностью схем.
-
CLI + Skill
- Агент общается не напрямую с API, а с CLI‑обёртками.
- Навык (Skill) описывает, какие команды и как вызывать.
- В контекст попадают не все детали API, а компактное описание навыка и формата команд.
Что именно сделали:
- Построили бенчмарк на 14 сценариях — это не абстрактные задачи, а реальные внутренние кейсы Городских сервисов Яндекса.
- Прогнали больше 400 запросов через две разные модели.
- Во всех сценариях использовали внутренние инструменты и API, а не игрушечные демо.
- Смотрели не только на качество ответа, но и на стоимость в токенах: сколько уходит на служебные данные и сколько остаётся на полезную работу.
Ключевой результат: при росте числа инструментов и сложности сценариев разница в накладных расходах между MCP и CLI + Skill становится заметной. В какой‑то точке MCP перестаёт быть выгодным, а CLI‑подход выигрывает просто за счёт меньшего контекстного шума.
Как это работает
MCP под капотом
MCP — это протокол, который позволяет ИИ‑агенту работать с внешними инструментами через единый слой описаний.
Что происходит при запросе:
- Агент получает список доступных MCP‑инструментов.
- В контекст попадают:
- описания инструментов,
- схемы входных и выходных данных,
- иногда примеры вызовов.
- Модель на основе этого решает, какой инструмент вызвать и с какими параметрами.
- Результат вызова возвращается и снова попадает в контекст как промежуточный шаг.
Проблема: всё это занимает токены. Чем больше у вас инструментов и чем сложнее схемы, тем дороже обходится каждый шаг. Даже если сама полезная часть ответа небольшая.
CLI + Skill под капотом
Во втором подходе разработчики не раскрывают агенту всю внутреннюю кухню API. Вместо этого они дают ему «словарь команд» — CLI и описывают, как им пользоваться через Skill.
Как это выглядит:
- Для внутренних API пишут CLI‑обёртки: каждая команда решает конкретную задачу.
- Skill описывает:
- какие команды есть,
- какие аргументы нужны,
- как интерпретировать результаты.
- В контекст попадают компактные описания команд и формат вызова, а не полные схемы API.
- Агент генерирует команду, запускает её, получает результат и использует его в ответе.
За счёт этого контекст меньше раздувается служебными данными. Цена — часть логики нужно заранее продумывать и выносить в CLI, а не перекладывать всё на модель.
Где всё сломалось и почему это важно
Во время экспериментов команда столкнулась с моментом, когда отлаженные сценарии начали давать неожиданные результаты. На одних и тех же задачах агент с теми же инструментами внезапно стал ошибаться или тратить заметно больше токенов.
Разбор показал: при определённой сложности сценариев и количестве инструментов модель начинает путаться в длинных описаниях MCP‑инструментов. Она тратит контекст на служебные детали и хуже удерживает саму задачу. В CLI‑подходе этого эффекта меньше, потому что в контексте меньше «шума».
Что это значит для вас
Если вы строите ИИ‑агента для работы с внутренними системами, главный вопрос — куда вы платите токенами: за логику задачи или за служебные описания инструментов.
Из эксперимента Яндекса можно вынести несколько практических правил.
Когда выбирать MCP
Используйте MCP, если:
- У вас мало инструментов и они хорошо описаны.
- Нужна быстрая интеграция с уже существующей экосистемой MCP‑поставщиков.
- Важно, чтобы агент сам разбирался в схемах API и мог строить сложные цепочки вызовов.
- Вы готовы платить дополнительными токенами за более «богатый» контекст инструментов.
Подходит для:
- прототипов и пилотов, где важна скорость запуска;
- команд, которые хотят дать модели максимум свободы в выборе инструментов;
- сценариев, где количество инструментов ограничено и редко меняется.
Не лучший выбор, если:
- у вас десятки и сотни внутренних сервисов;
- схемы запросов и ответов тяжёлые;
- каждое обращение к агенту должно быть максимально дешёвым.
Когда выбирать CLI + Skill
Ставьте на CLI + Skill, если:
- У вас много внутренних API, и вы можете сгруппировать их в осмысленные команды.
- Вы хотите контролировать логику: что именно агент может делать, а что нет.
- Важно снизить накладные расходы на контекст и оставить больше токенов на саму задачу.
Подходит для:
- продакшн‑агентов, которые живут внутри сложной корпоративной инфраструктуры;
- сценариев, где важна предсказуемость и безопасность вызовов;
- задач, где одна команда CLI закрывает целый бизнес‑процесс.
Не лучший выбор, если:
- у вас нет ресурсов поддерживать CLI‑обёртки;
- API часто меняются, а процедуры версионирования плохо отстроены;
- вы рассчитываете, что модель сама будет «исследовать» API и придумывать новые цепочки.
Как принять решение
Команда Яндекса в итоге собрала дерево решений — по сути, чек‑лист выбора подхода. В упрощённом виде логика выглядит так:
- Сколько у вас инструментов?
- До нескольких — можно идти в MCP.
- Десятки и больше — смотрите в сторону CLI + Skill.
- Насколько сложные схемы и ответы?
- Простые и стабильные — MCP ок.
- Сложные, с большим количеством полей — CLI позволит спрятать лишнее.
- Что важнее: скорость интеграции или стоимость запроса?
- Нужен быстрый старт и эксперименты — MCP.
- Важна экономия токенов и устойчивость — CLI + Skill.
- Кто владеет логикой: разработчики или модель?
- Хотите, чтобы модель сама строила цепочки — MCP.
- Нужен жёсткий контроль бизнес‑логики — CLI + Skill.
Место на рынке
Исследование Яндекса не сравнивает конкретные продукты по цене запросов или скорости, зато даёт важный ориентир для тех, кто уже использует крупных поставщиков вроде OpenAI или Anthropic.
Если вы строите агента на базе, например, GPT‑4o или Claude 3, то MCP и CLI + Skill — это два разных способа потратить одни и те же оплаченные токены:
- MCP тратит больше контекста на описания и схемы.
- CLI + Skill тратит больше инженерных часов на подготовку CLI‑слоя, но экономит контекст.
На насыщенном рынке AI‑агентов это превращается в очень прикладной выбор: вы либо платите деньгами за лишние токены, либо временем команды разработки за аккуратный CLI‑слой.
Если вы уже экспериментируете с агентами поверх внутренних API, вывод простой: без бенчмарка на своих задачах вы не увидите реальную цену выбора MCP против CLI + Skill. Команда Городских сервисов Яндекса показала, как такой бенчмарк может выглядеть: 14 сценариев, две модели, сотни запросов и честный разбор, где и почему архитектура начинает трещать по швам.