Claude Codeのトークン消費を半分にした。800時間以上の自律運用で見つけた方法をまとめる。
Opus 4.7(2026年4月16日リリース)で新トークナイザーが導入され、同じプロンプトでもトークン消費が最大35%増加している(Finout.io調査)。Max planでも1時間で枯渇する報告が相次いでいる。
この記事で分かること
- CLAUDE.mdの書き方で消費が2倍変わる理由と対策
- キャッシュを壊さない運用方法
- hookで自動的にトークン浪費を止める設定
-
/clearと/compactの正しい使い分け - Opus 4.7固有の問題への対処
1. CLAUDE.mdを短くする(効果: 20-40%削減)
Claude Codeの指示ファイル(CLAUDE.md)は全ターンでコンテキストに含まれる。100行のCLAUDE.mdを35行に凝縮したら、キャッシュ読み取り率が89%→95%に改善した。
やること
- 禁止リストを許可リストに変える(7行→6行で同じカバー範囲)
- hookに任せるルールをCLAUDE.mdから外す(「rm -rf禁止」はhookで自動ブロック)
- 具体例を1つだけ添える(曖昧な指示→リトライ増→トークン浪費)
before(典型的な肥大化パターン):
# プロジェクトルール
## コーディング規約
- TypeScriptを使用すること
- ESLintの設定は.eslintrc.jsに従うこと
- Prettierのフォーマットを適用すること
- テストはJestで書くこと
- テストのカバレッジは80%以上を維持すること
## ディレクトリ構造
- src/: ソースコード
- tests/: テストコード
- docs/: ドキュメント
(...50行以上続く)
after:
# Rules
- TypeScript + Jest + ESLint/Prettier
- Test coverage ≥ 80%
- See .eslintrc.js for style rules
CLIやlinterが既に強制しているルールをCLAUDE.mdに書く必要はない。「AIが知らないこと」だけを書く。
2. キャッシュを壊さない(効果: コスト10-20倍の差)
Claude Codeのプロンプトキャッシュは5分で失効する。キャッシュが効いているとき(cache_read)と壊れたとき(cache_creation)でコストが10-20倍違う。
キャッシュが壊れる3大原因
- 5分以上の空白: 考え込んだり離席するとキャッシュ失効
- git status変更: ファイルを保存するだけでコンテキストが変わる
- skills/ディレクトリの変更: CLAUDE.mdと同じく毎ターン読み込まれる
対策
-
/costで定期的にキャッシュ読み取り率を確認(80%以上が健全) - 長時間作業は
/compactでコンテキストを圧縮してから継続 - キャッシュが壊れたら
/clearで新セッション開始が最安
3. hookでトークン浪費を自動ブロック(効果: リトライループの早期停止)
hooksはClaude Codeのランタイムレベルで動く自動チェック機構。CLAUDE.mdに「大きなファイルを読むな」と書くより、hookで自動ブロックする方が確実——CLAUDE.mdの指示は無視されることがあるが、hookは無視できない。
例: 同じファイルの繰り返し編集を検知
{
"hooks": {
"PostToolUse": [{
"matcher": "Write",
"hooks": [{
"type": "command",
"command": "bash -c 'INPUT=$(cat); FILE=$(echo \"$INPUT\" | jq -r \".tool_input.file_path // empty\"); [ -z \"$FILE\" ] && exit 0; LOG=/tmp/cc-write-log.txt; COUNT=$(grep -c \"$FILE\" \"$LOG\" 2>/dev/null || echo 0); echo \"$FILE\" >> \"$LOG\"; if [ \"$COUNT\" -ge 3 ]; then echo \"WARNING: $FILE has been written $COUNT times. Consider a different approach.\" >&2; fi'"
}]
}]
}
}
4. /clearと/compactの使い分け
| コマンド | いつ使う | 効果 |
|---|---|---|
/clear |
テーマが変わるとき | コンテキスト完全リセット。キャッシュも新規 |
/compact |
同じテーマで長時間 | 会話を要約して圧縮 |
/cost |
定期チェック | 現在の消費量とキャッシュヒット率を確認 |
⚠ /compact後にコンテキストが破損する報告がある(#50402)。圧縮後は重要な事実を再確認する習慣をつけよう。
5. Opus 4.7固有の問題に備える
Opus 4.7(2026年4月16日)では以下の問題が報告されている:
- 新トークナイザーで+35%消費増(同じ入力でも多くのトークンを消費 — Finout.io分析)
-
デフォルトeffort levelがxhighに変更(全プランで消費が増加。公式ベストプラクティスで
medium/highへの変更を推奨) -
allowedToolsバイパス(パーミッションバイパスフラグ併用時に
--allowedToolsが無効化 — #50303) - データ損失(50GB以上のファイル削除 — #49129)
今すぐできる対策
Claude Codeの設定で/config→effortをhighまたはmediumに変更する。Anthropic公式も「コスト重視ならmediumかlow」と明言している。タスクの複雑さに応じて使い分けるのがベスト。
まとめ: 効果が大きい順
- effort levelを下げる(Opus 4.7最重要。xhigh→highで即効果)
- CLAUDE.mdを短くする(毎ターンの固定コスト削減)
- キャッシュを壊さない(10-20倍の差)
- hookで自動制御(浪費パターンの早期停止)
- /clearと/compactの使い分け(蓄積コスト管理)
トークン削減の整備の延長として、 800時間の実測データと CLAUDE.md の最適化のテンプレートと hook の素案を全10章で整理した Claude Codeトークン節約ガイド (¥2,500、 はじめにと第1章は無料で読める) に整備しました。 hook の事例の集まりは cc-safe-setup (MIT、 745件以上の hook) で配布中。