Даниил Михайлов из команды разработки партнёрских продуктов Городских сервисов Яндекса опубликовал результаты бенчмарка, в котором сравнивались два способа подключения ИИ-агента к внутренним корпоративным инструментам — Tracker, Arcanum и Intrasearch. Всего было прогнано более 400 запросов на 14 сценариях с двумя языковыми моделями.

Контекстное окно современных LLM — ограниченный ресурс. Даже при 200 тысячах токенов значительная часть уходит не на саму задачу, а на служебные данные: описания инструментов, параметры вызовов, промежуточные результаты. Чем больше этих накладных расходов, тем меньше места остаётся для кода, истории диалога и пользовательского запроса. Именно поэтому выбор способа интеграции агента с API напрямую влияет на стоимость и скорость работы.

Тип задачиРекомендуемый подходЭффект
Простой запрос (статус пул-реквеста)MCP с lazy loadingОдин вызов, минимум накладных расходов
Типовая рабочая задача (задача + CI)CLI + Skill оптимизированныйЭкономия 30–50% ресурсов контекста
Сложный многошаговый сценарий (планирование фичи)CLI + Skill с полной документациейВ 5,5 раза экономичнее MCP
Тяжёлые данные (diff на 50+ файлов)MCP с полной загрузкойВыгоднее за счёт уже загруженных описаний
Нужны стриминг, подписки, OAuthMCPСпецифичные возможности протокола

MCP (Model Context Protocol) — открытый стандарт, который позволяет LLM подключаться к внешним сервисам через JSON-описания инструментов. Его главное преимущество — простота подключения по принципу plug-and-play: настроил сервер, и агент автоматически получает список доступных инструментов с их параметрами. Недостаток — разработчик не контролирует ни размер этих описаний, ни формат возвращаемых данных: всё определяет сервер.

CLI + Skill работает иначе. Разработчик пишет CLI-обёртки над API и составляет SKILL.md — markdown-файл с документацией для агента. Агент читает этот файл, выбирает нужную команду и запускает её в shell. Подход требует ручной работы, зато даёт полный контроль над тем, что попадает в контекст: можно сократить документацию до минимума, управлять форматом вывода через флаги командной строки, быстро добавлять новые команды.

Результаты бенчмарка показали, что выбор между подходами зависит от типа задачи. На простых запросах — например, «покажи статус пул-реквеста» — выигрывает MCP с lazy loading: один вызов, минимум накладных расходов. На типовых рабочих задачах вроде «покажи задачу и упавшие проверки в CI» оптимизированный CLI + Skill экономит 30–50% ресурсов. На сложных многошаговых сценариях — «спланируй реализацию фичи по задаче» — CLI + Skill оказался в 5,5 раза экономичнее: полная документация позволяет агенту сразу выбрать нужный инструмент без дополнительных шагов на его поиск. Однако на тяжёлых данных, например при работе с diff на 50 и более файлов, MCP с полной загрузкой снова выгоднее.

Ключевой вывод, который команда сделала на собственном опыте: CLI + Skill не даёт преимущества автоматически. Первая версия документации оказалась слишком раздутой, и MCP выигрывал по расходу токенов. Только после оптимизации SKILL.md — от полной версии со всеми примерами до компактного варианта с именами команд и ссылкой на help — CLI + Skill начал экономить ресурсы. Документация для агента требует такой же инженерной работы, как любой другой интерфейс.

По итогам исследования авторы сформулировали дерево решений: для ежедневных типовых задач — CLI + Skill с оптимизированной документацией; для сложных многошаговых сценариев — CLI + Skill с полной документацией; если агент использует eager loading (все описания инструментов загружаются в контекст заранее) — CLI + Skill чаще оказывается выгоднее; если нужны специфичные возможности MCP вроде стриминга, подписок или OAuth — MCP. Качество ответов агента при этом оказалось сопоставимым во всех режимах: исследование измеряло не точность, а стоимость решения.