
2026/07/13 3:25
Claude Code はプロンプトを読み込むまでに約3万トークンを消費し、OpenCodeは7,000 トークンである。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
主要な知見は、セッションの段階と設定の複雑性に 따라 Claude Code と OpenCode の間でのトークン使用ダイナミクスが著しく異なることを示しています。標準的な設定において、Claude Code は非効率的なシステムプロンプト、キャッシュ管理のために数万のトークンを再記述し、堅牢なフレームワークテンプレートにより引き起こされる大規模な初期オーバーヘッド(約 33,000 トークン)を被る一方、OpenCode の床は低い(約 7,000 トークン)ため、大きな差を生じています。ただし、Fable 5 のような新しいモデルではこの隙間が縮小します。特に、複雑な本番環境設定においては、OpenCode 自身のツール呼び出しのシリアライゼーションとスキーマサイズによる影響で、最初のリクエストでより高いトークン負荷(Claude の約 75,000 トークンに対し、約 90,817 トークン)を被り、その後のリクエストで安定化するまで要請されます。新しいモデルは命令セットのサイズを削減しますが(例:27k から 10k クラクターへ)、特定のコストドライバーは残っています:対話履歴と乗算される延長された思考ブロック、「フレームワーク税」として作用する大規模な静的フレームワークテンプレート(例:AGENTS.md)、およびバーストコストを増幅するサブエージェントのファンアウト構造。さらに、本研究では EU AI Act のログ記録要件への準拠を確保し完全性を保証するために、キャッシュの書き込みと課金構造の違い(例:キャッシュされた読み取り対課金されるプレミアム書き込み)を検証できるよう、185 件のレコードを捕捉した SHA-256 ハッシュ連鎖監査軌跡を利用しました。
Text to translate:
The primary findings indicate that token usage dynamics vary significantly between Claude Code and OpenCode depending on the session stage and configuration complexity. While Claude Code incurs a massive initial overhead (~33,000 tokens) compared to OpenCode's low floor (~7,000 tokens) in standard setups—driven by inefficient system prompts, rewriting tens of thousands of tokens for cache management, and rigid framework templates—this gap narrows with newer models like Fable 5. Notably, in complex production configurations, OpenCode's first request can incur a higher token load (~90,817 tokens vs. ~75,000 for Claude) due to its own serialization of tool calls and schema sizes before stabilizing on subsequent requests. While newer models reduce instruction set sizes (e.g., from 27k to 10k characters), specific cost drivers remain: extended thinking blocks that compound with conversation history, large static framework templates (e.g., AGENTS.md) that act as a "framework tax," and subagent fan-out structures that multiply bootstrap costs. Additionally, the study utilized a SHA-256 hash-chained audit trail capturing 185 records to ensure integrity and support compliance with EU AI Act logging requirements, verifying that both architectures handle cache writes and billing structures differently (e.g., cached reads vs. billed premium writes).
本文
Claude Code と OpenCode のパフォーマンス比較:「飢え」とキャッシュの課題をデータで精査
Claude Code と OpenCode を同一モデル、同一マシン、同一タスクで対比させ、双方がやり取りしたすべてのデータを精査した結果、以下のような重大な差異が明らかになりました。
1. 主要な事実:Claude Code の「飢え」と非効率性
⚠️ プロンプト負荷の圧倒的な差(「飢え」)
- テスト概要: 同等条件下でプロンプトを受け取る前に、両者に「1 行の返信だけ」という単純なタスクを課し、消費トークンを計測。
- Claude Code: システムプロンプトやツールスキーマ、足場(scaffolding)を含め、約 33,000 トークン の負荷を消費。
- OpenCode: 約 7,000 トークン のみで動作。
- モデルによる相違:
- 旧模型(Sonnet 4.5)では差は約 4.7 倍。
- 新しいモデル(Claude Fable 5)では、システムプロンプトが大幅に縮小され、差は約 3.3 倍 まで縮まりました。
- 結論: 新しいモデルでも Claude Code は OpenCode に比べて依然として**「飢えている**(負荷が高い)」点で変わりありません。(※ただし、倍数比はモデル依存です。)**
⚠️ キャッシュ効率が著しく低い
- OpenCode の動作:
- リクエストプレフィックスはバイト単位で完全に同一。
- セッションごとの負荷を 1 回だけキャッシュに書き込み、以降は安価な読み取り(pennies)のみ。
- Claude Code の動作:
- セッション途中に何万ものプロンプトキャッシュトークンを何度も書き直しています。
- 同じタスクにおいて、OpenCode よりも最大 54 倍も多い キャッシュトークンを書き込んでいます。
- 影響: キャッシュへの書き込みには割増料金が適用されるため、これが使用量ダッシュボードの急上昇の原因です。
⚠️ 設定ファイルによる膨大化
- 指示書ファイルの影響: 「AGENTS.md」や「CLAUDE.md」などの約 72KB のファイルは、すべてのリクエストに対して平均 20,000 トークン の追加コストを負担させます。
- MCP サーバーの影響: さらに 5 つの小さな MCP サーバーを追加すると、負担がさらに 5,000〜7,000 トークン 増加します。
- 初期状態: ユーザーが入力を開始する前に、設定ファイルとサーバーによるプロンプト深さはすでに 75,000〜85,000 トークン に達しています。
⚠️ サブエージェントがコストを爆発的に増大させる
- ケース: 元々 121,000 トークンのコストで処理できた小さなタスクを、2 つのサブエージェントに振り分けました。
- 結果: 総トークン数は 513,000 トークン に跳ね上がりました(約 4.2 倍)。
- 理由: 各サブエージェントが独自に「初期化コスト(ブートストラップ)」を支払う必要があり、かつ親プロセスがそのログ(転記)を消費するためです。
✅ Claude Code の唯一の利点:マルチステップタスクでの集約効率
- 現象: マルチステップタスク全体では、Claude Code のトークン数が OpenCode よりも低い結果が出た場合もあります。
- 理由:
- Claude Code: ツールコールをバッチ処理してリクエスト数を減らしているため。
- OpenCode: 小さい基本ライン(ベースライン)コストを、各回ごとに再支払っているため。
- 結論: 「計器のスタート位置(初期負荷)」が高い Claude Code は、セッションが長く展開するほど有利に傾く可能性があります。
2. 測定方法論とテスト条件
🔍 なぜこの厳格な測定が必要か?
- トークンのオーバーヘッドは**コスト、レイテンシ、コンテキスト予算(記憶容量)**のすべてに影響します。
- ハネス層による負荷トークンは、実際にコードを書くための作業領域から奪われています。
- 企業環境での運用において、EU AI アクテ第 12 条に準拠し「エージェントが実際何を送っているか」をデータに基づいて説明できる必要があります。
🛠 ロギング方法
各ハネスとモデルの間にロギングプロキシを介挿し、以下の情報を記録しました。
- ハネスから出力された正確な JSON ペイロード(システムブロック、ツールスキーマ、メッセージなど)。
- API から返された使用量ブロック(入力トークン、キャッシュ書き込み/読み込み数、出力トークン数)。
📝 テスト条件の隔離
- ベースライン設定: MCP サーバーなし、ユーザー設定なし、記憶機能なし。指示書ファイルもない空のワークスペースで動作確認。
- モデル: 最初は
で実施し、差異がモデル依存であることを示唆するため、claude-sonnet-4-5
でも検証。claude-fable-5 - タスク構成:
- T1: 「OK」と返信するだけの単純タスク(固定オーバーヘッド分離)。
- T2: ファイル読み込み要約。
- T3: FizzBuzz やチェッカーを用いた「書き込み−実行−テスト−修正」ループ。
- ゼロツールバリアント: ツールを完全に無効化し、プロンプトの純粋な重さを比較。
📉 数値発表前の誠実な注記
- ローカルゲートウェイ(オンプレミス)を介した約 6,200 トークンの定数は、すべての計量値から控除済み。
- トークン換算比率は各ハネス固有の測定値(4.1〜4.4 文字/トークン)を使用。
3. Part I: The Floor(基本ライン・床面)分析
「OK」と言うだけの固定オーバーヘッド
タスク内容は 22 文字のみでしたが、初期のリクエストサイズには巨大な差異がありました。
| コンポーネント | Claude Code | OpenCode |
|---|---|---|
| システムプロンプト | 27,344 文字(3 ブロック) | 9,324 文字(1 ブロック) |
| ツールスキーマ | 27 つのツール、99,778 文字 | 10 つのツール、20,856 文字 |
| 足場 (Scaffolding) | ブロック 7,997 文字 | なし |
| ペイロード | 22 文字 | 22 文字 |
| 1 ターンのトータル(キャリブレーション済み) | ~32,800 トークン | ~6,900 トークン |
- OpenCode: システムブロック 1 つ + テーブルツール 10 つ + ユーザープロンプトのみという最小構成。
- Claude Code: バックグラウンドエージェントやオーケストレーションスイート(27 ツール)を含む「プラットフォームによるブートストラップ」。ユーザー入力以前に、3 つのリマインダーブロックとカタログが含まれます。
⚙️ ツールをゼロにした場合(純粋なハネスのみ)
ツール定義を取り除くと、システムプロンプトのコストが浮き彫りになります。
- Claude Code: 26,891 文字(約 6.5k トークン)。
- OpenCode: 8,811 文字(約 2.0k トークン)。
- 結論: ツールなしでも、Claude Code の指示セットは OpenCode の3 倍以上の規模です。これはトーンルールや安全ガイドラインなどの「行動指針」によるものです。
📂 ファイル読み込み要約タスク(T2)
ファイルを読み込み要約する単純タスクでも差異が現れました。
- Claude Code: 6 回の HTTP リクエストで、累計約 199,000 トークン の入力。
- OpenCode: 4 回のリクエストで約 41,000 トークン。
- 理由: OpenCode はキャッシュ読み取り(安価)のみを使用します。一方、Claude Code は大きなベースライン(33k トークン)を各ターンで再送するためです。
🔄 マルチステップタスクにおける乖離の収束(T3)
「書き込み−実行−テスト−修正」ループでは、リクエスト数による負荷差が相殺され、結果は収束しました。
| 指標 | Claude Code | OpenCode |
|---|---|---|
| モデルリクエスト数 | 39(+1 タイトルコール) | ターンごとに 1 回(計 9 回) |
| 処理スタイル | 並列バッチ処理(1 ルウンドトリップ) | シリアル化(ターンのみ) |
| 累計入力トークン数 | ~121,000 トークン | ~132,000 トークン |
- Claude Code: 約 33k の大きなベースラインを 3 回支払う。
- OpenCode: 約 7k の小さなベースラインを 9 回支払う。
- 結果: 大きなベースラインを持つハネスがバッチ処理すれば、小さなベースラインのシリアル化と結果は同等地点に到達します。
4. Part II: The Multipliers(増幅要因)
現実のセッションでは、以下のような要素によって負荷はさらに増幅されます。
📄 Multiplier 1: 指示書ファイル(Instruction File)
生産リポジトリにある 72KB の AGENTS.md を読み込む場合。
- 影響: 両ハネスとも約 +20,000 トークン の増加。
- OpenCode: 計量総数 13,152 → 33,336 トークンへ。
- Claude Code: 39,005 → 59,243 トークンへ。
- 非対称性: Claude Code は AGENTS.md を無視する傾向があり、CLAUDE.md と名付けるとのみ読みます。一方 OpenCode は両方をシステムプロンプトに注入します。
🚀 Multiplier 2: MCP サーバー
公開かつ資格情報なしの小さなサーバーを接続した場合。
- 影響: スキーマサイズにより負荷が増加(Claude Code: +4,900 トークン / OpenCode: +6,967 トークン)。
- 実態: 本番環境で豊富な API を実装している場合は、さらに大きな負荷となります。
📝 Multiplier 3: フレームワークテンプレート
ストーリー駆動型のワークフローフレームワークを使用する場合。
- 影響: テンプレート自体は約 2,100 トークンですが、セッション中のすべてのリクエストに再持ち運ばれます。
- 計算式:
でコストが積み重なります。テンプレートサイズ × リクエスト数
🧠 Multiplier 4: サブエージェント(Subagents)
作業をサブエージェントに委譲した場合。
- 影響: 最も急激な増幅。約 4.2 倍のコスト増加。
- 理由: 各サブエージェントが独自に「ブートストラップ」を支払う必要があり、親プロセスもログを消費するため。
- OpenCode: システムプロンプトとツールの削減版のみを含み軽量ですが、ゲートウェイを通る設計上の違いから正確な比較は困難です。
💭 Multiplier 5: 拡張思考(Extended Thinking)
思考出力は入力価格の 5 倍で課金され、対話履歴に保持されます。
- 現状: ギャトウェイの独自ポリシーにより、どちらのハネスもこの機能を有効化できませんでした。
- 注意点: 思考重視の作業では、前述のすべての増幅要因と相乗効果を生じます。
5. 「すべて」の数値(The Everything Number)とキャッシュ経済論
📊 架橋測定結果(実際の運用設定)
実用的な構成(MCP サーバー 11 個+72KB 指示書ファイルなど)で比較した結果。
- OpenCode: 最初の書き込み(コールド)で計量値 90,817 トークン。
- Claude Code: 約 75,000 トークン の 311KB ペイロード(118 ツール)。
- 結論: OpenCode の床面に対する構成の増幅率は約 12 倍。「ハネスが床面を決め、あなたの設定が請求額を決めます。」
💰 キャッシュ経済論(Cache Economics)
プロンプトキャッシングは単位を変えますが、結論は変わりません。
- 書き込みコスト: TTL(永続性期限)より長い一時停止があると再支払われます。
- 読み取りコスト: リクエスト数に比例して急激に膨張します(特にサブエージェントやシリアルツールループ)。
- コンテキスト消費: キャッシュ割引を受けず、85k トークンのブートストラップはコンテキストの 40% を超えて単一のリクエストで占領します。
🔒 キャッシュの安定性:決定的な違い
キャッシングが有効なのは、データセット内のプレフィックスが安定している場合のみです。
- OpenCode: すべてのリクエストでバイト単位での同一プレフィックスを発行。キャッシュヒット率 100% に近く、セッション途中の再書き込みはゼロです。
- Claude Code: セッションごとに異なるリクエストクラス(ウォーンプローブ、メイン対話、サブエージェントコール)を発生させます。
- 結果として、最大 54 倍ものキャッシュ書き込みが発生します。
- 新しいモデル(Fable 5)でもこのパターンは継続し、約 52 倍の差が出ました。
⚠️ 結論: 「Claude Code を使用した際の使用量メーターが劇的に上昇する」一方で OpenCode は平準化される場合、その最も可能性の高いメカニズムは**「ハネスによるプレフィックスの不安定性」**です。
6. 品質に関する議論と監査
⚖️ コスト vs 品質
- 「出力が良ければ多額の支払いも理にかなっている」のが前提ですが、今回の測定では双方すべてのタスクを正確に完了しました。
- トークンのギャップは**「同一の結果に対するコストの違い」**であり、これは測定可能です。
- プレミアム費用が品質を買うのかは別問題ですが、今回の実験装置ではそれが証明されませんでした。
- 重要な知見: セッション途中にバイト同一のキャッシュプレフィックスを書き直しても、コード品質は一切向上しません(同じコンテンツを割増料金で再度支払うだけです)。
📜 監査ログと信頼性(Dogfooding)
- この実験は、収集された 185 のリクエスト/レスポンス記録すべてを SHA-256 ハッシュチェーンで連結した監査軌跡として公開しました。
- これは EU AI アクテ第 12 条に準拠し、エンドツーエンドで検証可能な改ざん検知ログです。
7. まとめと再現性
🔑 結論
- Claude Code は依然として「飢えている」: 新しいモデルでもプロンプト負荷は OpenCode よりも高く、キャッシュ非効率性が著しい。
- 設定は請求額を決定する: MCP サーバーや指示書ファイルなど、ユーザーの設定が初期コスト(床面)だけでなく、セッション全体の増幅率に直結する。
- キャッシュの不安定性は致命的: Claude Code は同じタスクにおいてプレフィックスを変化させるため、キャッシュ効率が極端に悪い。
🛠️ 再現方法
測定装置は約 200 行の Node スクリプトで構成されており、以下の手順で再現可能です。
- 設定:
を指し、ハネスに新しい設定ディレクトリと空のワークスペースを与える。ANTHROPIC_BASE_URL - 追加: 指示書ファイル、MCP サーバー、ワークフローを一つずつ追加し、境界を観察する。
- 検証: トラフィックがゲートウェイを通じて通っている場合、裸のリクエストでエンベロープを測定し、実際に回答しているモデルを確認する。
「先週の水曜日にモデルに正確に何を送ったのか」を説明できない場合は、埋め込むべきギャップです。 トークン会計はそこから自動的に付随して出てきます。