この記事でわかること
Claude CodeやCodexを毎日使っていると、いつの間にかトークン消費が膨らんでいることに気づきます。原因の多くは「セッションの最初から最後までずっと居座り続けるもの」にあります。この記事を読むと、何が常時コンテキストを圧迫しているのかがわかり、今日から実践できる具体的な削減策が身につきます。
なぜトークン消費は増えるのか
Claude Codeでは、CLAUDE.mdの内容やルール、有効化されているMCPツールの定義が、セッション開始時に読み込まれ、以降のすべてのやり取りに乗り続けます。つまり「今の作業に関係ない情報」でも、そこに書いてあるだけでずっとコストを払い続けることになります。長時間のコーディングセッションで複数ファイルを読み、ビルドを回し、リファクタリングを重ねると、消費トークンが10万〜30万に達することも珍しくありません。
対策の出発点は、この「常時居座るもの」をいかに軽くするかです。
CLAUDE.mdは「軽量な索引」にする
CLAUDE.mdは便利なだけに、つい手順書やチェックリストを詰め込みがちです。しかし特定の作業(PRレビュー手順など)にしか使わない情報を書いておくと、無関係な作業をしているときも常にそのぶんのトークンを消費してしまいます。
対応策はシンプルで、頻度の低い専門的な手順はCLAUDE.mdから切り離し、必要なときだけ呼び出せる形に移すことです。Claude Codeには、呼び出されたときだけ読み込まれる「Skills」という仕組みがあり、これを使えば普段のベースとなるコンテキストを小さく保てます。
Skillsを「オンデマンドの引き出し」として使う
Skillsの利点は、使わない限りコンテキストに一切乗らない点にあります。デプロイ手順、レビュー基準、特定プロジェクトの作法など、頻繁には使わないが必要なときにはきちんと使いたい知識は、CLAUDE.mdではなくSkillsに置くのが理にかなっています。結果として、日常的な作業ではCLAUDE.mdとルールの分だけの軽いコンテキストで済み、必要な場面でだけ詳細な手順を読み込む構成になります。
MCPツールは絞り込む・遅延読み込みを活用する
MCPサーバーを複数接続していると、各ツールのスキーマ定義がそれだけでかなりの分量になります。使っていないMCPは無効化するのが基本ですが、最近のClaude Codeはツール定義を一括で読み込まず、必要になった時点で個別に取得する「遅延読み込み」に対応しています。全ツールの定義を毎回抱え込まずに済むぶん、接続しているツールが多い環境ほど削減幅は大きくなります。具体的な削減量は接続構成によって変わるため、実際の数値は自分の環境で確かめてください。
/compact・/clearを「作業の節目」で使い分ける
会話履歴そのものもコンテキストを圧迫する要因です。Claude Codeには会話を要約して圧縮する/compactと、履歴を丸ごと消去する/clearがあります。使い分けの目安は次の通りです。
- 空き容量が3割を切ってきたら
/compactで圧縮する - タスクが完全に切り替わるタイミングでは
/compactより/clearのほうが無駄がない /compact実行時に「何を残したいか」を指定すると、自動要約より狙った情報を保持しやすい- 使用率が8割に達するような複雑な複数ファイル作業では、いったんセッションを終えて仕切り直すほうが結果的に速い
こまめに/contextでコンテキストの内訳を確認する習慣をつけておくと、どこにトークンを取られているかが可視化され、闇雲に消費を心配せずに済みます。
サブエージェントへの委譲でメインの文脈を守る
複数ファイルの調査や大量の検索結果は、メインのセッションに直接読み込むと一気に膨らみます。調査そのものをサブエージェントに任せ、要点だけをメインに返してもらう形にすると、メインの文脈は汚さずに済みます。守るべきコンテキストと使い捨てにできる作業を分けて考えるのが、長時間の開発を無理なく続けるコツです。
まとめ
トークン消費の最適化は、派手なテクニックよりも「常に乗り続けているものを軽くする」という地道な積み重ねが効きます。CLAUDE.mdを索引程度に絞り、専門的な手順はSkillsへ、使わないMCPは切り、会話は節目で圧縮・クリアする。この基本を押さえるだけで、日々の開発体験はかなり変わってきます。