Claude Code コスト・コンテキスト管理完全ガイド|/compact・–effort・モデル選択でトークン消費を最適化する方法

Claude Code コスト・コンテキスト管理完全ガイド|/compact・–effort・モデル選択でトークン消費を最適化する方法 AI開発

Claude Codeをヘビーに使い始めると、気になってくるのがトークン消費とコストです。長いセッションではコンテキストウィンドウが埋まり、重要な指示が消えていくこともあります。この記事では、コストの把握・コンテキストの効率的な管理・思考量の制御・モデル選択によるコスト最適化まで、Claude Codeのコスト管理に関する機能を体系的に解説します。

Claude Code全般の概要はClaude Code完全ガイドを参照してください。

スポンサーリンク

コストを把握する:/cost と /stats

/cost コマンド(APIユーザー向け)

セッション内で/costを実行すると、そのセッションのAPIトークン使用量とコストが表示されます。

/costの出力例
/cost

# 出力例:
# Total cost:            $0.55
# Total duration (API):  6m 19.7s
# Total duration (wall): 6h 33m 10.2s
# Total code changes:    0 lines added, 0 lines removed
Max/Proサブスクライバーは /stats を使う
/costはAPI課金ユーザー向けのコマンドです。Claude Max・Proサブスクリプションをお使いの場合は、/statsでサブスクリプションの消費パターンを確認できます。なお、バックグラウンド処理(会話サマリー等)で1セッションあたり最大$0.04程度のトークンが自動的に発生します。

コンテキストを管理する:/compact と /clear

/compact で会話を圧縮する

/compactを実行すると、会話履歴を要約・圧縮してコンテキストを節約できます。長いセッションでコンテキストウィンドウが満杯に近づいたときや、特定のトピックに集中したいときに有効です。

/compactの使い方
# シンプルに圧縮する
/compact

# 圧縮時のフォーカスを指定する(重視する内容を残してもらう)
/compact Focus on code samples and API usage

# テスト結果とコード変更を中心に圧縮
/compact Keep test output and recent code changes

/compactの後、CLAUDE.mdはディスクから再読み込みされて再注入されます。そのためCLAUDE.mdに書いたルールは圧縮後も消えません。ただし、会話の中で口頭で伝えた指示(「今日の作業ではこのスタイルで書いて」等)は圧縮で消えることがあります。永続させたいルールは必ずCLAUDE.mdに書いておきましょう。

コンパクション指示をCLAUDE.mdに書く

/compactが実行されるたびに反映させたい指示を、CLAUDE.mdに書いておけます。

CLAUDE.mdへのコンパクション指示の記述例
# Compact instructions

When you are using compact, please focus on:
- test output and recent code changes
- API contracts and interface definitions
- Unresolved TODOs and open questions

/compact の自動実行(auto-compaction)

コンテキストウィンドウの上限に近づくと、Claude Codeが自動的に/compactを実行します(auto-compaction)。自動コンパクションが起きたセッションでは、冒頭の会話の詳細な指示が失われる可能性があります。重要なルールはCLAUDE.mdに書いておくのが最も確実な対策です。

コンテキストの上限に達する前にClaudeが自動でとる対策は以下の順序です。

  1. 古いツール実行の出力を削除(長い実行ログ等を圧縮)
  2. それでも足りない場合、会話全体を要約(auto-compaction)

/clear でコンテキストを完全リセットする

/clearを実行するとコンテキストが完全にリセットされ、新規セッション状態になります。関係のない別の作業に切り替えるときに使います。古いコンテキストは残っていると毎回トークンを消費するため、早めにクリアすることが効率的です。

/clearの使い方
# コンテキストを完全リセット
/clear

# ヒント: /clearの前にセッション名を付けておくと後で/resumeで戻れる
/rename auth-refactor-session
/clear
# → 後から claude --resume auth-refactor-session で続きから再開可能

思考量を制御する:–effort フラグ

--effortフラグでモデルの思考量(Adaptive Reasoning)を制御できます。思考トークンはoutputトークンとして課金されるため、タスクの複雑さに合わせて適切なレベルを選ぶことがコスト最適化の鍵です。

