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
