Bashラッパーは、12問のテストにおいて7つのスキーマを持つModel Context Protocol (MCP) よりも多くのトークンを消費しました。これは、シェルが多くのエンジニアが考えているような「安価な近道」ではないことを示しています。トークンの使用量は、大規模に運用される大規模言語モデル(LLM)エージェントにとって、直接的なコストに直結します。

予想を覆した実験

ある開発者が、LLMエージェントが船舶データを取得する4つの方法を測定しました。

  • MCP – Model Context Protocolの背後でホストされている7つのツールスキーマ。
  • Bash + curl (cold) – 追加のプロンプトなしの生のシェル呼び出し。
  • Bash + curl (warm) – 安全な使用をガイドするためのシステムプロンプトを含む、同じシェル呼び出し。
  • Dedicated CLI tool – 特定の目的のために構築されたコマンドラインインターフェース。

これら4つすべてを用いて12回の対話を行いました。API料金を左右するトークン消費量は以下の通りでした。

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

専用CLIツールの数値は公開されませんでしたが、2つのBashバリアントはすでにMCPのコストを上回っていました。

なぜプロトコルよりもシェルの方がコストが高かったのか

各Bashツールには、エージェントに対してシェルの安全な呼び出し方法、出力の解析方法、およびエラー処理方法を指示する「ハーネスプロンプト(harness prompts)」として、約 2,700トークン が必要でした。これらのプロンプトだけで、7つのMCPスキーマすべてを合わせた合計トークン量を超えています。

コストは最初の呼び出しだけではありません。本番環境では、同じエージェントが起動時に 11個のMCPサーバー を事前に読み込み、最初のユーザーのクエリが届く前に 19,800トークン を消費していました。さらに、ターン(やり取り)ごとにエージェントはすべてのサーバーからすべてのスキーマを再読み込みするため、「今何時?」といった些細なリクエストであっても、他のすべてのツールの説明分のトークンコストを支払うことになります。

イーガーローディング(即時読み込み)に潜む隠れた消耗

LLMエージェントがターンごとにすべてのツールサーバーをイーガーローディング(eagerly loads)すると、トークン料金は劇的に膨れ上がります。実験の結果、Bashを使用する「真の」コストはシェルコマンドそのものではなく、毎回モデルに送信しなければならない周囲のコンテキストであることが示されました。

  • 固定コストのツール (MCPスキーマ) は、ターンごとに予測可能なトークンのオーバーヘッドを追加します。
  • 動的なペイロード (curlのレスポンス) は、会話の長さやデータサイズに応じて増大する負債を追加します。

したがって、表面上は「無料」に見えるシェルも、実際にはより大きく変動的な「トークン税」を課しているのです。

AIエンジニアが次にすべきこと

  • レジーローディング(遅延読み込み)を採用する。 ツールスキーマが実際に必要になったときにのみツールサーバーを読み込み、毎回読み直すのではなく、ターンをまたいでメモリに保持するようにします。
  • ツールスキーマをターンごとの固定費用として扱う。 シェルコマンドが無料であると仮定するのではなく、既知のMCP定義のサイズに基づいてトークン予算を計画してください。
  • 「シェル=安価」という仮定を再評価する。 設計を確定させる前に、各ツールパスのトークン使用量をプロファイリングしてください。
  • 小規模モデルには構造化されたツールを組み込む。 コンテキストウィンドウが限られている場合でも、適切に定義されたスキーマは推論、単位変換、およびエラー処理を向上させます。

結論として、コストを決定するのはプロトコルの設計ではなく、トークンの経済性(token economics)です。ツールサーバーをいつ、どのように読み込むかを管理することで、会話から数万トークンを削減でき、運用コストを直接的に下げることができます。

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