レベル 特徴 向いているタスク
low 速く・安い。思考量を最小限に抑える 単純なコード補完・書式変更・定型作業
medium バランス型。デフォルト設定 一般的な実装・リファクタリング・コードレビュー
high より深い推論。複雑な問題向け アーキテクチャ設計・難しいバグの特定・複雑なアルゴリズム
max Opus 4.6専用。思考トークン上限なし 最も難しい問題・セキュリティ分析・数学的証明
max レベルはセッション内のみ有効
--effort maxはOpus 4.6専用です。またmaxレベルはセッションをまたいで設定が保存されませんlow/medium/highはセッションをまたいで保存されます。
–effortフラグの使い方
# セッション起動時に指定
claude --effort low     # シンプルなタスク向け
claude --effort high    # 複雑な問題向け
claude --effort max     # Opus 4.6専用、最大思考量

# セッション内でコマンドで変更
/effort low
/effort high
/effort auto   # モデルのデフォルトに戻す

# settings.json での恒久設定
# { "effortLevel": "medium" }

# 環境変数でも設定可能
export CLAUDE_CODE_EFFORT_LEVEL=high
Adaptive Reasoningを完全に無効にする
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1環境変数を設定すると、Adaptive Reasoning(思考量の動的調整)を完全に無効化できます。その場合は固定のMAX_THINKING_TOKENSで動作します。

モデル選択でコストを最適化する:–model フラグ

--modelフラグでセッションで使用するモデルを切り替えられます。タスクの複雑さに合わせてモデルを使い分けることで、コストを大幅に削減できます。

エイリアス モデル 特徴・用途
sonnet Claude Sonnet 4.6 デフォルト。コスパが良く速い。多くのタスクに最適
opus Claude Opus 4.6 最高性能。複雑な推論・設計・研究向け。高コスト
haiku Claude Haiku 4.5 最も速く安い。単純なタスク・Subagentに最適
opusplan Opus→Sonnetハイブリッド 計画フェーズにOpus、実装フェーズにSonnetを自動で使い分け
–modelフラグの使い方
# セッション起動時に指定
claude --model sonnet       # デフォルト
claude --model haiku        # 安く速く(単純タスク向け)
claude --model opus         # 最高性能が必要なとき
claude --model opusplan     # 計画→実装のハイブリッド

# 1Mトークンのコンテキストウィンドウを使う
claude --model sonnet[1m]

# セッション内でコマンドで切り替え
/model haiku
/model sonnet

# Subagentのモデルを指定(.claude/agents/*.md の frontmatter)
# model: haiku
opusplanが費用対効果が高い理由
opusplanモードは、アーキテクチャ設計・実装計画の立案にOpusを使い、実際のコーディングはSonnetで行います。「考える部分」は高性能モデルに任せ、「手を動かす部分」はコスパの良いモデルに任せるという設計です。

CI/CDでの予算上限:–max-budget-usd

--max-budget-usdheadlessモード(-pフラグ)専用の予算上限フラグです。指定した金額を超えるAPIコールを停止します。CI/CDパイプラインや自動化スクリプトでコストが予期せず膨らむことを防げます。headlessモードの詳細はClaude Code headlessモード完全ガイドを参照してください。

–max-budget-usdの使い方
# 5ドルを上限に設定
claude -p "Perform code review" --max-budget-usd 5.00

# GitHub Actions等のCI/CDで使う場合
claude -p "$REVIEW_PROMPT"   --max-budget-usd 2.00   --model haiku   --output-format json

CLAUDE.mdのトークン節約テクニック

CLAUDE.mdはすべてのセッションで読み込まれるため、長くなるほどトークンコストが積み上がります。以下のテクニックでCLAUDE.mdを効率化できます。

@import構文でファイルを参照する

CLAUDE.mdに@ファイルパスと書くと、そのファイルをインポートできます。詳細な手順書やルールを別ファイルに分けておき、必要なときだけ参照させる構造にすることで、CLAUDE.mdのサイズをコンパクトに保てます。

CLAUDE.mdでの@import構文
# プロジェクト概要
See @README for project overview.
See @package.json for available commands.

