Claude Codeを使っていると、同じような小さな修正なのに急にtoken消費が増えることがあります。必ずしも価格やモデルの問題ではありません。多くの場合、会話履歴、ファイル読み込み、ログ、Hooks、MCP、失敗の再試行が積み重なっています。
まず最近何が変わったかを確認し、コンテキストを減らし、タスク範囲を狭くするのが基本です。
tokenはどこで使われるか
ユーザーの指示、Claude Codeが読んだファイル、ターミナル出力、テストログ、エラースタック、会話履歴、ツール結果、CLAUDE.md、Memory、Hooksの出力、モデルの返答がすべて消費に関係します。短い指示でも周辺コンテキストが大きければ高くなります。
まず止血する
- 新しい会話を始める。
- 読んでよいファイルを明示する。
- リポジトリ全体の分析を避ける。
- ログは重要な末尾だけ渡す。
- 不要なMCPツールを一時的に切る。
- Hooksが大量出力していないか見る。
- 調査と修正を分ける。
|
|
原因1:会話が長すぎる
長い会話には、ログ、ファイル、計画、古い判断が蓄積します。後半の小さな質問でも、それらを抱えたまま処理されます。
独立したタスクは新しい会話にし、長い作業は要約してから続けます。安定したルールは会話ではなくCLAUDE.mdへ移します。
原因2:ファイルを読みすぎている
広すぎる指示は探索を増やします。
|
|
よりよい指示:
|
|
関係ないファイルを開き続けるなら、いったん止めて範囲を言い直します。
原因3:テストやビルドログが長い
依存インストール、詳細テスト、Playwright trace、TypeScriptの大量エラー、Docker buildのログはコンテキストを大きくします。
|
|
のように狭いテストから始めます。
|
|
を毎回そのまま渡す必要はありません。
原因4:CLAUDE.mdが長すぎる
CLAUDE.mdは便利ですが、巨大な百科事典にすると毎回重くなります。技術スタック、コマンド、禁止ファイル、検証方法、プロジェクト固有の約束だけに絞ります。
長い背景説明はdocs/に置き、必要なときだけ読ませます。
原因5:Memoryの汚染
Memoryは横断的な好みに向いています。特定プロジェクトのパスやコマンドを入れると、他プロジェクトに持ち込まれ、tokenも行動も無駄になります。
リポジトリ固有の事実はCLAUDE.mdやプロジェクト文書に戻します。
原因6:Hooksの出力が多い
Hooksが完全なdiff、長いテストログ、環境変数、重複エラーを毎回出すと、静かにtokenが増えます。
|
|
のように要約し、詳細はファイルへ保存します。
原因7:MCPが大量データを返す
検索、DB、Web、コードインデックスのMCPは全文や大量結果を返しがちです。
|
|
limit、page_size、summary_onlyが使えるなら指定します。
原因8:モデルが変わった
token数が同じでも、モデルや推論モードが変わると消費感が変わります。現在のモデル、チームの既定値、高effort設定を確認します。
原因9:失敗の再試行
同じ失敗を繰り返すと、ログ、説明、パッチ、ツール呼び出しが積み上がります。2回失敗したら止めます。
|
|
原因10:タスクが抽象的すぎる
|
|
より:
|
|
の方が省tokenです。
排障チェックリスト
| 確認項目 | 症状 | 対処 |
|---|---|---|
| 会話長 | 後半ほど遅い | 新しい会話にする |
| ファイル範囲 | 無関係なファイルを読む | ディレクトリを制限 |
| ログ | 出力が長い | 重要なエラーだけ渡す |
CLAUDE.md |
ルールが長すぎる | 高頻度ルールだけ残す |
| Memory | 他プロジェクト情報が混ざる | 一時情報を削除 |
| Hooks | 自動出力が多い | 要約にする |
| MCP | 検索結果が大きい | 件数制限 |
| モデル | 既定が変わった | タスクに合わせて選ぶ |
| 再試行 | 同じ失敗が続く | 止めて原因整理 |
| 指示 | 広すぎる | 小さな作業票にする |
省tokenワークフロー
- 目的と範囲を明示する。
- 必要なファイルだけ読ませる。
- 最初は分析だけ、次に編集。
- 小さいファイル集合を変更する。
- 関連する最小テストを実行する。
- 失敗ログを短くする。
- 次のタスクは新しい会話で行う。
|
|
FAQ
token増加はバグですか?
多くの場合は違います。コンテキスト、ファイル読み込み、ログ、Hooks、MCP、モデル設定を先に確認します。
MCPを切れば節約できますか?
大量結果を返すMCPなら節約できます。完全に切るより、件数と要約を制限する方が実用的です。
CLAUDE.mdは詳しいほどよいですか?
いいえ。行動に影響する安定ルールだけを書きます。
小さな変更なのに高いのはなぜ?
変更行数ではなく、会話全体のコンテキストが効くためです。
新しい会話で重要情報を失いませんか?
古い詳細は失いますが、多くの場合それが利点です。必要な結論だけ再提示します。
まとめ
Claude Codeのtoken消費増加は、長い会話、広いタスク、長いログ、肥大化したCLAUDE.md、Memory汚染、Hooks、MCP、モデル変更、再試行が重なって起こります。新しい会話、狭い範囲、短いログ、限定されたツール出力で、必要な部分にだけコンテキストを使うのが重要です。