在一次 12 个问题的测试运行中,Bash 封装器消耗的 Token 比具有七个 Schema 的 Model Context Protocol (MCP) 还要多,这表明 Shell 并不是许多工程师认为的那种廉价捷径。对于大规模运行的大语言模型 (LLM) 智能体而言,Token 使用量直接转化为成本。

颠覆认知的实验

一位开发者测量了 LLM 智能体获取船舶数据的四种方式:

  • MCP – 通过 Model Context Protocol 托管的七个工具 Schema。
  • Bash + curl (cold) – 无额外提示词的原始 Shell 调用。
  • Bash + curl (warm) – 相同的 Shell 调用,外加引导安全使用的系统提示词。
  • 专用 CLI 工具 – 专门构建的命令行界面。

这四种方式都经过了 12 轮对话测试。直接影响 API 账单的 Token 消耗情况如下:

  • MCP: 109,779 tokens
  • Bash + curl (cold): 158,021 tokens
  • Bash + curl (warm): 178,577 tokens

专用 CLI 工具的数据未公开,但两种 Bash 变体的消耗已经超过了 MCP。

为什么 Shell 的成本比协议更高

每个 Bash 工具大约需要 2,700 个 Token 的“脚手架提示词 (harness prompts)”——即告诉智能体如何安全地调用 Shell、解析输出以及处理错误的指令。单是这些提示词的总量就超过了所有七个 MCP Schema 的总 Token 重量。

成本不仅仅在于初始调用。在生产环境中,同一个智能体在启动时会预加载 11 个 MCP 服务器,在第一个用户查询到达之前就已经消耗了 19,800 个 Token。随后,在每一轮对话中,智能体都会重新读取每个服务器上的每个 Schema,因此即使是像“现在几点了?”这样微不足道的请求,也必须支付所有其他工具描述的 Token 成本。

预加载 (Eager Loading) 带来的隐形消耗

当 LLM 智能体在每一轮都预加载所有工具服务器时,Token 账单会剧烈膨胀。实验表明,使用 Bash 的“真实”成本不在于 Shell 命令本身,而在于每次必须传输给模型的上下文环境。

  • 固定成本工具 (MCP schemas) 每轮会增加可预测的 Token 开销。
  • 动态负载 (curl responses) 会增加不断增长的债务,其规模随对话长度和数据大小而变化。

因此,表面上看起来“免费”的 Shell 实际上征收了更大且不确定的 Token 税。

AI 工程师接下来的行动建议

  • 采用延迟加载 (Lazy Loading)。 仅在实际需要其 Schema 时才加载工具服务器,并将其保留在内存中以供后续轮次使用,而不是每次都重新读取。
  • 将工具 Schema 视为每轮固定的开销。 根据已知的 MCP 定义大小来规划 Token 预算,而不是假设 Shell 命令是免费的。
  • 重新评估“Shell = 廉价”的假设。 在确定设计方案之前,对每种工具路径的 Token 使用情况进行性能分析 (Profile)。
  • 针对小模型使用结构化工具。 即使上下文窗口有限,定义良好的 Schema 也能提高推理、单位转换和错误处理的能力。

核心结论:决定成本的是 Token 经济学,而非协议设计。通过管理工具服务器加载的时机和方式,可以从单次对话中节省数万个 Token,从而直接降低运营支出。

来源:https://dev.to/clarkbw--/enabling-bash-costs-more-context-than-seven-mcp-tool-schemas-2h82