Bash-обертки потребляют больше токенов, чем протокол Model Context Protocol (MCP) с семью схемами, в ходе теста из 12 вопросов. Это показывает, что оболочка (shell) не является тем дешевым и быстрым решением, которым ее считают многие инженеры. Использование токенов напрямую конвертируется в затраты для агентов на базе больших языковых моделей (LLM), работающих в масштабе.

Эксперимент, изменивший правила игры

Разработчик сравнил четыре способа, которыми LLM-агент мог получать данные о судах:

  • MCP — семь схем инструментов, работающих через Model Context Protocol.
  • Bash + curl (cold) — прямой вызов оболочки без дополнительных промптов.
  • Bash + curl (warm) — тот же вызов оболочки плюс системные промпты для обеспечения безопасного использования.
  • Специализированный CLI-инструмент — специально разработанный интерфейс командной строки.

Все четыре варианта прошли через диалог из 12 вопросов. Потребление токенов, которое напрямую влияет на счета за API, распределилось следующим образом:

  • MCP: 109 779 токенов
  • Bash + curl (cold): 158 021 токен
  • Bash + curl (warm): 178 577 токенов

Данные по специализированному CLI-инструменту не разглашались, но два варианта с Bash уже обошли MCP по затратам.

Почему оболочка обошлась дороже протокола

Каждый инструмент Bash требовал примерно 2 700 токенов на вспомогательные промпты (harness prompts) — инструкции, которые объясняют агенту, как безопасно вызывать оболочку, парсить вывод и обрабатывать ошибки. Одни только эти промпты превышают суммарный вес всех семи схем MCP.

Затраты не ограничиваются только начальным вызовом. В рабочей среде тот же агент при запуске предварительно загружал 11 MCP-серверов, потребляя 19 800 токенов еще до поступления первого запроса пользователя. Затем на каждом шаге агент заново перечитывал каждую схему с каждого сервера, поэтому даже на такой тривиальный запрос, как «который час?», приходилась стоимость описания всех остальных инструментов.

Скрытая утечка ресурсов при жадной загрузке

Когда LLM-агент использует жадную загрузку (eager loading) каждого сервера инструментов на каждом шаге, счет за токены резко возрастает. Эксперимент показал, что «реальная» стоимость использования Bash заключается не в самой команде оболочки, а в окружающем контексте, который необходимо передавать модели каждый раз.

  • Инструменты с фиксированной стоимостью (схемы MCP) добавляют предсказуемые накладные расходы в токенах на каждом шаге.
  • Динамические полезные нагрузки (ответы curl) создают растущий «долг», который масштабируется в зависимости от длины диалога и объема данных.

Таким образом, оболочка, которая на первый взгляд кажется «бесплатной», на самом деле накладывает более высокий и переменный «налог» в токенах.

Что делать инженерам ИИ дальше

  • Внедряйте ленивую загрузку (lazy loading). Загружайте сервер инструментов только тогда, когда его схема действительно необходима, и храните его в памяти между шагами, а не перечитывайте каждый раз.
  • Рассматривайте схемы инструментов как фиксированные расходы на каждый шаг. Планируйте бюджет токенов, исходя из известного размера определений MCP, а не полагайте, что команды оболочки бесплатны.
  • Пересмотрите предположение «оболочка = дешево». Профилируйте использование токенов для каждого пути использования инструментов перед тем, как утвердить архитектуру.
  • Используйте структурированные инструменты для небольших моделей. Даже при ограниченном окне контекста четко определенные схемы улучшают рассуждения, преобразование единиц и обработку ошибок.

Итог: стоимость диктует экономика токенов, а не дизайн протокола. Управление тем, когда и как загружаются серверы инструментов, может сэкономить десятки тысяч токенов в рамках одного диалога, напрямую снижая операционные расходы.

Источник: https://dev.to/clarkbw--/enabling-bash-costs-more-context-than-seven-mcp-tool-schemas-2h82