エージェントが1回に何トークン送っているかを、ログ用プロキシを挟んで実測する(Claude Code と OpenCode の比較)
ANTHROPIC_BASE_URL を手元のログ用プロキシに向けると、ハーネスが API に送る中身(システムプロンプト、ツール定義、AGENTS.md、MCP)をそのまま見られる。Systima の実測では、同じ作業でも送る量に数倍の差が出た。
解決する問題
- 「なぜかすぐ上限に達する」「料金が思ったより高い」の原因が分からない
- AGENTS.md、MCP、サブエージェントがそれぞれ何トークン食っているのか見えない
- ツールを乗り換えるべきか判断する材料がない
やり方
- API とハーネスの間に、リクエストを記録して転送するだけのプロキシを立てる(Systima は測定用コードを公開している)
- ハーネスの送り先をプロキシに向けて起動する
bash
ANTHROPIC_BASE_URL=http://localhost:8787 claude -p "README を要約して"- 記録したリクエストで、システムプロンプト・ツール定義・会話・キャッシュの書き込み量を比べる
- 条件を1つずつ変えて測り直す(AGENTS.md の有無、MCP サーバーの数、サブエージェントの有無)
Systima の測定結果(2026-07 時点)
- 最初の1ターン: Claude Code 約3.3万トークン(ツール27個)、OpenCode 約7千トークン(ツール10個)
- 72KB の AGENTS.md は、リクエストのたびに約2万トークン増やす
- MCP サーバー5つで 5〜7千トークン増える
- サブエージェント2つを使った作業では 12.1万 → 51.3万トークン
- Claude Code はセッションの途中でキャッシュを書き直すことがあり、キャッシュ書き込みが最大54倍多かった
- 測定時の Claude Code 2.1.207 は AGENTS.md を読まず CLAUDE.md だけを読んだ。
-p(print モード)では--mcp-configを付けないと.mcp.jsonが無視された - (いいね元の @pidotdev は「Pi は初期状態で1.2k トークン未満」と紹介している)
減らし方
- AGENTS.md/CLAUDE.md は短くし、詳細は必要な時に読ませる(AIコーディング: 肥大化した AGENTS.md を「サブエージェント3案」で整理させるプロンプト)
- 使わない MCP は外す、サブエージェントは「大きく読んで小さく返す」用途に絞る(サブエージェントは「入力が大きく出力が小さい」処理だけに委譲する)
注意点
- 数字は測定時のバージョン・作業での値。ハーネスの更新で大きく変わるので、自分の環境で測り直す
- プロキシのログには API キーやコードがそのまま残る。手元だけで動かし、ログは使い終わったら消す
- 少ないトークン=良い結果ではない。同じ作業の成功率と合わせて比べる
出典
- @pidotdev · 2026-07-13
- Systima「Claude Code vs OpenCode token overhead」: systima.ai
- 測定用リポジトリ: github.com