Claude Codeのトークンログは使用量を2.5x過大計上します。正しい数え方はこれです
更新日 November 3, 2026 · 初回公開 November 3, 2026
Claude Codeは、返信がストリーミングされる間に、同じアシスタントメッセージをログに何度も書き込みます。10月のusage行をすべて合計すると、213億トークン、定価換算の価値は$12,438になりました。各メッセージを1回だけ数えると、84億トークンで$4,323でした。生の合計は、トークンで約2.5倍、ドルで約2.9倍の過大計上になります。
2026年11月3日公開 · Claude Codeのトランスクリプト、2026年10月1日〜11月3日(UTC、11月1日〜3日は途中まで)
なぜ1つのメッセージが何度も現れるのですか?
Claude Codeのトランスクリプト(~/.claude/projects/.../*.jsonl)の各アシスタントエントリには、入力、出力、キャッシュ書き込み、キャッシュ読み取りのトークン数を持つusageオブジェクトが含まれます。私たちのログでは、同じmessage.idとrequestIdの組が複数の行に現れ、後の行ほど出力数が大きくなっていました。原因をすべて追跡したわけではありません。このパターンは、返信がストリーミング中に書き込まれていることと整合します。原因が何であれ、全行を合計すると同じリクエストを複数回数えることになります。対象期間の175,884行のusage行のうち、異なるメッセージは70,592件だけでした。
生の合計はどれくらい間違っていますか?
生の合計は、トークンで2.5倍、ドルで2.9倍高くなっています。ドルのほうがトークンより膨らむのは、繰り返された行が、より高価なトークンの種類に偏っていたことを意味します。これ以上の内訳は調べていません。
先頭行だけを残すのも間違いな理由
分かりやすい対策は、各メッセージの先頭行を残すことです。しかし先頭行は部分的なスナップショットなので、出力を過少に数えてしまいます。私たちは、同じメッセージIDとリクエストIDを持つすべての行について、各フィールドの最大値を残しています。
差はモデルによって異なります。Claude Haiku 4.5は出力トークンのほぼ100%を失い、Claude Fable 5.1は0.0%でした。ドルへの影響は、ここでは小さいものでした($4,297に対して$4,323、約0.6%)。私たちのトークン量に占める出力の割合が小さかったからです。書き込みが多く読み取りが少ないワークロードなら、影響はもっと大きくなります。
エージェントのログが誤解を招く、ほかの3つのパターン
- コスト列がゼロ。 OpenCodeは同じ期間に4,938件のアシスタントメッセージ、8,240万の入力トークン、2億7,970万のキャッシュ読み取りトークンを記録しましたが、無料のモデル経路で動いていたため、すべてのメッセージのコストが0になっています。記録されたコストがゼロでも、使用がゼロという意味ではありません。トークンと、その背後にある無料枠は実在します。
- 自分の期間のものではないカウント。 Antigravityの会話ファイルには、10月だけでなく各会話の全期間のモデル呼び出し回数が入っています。10月30日に触った会話には、9月からの履歴も含まれます。
- 動き続けるログ。 測定している間も、私たち自身のセッションがログに書き込んでいました。数分違いの2回の実行で、メッセージ数に約0.1%の差が出ました。期間を固定し、スナップショットを取った時刻を明記してください。
数え方
- 2026年10月1日から11月3日(UTC)の間で、
usageオブジェクトを持つアシスタントエントリを読みます。合成のプレースホルダーメッセージは除外します。 - 各エントリを
message.idとrequestIdの組でキー化します。どちらもなければ、ファイルとエントリIDでキー化します。 - 各キーについて、その行全体にわたるすべてのusageフィールドの最大値を残します。同じファイルに記録されるサブエージェント(サイドチェーン)のメッセージも含めます。
- Anthropicの定価でトークンを評価します(2026年11月3日に確認)。たとえばOpus 5.5は100万トークンあたり入力$4、キャッシュ読み取り$0.20、出力$20、Sonnet 5.5は$2、$0.10、$10です。キャッシュ書き込みは、ログに記録された5分と1時間の内訳を使います。Haiku 5.5は、100,000トークンを超えるプロンプトにはより高い料金を使い、入力側のトークンからメッセージごとに推定しています。
この数字から分からないこと
- 請求額ではありません。定額のサブスクリプションでは、この数字はAPI換算の価値であり、ログにはドル額が含まれていません。
- プロバイダーの請求との照合は行っていません。ログから導いた合計を当てにする前に、照合してください。
- 繰り返しが起きる仕組みは、パターンに対する私たちの解釈であり、Anthropicの説明ではありません。
どう活かすか
- 合計する前に重複を排除する。 ログ行を足し合わせているダッシュボードは、おそらく過大計上しています。キーが何かを確認してください。
- メッセージごとに、先頭行ではなく最大値を使う。
- 月に一度、プロバイダーまたはゲートウェイの請求と照合する。 台帳に必要なものは、LLMトークン追跡とAIオブザーバビリティを参照してください。
- ゼロを信用しない。 価格が無料の場合でも、トークンは追跡してください。
この結果が使われる使用量のビューについては、10月のClaude Code: トークン、キャッシュ、定価換算の価値と、Claude Codeのトークン使用量を確認して減らす方法を参照してください。
よくある質問
Claude Codeのトークンを正しく数えるにはどうすればよいですか?
トランスクリプトファイルのアシスタントエントリを読み、メッセージIDとリクエストIDの組でキー化し、そのキーを共有する行にわたって各usageフィールドの最大値を残します。全行を合計すると、10月の使用量は2.5倍高く計上されました。
Claude Codeのログで同じメッセージが何度も表示されるのはなぜですか?
私たちのトランスクリプトでは、同じメッセージIDとリクエストIDが複数の行に現れ(ユニークなメッセージ70,592件に対して175,884行)、後の行ほど出力数が大きくなっていました。このパターンは、返信がストリーミング中にログへ記録されていることと整合しますが、原因はAnthropicに確認していません。
メッセージごとに先頭行を残すだけで十分ですか?
先頭行は部分的なスナップショットなので、出力トークンを過少に数えます。私たちは全体で出力トークンの14%、あるモデルでは最大100%を取りこぼしましたが、私たちの構成ではドルへの影響は約0.6%にとどまりました。
定価換算の価値は、実際に支払った額と同じですか?
いいえ。同じトークンをAnthropicが公表しているAPI価格で評価したコストです。サブスクリプションやゲートウェイの割引によって実際の支払額は変わり、ログにはドル額が含まれていません。
関連記事
- 10月のClaude Code: トークン、キャッシュ、定価換算の価値
- Claude Codeのトークン使用量を確認して減らす方法
- LLMトークン追跡
- Codex Pro $100を30日間使用: リセット14回
この方法を自社の環境にも適用しますか? プロバイダーの請求書、ゲートウェイログ、主要なワークフローをお持ちください。コスト要因と削減策を整理します。 無料監査を予約 →