Claude Codeのコストを半分にした7つの設定

に公開

はじめに

基礎編では /compact/clear といった日常的なコスト管理術を紹介した。

この記事では、その先にある設定レベルの最適化を解説する。Claude Codeの内部構造を理解し、「知らないうちにトークンを消費していた」ポイントを潰していく。


恐怖の実例:こうなる前に

設定を見直す動機として、まず実際に報告されているコスト事故を紹介する。

事例 金額 原因
5時間のデバッグセッション $3,500+(約52万円) コンテキスト肥大化に気づかず継続
auto-compact の無限ループ 数百ドル コンパクト→復元→コンパクトの繰り返し
Agent Teams の並列実行 通常の7倍 サブエージェントがそれぞれトークン消費

これらは極端な例だが、「設定を知らない」だけで発生しうる。以下の7つの設定で予防できる。


1. MCPサーバーの隠れたコスト

MCPサーバーは便利だが、接続しているだけでトークンを消費する

なぜコストが発生するのか

MCPサーバーを接続すると、そのサーバーが提供する「ツール定義」が毎リクエストのコンテキストに含まれる。つまり:

  • サーバーがアイドル状態でも、ツール定義分のトークンが消費される
  • 1サーバーあたり約 14,000トークン(ツール数による)
  • 3つ接続すれば、何もしなくても42,000トークン/リクエスト

使ってないのに金が溶ける。これ、電気消し忘れた部屋の比じゃない。

対策

使わないMCPサーバーは外す。必要な時だけ接続する。

# 現在の接続を確認
claude mcp list

# 不要なサーバーを削除
claude mcp remove サーバー名

CLI代替があるならCLIを使う。たとえばGitHub操作は MCP サーバーよりも gh コマンドの方がコンテキスト効率が良い。

操作 MCPサーバー CLI代替
GitHub MCP GitHub Server(14K+トークン/リクエスト) gh コマンド(0トークン)
ファイル検索 MCP Filesystem Server Claude Code内蔵のGlob/Grep
Web検索 MCP Web Search Claude Code内蔵のWebSearch

2. Skills分離で98%トークン削減

CLAUDE.md に全ルールを詰め込んでいないだろうか。

基礎編で「CLAUDE.md は短くする」と書いたが、ではルールをどこに書くのか。答えは Skills(スキル)だ。

CLAUDE.md vs Skills

CLAUDE.md Skills
読み込みタイミング 毎リクエスト 必要な時だけ
コスト影響 1行増える = 全リクエストのコスト増 使わない限りゼロ
向いている内容 プロジェクト全体の基本ルール 特定タスク用の詳細ルール

具体例

たとえば「コミットメッセージの書き方」が50行あるとする。

CLAUDE.md に書いた場合:ファイルを読むだけのリクエストでも50行分のトークンを消費する。

Skillsに分離した場合/commit を実行した時だけ読み込まれる。それ以外のリクエストでは消費ゼロ。

公式ドキュメントによると、CLAUDE.md は 500行以下 が推奨。それを超えるルールは Skills に移動すべき。


3. Hooksでログフィルタリング

Hooksを使って、不要なツール出力をフィルタリングできる。

なぜ効果があるのか

Claude Code がツールを実行すると、その出力全体がコンテキストに入る。たとえば git log の結果が500行あれば、500行分のトークンを消費する。地味に痛い。

Hooks の PostToolUse で出力を加工し、必要な部分だけを残すことで、90〜99%のトークン削減が可能。

設定例:Bash出力の行数制限

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "jq -r '.tool_output' | head -50"
          }
        ]
      }
    ]
  }
}

この設定で、Bash コマンドの出力が最大50行に制限される。git log やテスト結果の出力が数百行になっても、50行しかコンテキストに入らない。


4. /compact の最適タイミング

基礎編では「長い会話の途中で /compact」と書いた。ここでは最適なタイミングを示す。

自動コンパクトは遅すぎる

