あなたがClaude Codeで入力するすべてのターンごとに、コストは前のターンより高くなります。200ターン目では、同じ作業に対して10倍を支払っています。664ターン目では27.3倍です。
私はこれらの数字を当て推量したわけではありません。自分の42回のセッションにわたって計測しました:
- 最悪のセッション:664ターン、27.3倍の無駄率、192Mトークンを消費
- 42回中20回のセッションが5x以上の無駄で実行
- セッション全体で:744Mトークン消費。ローテーションありだと:233M。この場合、クォータが69%少なくて済む
- さらに、Claude Code 2.1.69〜2.1.89におけるプロンプトキャッシュのバグも見つけました。私のセッション42回のうち15回でキャッシュが壊れていました。なかでも1回は196ターンをキャッシュ比率0%で実行していました
ではなぜこうなるのでしょうか?そして、それを直すために私は何を作ったのでしょうか?
問題:すべてのターンで毎回“全部を再送”してしまう
Claude Codeは、毎ターンごとにあなたの会話履歴全体を再送します。コストは直線的に増えますが、有用な出力は一定のままです。
最悪のセッションからの実データ:
| セッション内のポイント | トークン/ターン | 無駄率 |
|---|---|---|
| ターン1 | ~20K | 1x |
| ターン100 | ~100K | 5x |
| ターン200 | ~200K | 10x |
| ターン400 | ~350K | 17x |
| ターン664(終了) | ~551K | 27.3x |
これが、20分でレート制限に当たってしまう理由です。あなたはより多くの作業をしているのではなく、同じ作業をするのに毎ターン直線的により多く支払っているのです。
なぜ手動ローテーションは失敗するのか
セッションを手動でローテーションできますが、コンテキストを失い、何をしていたのかを改めて説明するための時間が無駄になります。最適なローテーション地点がわかることはありません。毎回フローが途切れます。そしてセッション間の引き継ぎはロスが生じます。重要な詳細が落ちます。
どれくらいロスがあるのか?私は測定しました。最後のセッションでローテーションしたとき、97件の事実のうち35件しか引き継ぎで生き残りませんでした。テキスト類似度スコアリングを使った46%の保存率です。トークンの観点では、再発見のオーバーヘッドは最初の10ターンに相当する8%程度なので、元のコスト自体は致命的ではありません。問題はどの事実が落ちるかです。コマンドの実行(6/44は保持)、エラー(0/3)、ファイル読み取り(0/5)。次のセッションは、何が失敗し、なぜ失敗したのかを知りません。
Clauditorがこれを修正する方法
私はclauditorを作りました。CLIツールで、7つのライフサイクルフックを通じてClaude Codeにフックします:
- UserPromptSubmit が膨れ上がったセッションをブロックし、トークンを無駄にする「continue」プロンプトを検出
- PreToolUse は、起こる前に既知のエラーを防ぐ
- PostToolUse はツール呼び出しを監視し、無駄が大きい自律作業中にブロックする
- PreCompact / PostCompact はコンパクション中に何が失われるかを測定する
- SessionStart はトラッキングを初期化し、新しいセッションのためにローテーションのコンテキストを読み込む
- Stop は無駄の分析付きの最終セッションレポートを生成する
リアルタイムにあなたの無駄率を計算し、効率が閾値を下回るとセッションをブロックして、freshなセッションを開始するように促します。ローテーションするときは、次のセッションが中断したところから引き継げるように、構造化された引き継ぎテンプレートを生成します:
## タスク
ダッシュボードAPIのOAuth2フローを実装する
## 完了
- トークン用のデータベーススキーマ ✓
- トークン更新エンドポイント ✓
- リフレッシュフローのユニットテスト(14パス) ✓
## 失敗したアプローチ
- passport.jsを試したが、ミドルウェアチェーンと両立しなかった
- Redisのセッションストアが、高負荷時にレースコンディションを引き起こした
## 現在の状態
対応中:認可コードフロー
ブロック中:リダイレクトURIのCORS設定
次のステップ:nginx.confに許可オリジンを追加する
これは、実際に重要なものを保ちます。構造化された判断、失敗、次のステップです。ロスのある要約ではありません。
ローテーションの経済性
多くの人が見落としているのはこの部分です。ローテーションは単に無駄を止めるだけでなく、ネットでプラスになります。
- ローテーションは平均でターンあたりのトークンを65%節約
- 再発見のコストは約17Kトークン。最初の10ターンに対するオーバーヘッドは8%程度
- 無駄が10xのとき、ROIは400xです。あなたは17Kトークンでコンテキストを再発見するだけで済み、200K+/ターンで実行し続けることによる“何百万トークンもの”節約が得られます
私のデータでは、clauditorは無駄なクォータ消費がそれ以上増えるのを防ぐために10セッションをブロックしました。42回すべてでローテーションしていた場合、私は744Mではなく233Mトークンを使っていたはずです。あなたの数字はセッションの長さによって変わります。自分自身の確認はclauditor reportを実行してください。
誰も知らなかったバグ
clauditorを作っている最中に、Claude Codeのバージョン2.1.69〜2.1.89にプロンプトキャッシュのバグがあり、10〜20倍のトークン消費につながっていることを発見しました。
clauditor doctorを自分のセッションに実行すると、キャッシュが劣化している14セッションが見つかりました。最悪なのは:キャッシュ比率0%で196ターン実行していたケースです。つまり、ゼロのキャッシュで、すべてのトークンが定価で課金されていたということです。別のセッションでは、セッション途中でキャッシュが100%から20%へ落ちました。
私はバグを見つける目的で始めたわけではありません。しかし、このレベルの粒度でトークン使用量を測定すると、異常が見えるようになるのです。影響を受けているかどうか確認するにはclauditor doctorを実行してください。
インストールする
# npm
npm install -g @iyadhk/clauditor && clauditor install
# Homebrew
brew tap IyadhKhalfallah/clauditor && brew install clauditor && clauditor install
# Zero install
npx @iyadhk/clauditor
その後、実行します:
-
clauditor report:セッション間の無駄率を確認する -
clauditor doctor:あなたのClaude Codeのバージョンがキャッシュのバグに影響されていないか確認する -
clauditor handoff-report:前回のローテーションで、どれくらいの知識を失ったかを測定する
272 GitHubスター、6,000+ダウンロード、275テスト、MITライセンス。 ローカルで動作し、クラウド依存はありません。
GitHub:github.com/IyadhKhalfallah/clauditor
Website:clauditor.ai
あなたの最悪の無駄率は? clauditor reportを実行して、数値をコメント欄に書いてください。私の27.3xと比べてどうなるか気になります。



