Claude Code を使っていて「なんかコストかかるな…」と思ったことはないでしょうか。以前、デフォルト設定のまま使い続けると推定 2 億 6,400 万トークンもの無駄が発生するという事例が話題になりました。

その後 Claude Code 自体が大幅に改善されましたが、トークン消費を意識した使い方は今でも重要です。本記事では、現在のバージョン(2026年4月時点)で有効な最適化ポイントを整理します。

ツール検索の遅延ロード(Deferred Tools)

以前の Claude Code では、すべてのツール定義がセッション開始時にコンテキストに読み込まれ、大量のトークンを消費していました。ENABLE_TOOL_SEARCH を明示設定することで改善できるという報告もありました。

現在のバージョンでは、この問題はビルトインで解決されています。 ツール定義は「遅延ロード(Deferred Tools)」方式に変わり、ツール名だけがコンテキストに載り、実際のスキーマは必要になった時点で初めてロードされます。ENABLE_TOOL_SEARCH を手動で設定する必要はありません。

プロンプトキャッシュの 5 分 TTL — 今も最大の落とし穴

Claude のプロンプトキャッシュは 5 分で期限切れになる。これは現在も変わっておらず、トークンコストに最も影響する要素だ。

5 分休憩しただけで、会話全体が再処理され、コストが 10 倍以上に跳ね上がることがある。

つまり:

  • 長時間セッションの途中で離席する
  • ちょっと休憩してから作業再開する
  • 別の作業をしてから Claude Code に戻ってくる

といった行動がすべて、想定外のコスト増につながる。「休憩明けの最初のメッセージが一番高い」というのは、このキャッシュ再処理が原因だ。

キャッシュを意識した作業フロー

  • 5 分以内に次の操作を行う — キャッシュが維持される
  • 長い離席の前にセッションを終了する — 戻ってきたら /resume で再開した方が、コンテキストが圧縮されて効率的
  • タスクの区切りで /compact を実行する — 手動でコンテキストを圧縮し、次のキャッシュミス時のコストを下げる

コンテキスト自動圧縮を活かす

Claude Code はコンテキストウィンドウの上限に近づくと、過去の会話を自動的に圧縮する。この仕組みのおかげで、長時間セッションでも会話が途切れることはない。

ただし、圧縮時にはトークンが消費される。不要にコンテキストを膨らませないことが、結果的にコスト削減になる。

コンテキストを膨らませない工夫

やりがちなこと改善策
大きなファイルを全行読む必要な範囲だけ offset / limit 指定で読む
ビルドログをそのまま流すエラー時だけ出力を確認する
試行錯誤を同一セッションで続ける方針が変わったら新しいセッションで仕切り直す
CLAUDE.md に大量の指示を詰め込む必要最小限に保つ(毎ターンのコンテキストに載る)

現在のビルトイン最適化機能

2026年4月時点で Claude Code に組み込まれている主なトークン最適化機能:

機能説明
Deferred Toolsツールスキーマの遅延ロード。未使用ツールのトークン消費をゼロに
コンテキスト自動圧縮ウィンドウ上限に近づくと過去の会話を自動要約
プロンプトキャッシュ5 分 TTL で同一プレフィックスのキャッシュヒット
Bash 出力トランケーション長すぎるコマンド出力を自動的に切り詰め
/compact コマンド手動でコンテキストを圧縮

まとめ

Claude Code のトークン効率は初期と比べて大幅に改善されている。以前は settings.json の手動チューニングが必要だったツール検索の問題も、現在は Deferred Tools としてビルトインで解決済みだ。

それでも プロンプトキャッシュの 5 分 TTL は今なお最大のコスト要因であり、作業フローを意識するだけで大きな差が出る。「連続して作業する」「区切りで圧縮する」「不要にコンテキストを膨らませない」——この 3 点を意識するだけで、トークン消費を効果的に抑えられる。