Thought Media

Claude Codeの利用枠が早く減る理由を、48時間分のログを集計して調べた

· ai-agent-cost

## 結論

自分たちが動かしているAIエージェント(Claude Code)の全セッションのログを、48時間分集計した。12,898ターン、合計40億トークン。ここに出す数字はすべて実測で、推定値は使っていない。

出てきた結論は一つ。**消費のほとんどは「新しい仕事」ではなく「同じ会話を毎ターン読み直すこと」だった。** 二重作業をしていたわけではない。同じコマンドの再実行や同じファイルの再読はほとんど無く、二重作業・やり直しの比率は0〜1%しかなかった。無駄な仕事をしていたのではなく、会話が長くなるほど「そこまでに積み上がった中身」を毎ターン読み直すコストが増えていた、ということである。

## 内訳を見る:量と費用は別物

まずトークンの「量」の内訳。

| 用途 | 割合 |
|---|---|
| 会話の読み直し(cache read) | 98.4% |
| キャッシュ書き込み | 1.3% |
| 出力 | 0.2% |

量で見ると、出力はわずか0.2%。ほぼ全部が「読み直し」に費やされている。

次に「費用」の内訳。入力・出力・キャッシュはそれぞれ単価が違うので、量の比率をそのまま費用の比率として読むことはできない。以下は、単価の違うトークンを同じ物差しに載せるために公式list price換算で正規化した値であり、サブスクの実請求額そのものではない。

| 用途 | 費用の割合(list price換算) |
|---|---|
| 読み直し | 77.5% |
| キャッシュ書き込み | 13.2% |
| 出力 | 9.3% |

量では98.4%を占めていた読み直しは、単価が安いこともあって費用では77.5%まで下がる。それでも、費用の内訳で見ても最大の項目であることは変わらない。

もう一つ、会話の長さで分けた内訳がある。長い会話4本(合計7,141ターン、平均コンテキスト488,000)と、短い会話60本超(合計5,757ターン、平均コンテキスト90,000)を比べると、ターン数はほぼ同じなのに消費量は約7倍だった。48時間分の全消費のうち87%が、この長い4本だけで占められている。

さらに、セッションを開始した瞬間に必ず読み込まれるもの——システムプロンプト、ツール定義、指示ファイルなど——がある。これがおよそ45,000トークンあり、これも会話が続く限り毎ターン読み直される。45,000×12,898ターン=5.8億トークン、全体の14.5%にあたる。何も新しい仕事をしていない1ターン目の時点で、すでにこの固定費が乗っている。

## 効かない打ち手、三つ

数字を集計する前は、「モデルを軽くすれば減る」「考える処理を浅くすれば減る」「調べ物を減らせば減る」と考えていた。実測するとどれも効果が薄いことが分かった。

**①セッションの途中でモデルを変える。** キャッシュはモデルごとに別管理なので、切り替えた瞬間にそれまでの全コンテキストが再課金される。減るどころか、その回だけ費用が跳ねる。

**②thinking(考える処理)を浅くする。** 出力は費用全体の9.3%しかない。ここをどれだけ削っても、削れる上限がそもそも9.3%を超えない。

**③調査やファイル読み込みを減らす。** 二重作業・やり直しは0〜1%だった。同じ調査を繰り返していたわけではないので、そこにある「無駄」自体がほとんど無い。減らせば減るのは仕事の質であって、費用ではない。

## 効く打ち手は一つ

**会話を短く保つこと。** 費用は仕事量そのものでは決まらず、会話の長さ——毎ターン読み直される中身の量とターン数の掛け算——で決まる。長い会話4本が全体の87%を占めていたのは、そこでの仕事量が多かったからというより、一つの会話に積み上がった文脈を何百ターンも読み直し続けた結果である。

具体的には、調査やファイルの大量読み込みが必要な作業を、親の会話そのものではなく別の会話(サブエージェント)に切り出し、要約だけを親に戻す。親の会話に積まれる中身が減れば、毎ターンの再読コストも減る。調査そのものを減らすわけではなく、「どこでやるか」を変えるだけである。

## 自分のログで測る目安

このやり方が誰の環境でも同じ結果になるとは限らない。ただ、確認するときの着眼点はそのまま使える。

- 会話ごとのターン数と平均コンテキスト長を出し、長い会話が全体の消費の何割を占めているか見る
- トークンの内訳を「読み直し・キャッシュ書き込み・出力」に分け、量と費用(list price換算)の両方で見る
- 二重作業・やり直しの比率を見る。ここが低ければ、「調べ物を減らす」という打ち手は効果が薄いと分かる

## 続き

より踏み込んだ実測として、①最も高かった会話1本の分解(2,441ターン・平均コンテキスト509,000・48時間の全消費の約3割を占めていた)、②止める仕組みを入れたのに一度も発火していなかった話、③自分のログで同じ数字を出すコピペ用コマンド、の3点をnoteの有料記事にまとめた。気になる方はこちら: https://thought-media.pages.dev/go/note