GitHubのAnthropic公式リポジトリ claude-code に、かなり気になるバグ報告が投稿されました。タイトルは、
[BUG] Pro Max 5x Quota Exhausted in 1.5 Hours Despite Moderate Usage
ざっくり日本語にすると、「それほど激しく使っていないのに、Pro Max 5x の quota が1.5時間で使い切られた」という意味です。
ここでいう quota は、毎月の「使える上限」や「利用枠」のようなものです。
つまり、まだそんなに使っていないのに、急に“もう使えません”になったという話です。これ、ユーザーとしてはかなり嫌ですよね。私なら普通に「え、バグでは?」となります。
報告者は Claude Code を Opus モデル、しかも 1M context(一度に読める文脈が非常に大きい設定)で使っていました。
作業内容は、前半はかなり重めの開発だったものの、それは quota 的に見ても納得できる範囲だったとのこと。
問題はその後です。
この時点で「さすがにおかしい」となります。
しかも調査すると、原因としてかなり怪しい点が見えてきた。
それが cache_read tokens の扱いです。
専門用語なので少し噛み砕きます。
Claude Code のようなツールは、毎回「今までの会話や作業の文脈(context)」をモデルに送って推論させます。
そのとき、以前に見た内容を再利用する仕組みとして prompt caching があります。
その中で出てくるのが cache_read_input_tokens です。
これは一言でいうと、「キャッシュから読み出した分のトークン」です。
トークンは、AIが扱う文字のかたまりのようなものです。
文章量の単位だと思っておけば大丈夫です。
で、報告者の主張はこうです。
これが事実なら、かなり重要です。
なぜなら、「キャッシュで安くなるから大丈夫」が、quota上は大して効いていない可能性があるからです。
報告には、かなり細かい計測結果が載っています。
セッションファイル(~/.claude/projects/*//*.jsonl)から usage を集計したとのことです。
これはかなり大きな作業です。
Express server や iOS app の実装、knowledge graph pipeline、multi-agent coordination など、重い処理が並んでいます。
ここで quota をかなり使ったのは、まあ納得感があります。
メインセッション:
さらにバックグラウンドで動いていたセッションもありました。
合計すると、
raw tokens では 105.7M tokens くらい使っている計算になります。
ここで面白いのは、報告者が「もし cache_read が 1/10 扱いなら、そこまで quota を食うはずがない」と見ている点です。
逆に、cache_read がフル扱いなら、たしかに quota が吹き飛ぶ。
つまり、この issue の核心は、
キャッシュで安くなっているはずなのに、quota の計算では安くなっていないのでは?
という疑念です。
これが一番の本丸です。
もし本当に cache_read が quota 上はフルカウントなら、prompt caching の意味がかなり薄れます。
報告者の主張では、軽めの利用でも quota が急減しており、
「キャッシュが効いているのに、利用上限の減り方は全然やさしくない」ように見えるわけです。
個人的には、これはかなりイヤな設計ミスっぽさがあります。
ユーザーからすると、「安くなる仕組み」があるなら、少なくとも制限にもそれなりに反映されると思うじゃないですか。
それがされていないなら、かなり混乱します。
これも見落としがちなポイントです。
Claude Code は複数の terminal でセッションを開いたままにすると、
その裏で compacts、retros、hook processing などを行って、共有 quota を消費することがあるようです。
つまり、ユーザーが「いま触ってないセッション」でも、裏で静かに quota を削っている可能性がある。
これ、地味に怖いです。
人間は「作業していない=消費していない」と思いがちですが、AI側は止まっていないことがある。
このズレは、かなりトラブルの温床になりそうです。
auto-compact は、context が膨らみすぎたときに、会話内容を圧縮して延命する仕組みです。
便利ではあるのですが、報告によると、圧縮の直前に巨大な context を送る1回のAPI呼び出しが発生します。
ピーク時には約 966k tokens というとんでもない context が載っていたとのこと。
これが quota 面ではかなり重い。
つまり、auto-compact は「便利な裏で、最も高い1回」を生みやすい。
この構造はなかなか皮肉です。
節約のための仕組みが、場合によっては最大の消費源になる。AIツールあるあるではありますが、やっぱり納得しづらいですね。
1M context window は、一見すると「すごい、たくさん覚えてくれる」と感じます。
ただし、context が大きくなるほど毎回送る情報量も増えるので、1回あたりのコストが膨らむという弱点があります。
報告者は、1M window が実際には quota depletion を加速させていると見ています。
これはかなり筋が通っていると思います。
大きい context は確かに強い。
でも「たくさん覚えられる」ことと「たくさん使える」ことは、必ずしも同じではない。
ここを分けて考えないと、ユーザーは「性能は上がったのに、使える時間は短くなった」と感じるかもしれません。
報告では、次のような条件が書かれています。
~/.claude/rules/ に約30個の rule files を置く/context コマンドで context の増加を見る要するに、ちゃんとした開発作業をしていたら普通に踏みそうな条件です。
ここが大事で、「特殊な壊し方」ではなく、かなり現実的な使い方の中で起きている点が問題なんですよね。
この報告の面白いところは、単なる「バグっぽい」では終わらず、
quota の見せ方・計算方法・ユーザー体験そのものに疑問を投げている点です。
報告者は改善案として、たとえば以下を挙げています。
これはかなりまっとうな提案だと思います。
特に 「何がどれだけ quota を食っているのか、見える化してほしい」 は強く同意です。
見えない消費は、体感的にいちばんストレスです。
AIツールって、便利な一方で「気づいたら終わってた」が起きやすいので、透明性はかなり重要です。
個人的には、この issue は「単なる1件のバグ報告」以上の意味があると思います。
理由は2つあります。
このズレが大きいと、ユーザーは「使い方が悪いのか、仕様なのか、バグなのか」を判断できません。
そして、それが一番つらい。
なぜなら、改善しようにも改善ポイントが見えないからです。
Claude Code のような強力なツールは、性能が高いだけでは足りなくて、
“どう使われ、どう消費され、どう制限されるか” の説明責任がかなり大事だと思います。
この issue は、Claude Code の Pro Max 5x プランで「moderate usage なのに quota が1.5時間で枯渇した」という報告です。
原因としては、cache_read tokens が想定より重く quota に乗っている可能性や、バックグラウンドセッションの消費、巨大な context を扱うこと自体のコストが疑われています。
つまり、問題は「AIが賢すぎる」ことではなく、
賢く使うほど quota の減り方が読みにくくなることにある、という話です。
これはかなり面白いし、同時にかなり困る問題だと思います。