# ワークフロー
- Gitブランチ戦略: @docs/git-workflow.md
- デプロイ手順: @docs/deploy-guide.md

# 個人設定(絶対パスやホームパスも使える)
@~/.claude/my-preferences.md

最大5段階のネストインポートが可能です。ただし初回読み込み時にユーザーの承認ダイアログが表示されます。

CLAUDE.mdを200行以内に抑える

CLAUDE.mdは500行以下、理想的には200行以下に抑えることが推奨されます。長すぎるとClaudeがすべての指示に従いにくくなり、トークン消費も増えます。詳細な手順はCLAUDE.md完全ガイドを参考に整理してください。

その他のトークン節約テクニック

テクニック 効果
詳細なワークフロー手順をSkillsに移す Skillsは使用時のみロードされるため、ベースのコンテキストが小さくなる
.claude/rules/でpath-specificルールを使う 特定ファイル型にのみルールを適用。全会話にロードされない
未使用のMCPサーバーを無効化する ツール定義が常時コンテキストを消費しているため削除で節約できる
HTMLコメント(<!-- ... -->)を使う CLAUDE.mdの自動注入時には非表示(人間向けのメモを書くのに有効)
Subagentのモデルをhaikuにする サブエージェントの定義ファイルにmodel: haikuと書くだけ

まとめ:コスト最適化チェックリスト

  • /cost(APIユーザー)または/stats(Max/Pro)でコストを定期確認
  • 長いセッションでは/compactで圧縮・別タスクは/clearでリセット
  • 単純なタスクは--effort low・複雑な問題は--effort high
  • モデルを使い分ける:Haiku(単純・安い)→ Sonnet(標準)→ Opus(複雑・高品質)
  • CI/CDでは--max-budget-usdで予算上限を設定
  • CLAUDE.mdを200行以内に保つ・@importで詳細を別ファイルに
  • Subagentにはmodel: haikuを指定してコスト削減
  • 未使用のMCPサーバーは無効化する

よくある質問

Q/compact を実行すると会話の内容を忘れてしまいますか?

A圧縮後は会話の詳細な履歴ではなく、Claudeが重要と判断した内容の要約になります。「口頭で伝えた指示」は消える可能性があります。永続させたいルール・制約・スタイルはCLAUDE.mdに書いてください。/compact Focus on code changesのようにフォーカスを指定すると、重要な内容を残しやすくなります。

Qコンテキストが満杯になったらどうなりますか?

Aまず古いツール実行の出力が自動的に削除されます。それでも足りない場合、Claude Codeが自動で会話を要約します(auto-compaction)。この際、冒頭の詳細な指示が消える可能性があります。重要な指示はCLAUDE.mdに書いておくことで、auto-compaction後も再注入されます。

Q–effort maxを使うといつも使えますか?

AmaxレベルはClaude Opus 4.6でのみ使えます。またmaxはセッションをまたいで設定が保存されないため、毎回--effort maxを指定するか、セッション内で/effort maxと実行する必要があります。設定ファイルや環境変数で恒久的にmaxは設定できません。

Qopusplanモードはどんな状況でおすすめですか?

A大規模なリファクタリング・新機能の設計・アーキテクチャの見直しのように「まず深く考えて計画を立て、それから実装する」タスクに向いています。計画フェーズにOpusの高い推論能力を使い、実装フェーズはSonnetでコスパよく進めます。シンプルなバグ修正や単純な追加実装には通常のsonnetで十分です。

QSubagentのモデルをHaikuにする方法は?

A.claude/agents/ディレクトリのエージェント定義ファイルのfrontmatterにmodel: haikuと追記するだけです。メインセッションのモデルとは独立して指定できます。調査・要約・単純なコード生成をSubagentに任せる場合はHaikuで十分なことが多く、コストを大幅に削減できます。

QCLAUDE.mdの@import構文でインポートできるファイルの形式は?

AMarkdownファイル(.md)だけでなく、テキストファイル全般をインポートできます。@package.json@READMEのように、コードファイルや設定ファイルも直接参照できます。相対パス・絶対パス・ホームディレクトリパス(@~/...)すべて対応しています。最大5段階のネストインポートが可能で、初回は承認ダイアログが表示されます。