2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Codeのトークン消費を減らす5つの方法——Opus 4.7で+35%になった今やるべきこと

2
Last updated at Posted at 2026-04-19

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%に改善した。

やること

  1. 禁止リストを許可リストに変える(7行→6行で同じカバー範囲)
  2. hookに任せるルールをCLAUDE.mdから外す(「rm -rf禁止」はhookで自動ブロック)
  3. 具体例を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大原因

  1. 5分以上の空白: 考え込んだり離席するとキャッシュ失効
  2. git status変更: ファイルを保存するだけでコンテキストが変わる
  3. 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公式も「コスト重視ならmediumlow」と明言している。タスクの複雑さに応じて使い分けるのがベスト。

まとめ: 効果が大きい順

  1. effort levelを下げる(Opus 4.7最重要。xhigh→highで即効果)
  2. CLAUDE.mdを短くする(毎ターンの固定コスト削減)
  3. キャッシュを壊さない(10-20倍の差)
  4. hookで自動制御(浪費パターンの早期停止)
  5. /clearと/compactの使い分け(蓄積コスト管理)

トークン削減の整備の延長として、 800時間の実測データと CLAUDE.md の最適化のテンプレートと hook の素案を全10章で整理した Claude Codeトークン節約ガイド (¥2,500、 はじめにと第1章は無料で読める) に整備しました。 hook の事例の集まりは cc-safe-setup (MIT、 745件以上の hook) で配布中。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?