自動コンパクトはコンテキストの 95% で発動する。しかし80%を超えたあたりから、すでにパフォーマンスが低下し始める。

推奨:コンテキストの 50〜70% 時点で手動 /compact を実行する。

どうやって50〜70%を知るか

正確な数値を知る方法は限られるが、以下が目安になる:

  • 20回以上やり取りした:ほぼ確実に50%を超えている
  • 大きなファイルを複数読ませた:一気に消費する
  • Claudeの応答が遅くなった:コンテキスト肥大化のサイン

迷ったら /compact して損はない。


5. /rewindSummarize from here の活用

会話の途中で「ここから先は間違った方向に行った」と気づくことがある。

/rewind

会話を特定のポイントまで巻き戻すコマンド。間違った試行錯誤をなかったことにできる

/rewind

直近の会話を巻き戻すピッカーが表示される。

Summarize from here

巻き戻した後、それまでの会話を要約させる。これにより:

  • 間違った試行錯誤がコンテキストから消える
  • 正しい情報だけが残る
  • /clear と違い、有用な情報を保持したままリセットできる

/clear は「全部忘れる」、/rewind + 要約は「失敗だけ忘れる」。


6. Agent Teamsのコスト構造を理解する

Claude Code の Agent Teams(サブエージェント並列実行)は強力だが、コストも高い。

なぜ7倍になるのか

Agent Teams では複数のサブエージェントがそれぞれ独立したコンテキストを持つ。つまり:

  • メインエージェント:1コンテキスト分のコスト
  • サブエージェント×N:各1コンテキスト分のコスト
  • 合計 = (1 + N) × 単体コスト

3つのサブエージェントを並列で動かすと、単純計算で4倍。さらに各エージェントがファイルを読み込むと、7倍以上になることも。

いつ使うべきか

状況 判断
明確に独立したタスクが複数ある 使う価値あり
急いでいないが正確さが必要 直列で十分
コスト重視 直列で1つずつ

7. Boris Chernyの「一発正解」哲学

Claude Code の開発者 Boris Cherny は、コスト最適化について逆説的な哲学を持つ。

大きいモデルで一発正解を出す方が、小さいモデルで何度も修正するより安い。

つまり:

アプローチ トークン消費
安いモデルで試行 → 失敗 → 修正指示 → 再試行(×3回) 4倍以上
高性能モデルで一発正解 1倍

具体的な行動

  1. 指示を明確にする(基礎編テクニック3)。曖昧な指示での失敗が最大のコスト
  2. Plan Mode で設計を確認してから実装(基礎編テクニック5)。やり直しを防ぐ
  3. モデルの知能を信じて、十分な情報を与える。情報不足が試行錯誤の原因

「ケチって小さいモデルにする」よりも「正確な指示で一発で終わらせる」方がトータルコストは低い。


コスト最適化チェックリスト

チェック項目 確認方法
不要なMCPサーバーが接続されていないか claude mcp list
CLAUDE.md が500行を超えていないか wc -l CLAUDE.md
特定タスク用ルールがSkillsに分離されているか .claude/skills/ を確認
/compact を50〜70%時点で実行しているか 20回以上やり取りしたら実行
Agent Teams を不必要に使っていないか 直列で十分か検討

まとめ

設定 期待効果
MCP接続を最小化 リクエストあたり14K+トークン削減
Skills分離 不使用時のトークン消費ゼロ
Hooksでログ制限 出力の90〜99%をカット
/compact を早めに実行 パフォーマンス低下前にリセット
/rewind で失敗を巻き戻す 不要なコンテキストを除去
Agent Teams を慎重に使う 最大7倍のコスト増を回避
一発正解を狙う 試行錯誤の繰り返しを防止

基礎編の内容/compact/clear、具体的な指示)は全員に必要な「基本の薬」。

この上級編は、それでもコストが気になる人のための「専門外来」。自分の使い方を振り返り、該当するものから試してみてほしい。


参考


関連記事

GitHubで編集を提案

Discussion