Claude Code Effort Level コスト最適化ガイド 2026 — タスク別設定と月額利用料を抑える実践パターン
Claude Code のEffort Levelをタスク種別ごとに最適化してコストを30%削減する実践ガイド。設定優先順位チェーン(環境変数→settings.json→CLIフラグ→/effort)の実測ログ、Subagentと組み合わせた設計パターン、よくある失敗パターン3選を2026年6月版でまとめました。
エンジニアのゆとです。
Claude Code の月額コストが思ったより膨らんでいる——という人に聞きたいことがある。
「Effort Level、ちゃんと設定してますか?」
デフォルトのまま全タスクを高 Effort で流し続けると、コメント1行追加するのに Opus 4.7 が全力で考えてくれる。ありがたいが、そのトークンは確実に請求に乗る。
Effort Level を正しく使い分けるだけで、体感コストは 20〜30% 削減できる。さらに Subagent の frontmatter と組み合わせると、「このエージェントだけ低 Effort」「あの処理は高 Effort」という粒度で自動制御できる。
この記事では、コスト最適化の観点から Effort Level を整理する。仕組みの基本は既存の完全ガイドに任せて、ここでは「いくらかかるか」「どこで削れるか」「どう自動化するか」に絞って書いていく。

1. Effort Level とコストの関係を正しく理解する
思考トークンがコストの本体
Claude Code の料金は「送信トークン + 受信トークン + 思考トークン」で構成される。通常の入出力はそれほど変わらないが、思考トークン(extended thinking)はモデルが内部で「考える」際に生成されるトークンで、Effort Level が高いほど大量に使われる。
思考トークンは画面に表示されるかどうかに関わらず、生成されたすべてが課金対象だ。折り畳まれていても、Ctrl+O で表示していなくても、課金される。
Effort Level 別のトークン消費の体感値(同一タスクで比較):
| Effort Level | 思考トークン目安 | 同一タスクのコスト比 |
|---|---|---|
low | 最小(ほぼゼロ) | 1× (基準) |
medium | 小 | 1.5〜2× |
high | 中 | 2〜3× |
xhigh | 大 | 3〜5× |
max | 最大(上限なし) | 5〜10×(overthinking込み) |
公式には具体的な係数は公開されていない。ただ、自分のログで low と xhigh を同一タスクで比較すると、思考トークンだけで 3〜5 倍の差がある。xhigh から max は 1.5〜2 倍程度だが、overthinking が発動すると一気に跳ね上がる。
Effort Scale はモデルごとにキャリブレーションされている
重要な点として、同じ Level 名でも、モデルが違えば実際の思考量は異なる。
公式ドキュメントより:「The effort scale is calibrated per model, so the same level name does not represent the same underlying value across models.」
つまり Opus 4.8 の high と Opus 4.6 の high は名前が同じでも、内部の思考量は異なる。コスト計算をするときは「モデル × Effort Level」のセットで考える必要がある。
モデル別の対応状況(2026年6月版)
| モデル | 対応 Effort Level | デフォルト |
|---|---|---|
| Opus 4.8 | low / medium / high / xhigh / max | high |
| Opus 4.7 | low / medium / high / xhigh / max | xhigh |
| Opus 4.6 / Sonnet 4.6 | low / medium / high / max(xhigh は high にフォールバック) | high |
| Sonnet 4.5 以下 / Haiku | Effort Level 非対応 | — |
Opus 4.8 が最新の opus エイリアスとして登録されている。Opus 4.7 と違い、Opus 4.8 のデフォルトは xhigh ではなく high。Opus 4.7 から乗り換えた場合、デフォルトの思考量が下がる点に注意したい。
2. 設定方法の全パターンと優先順位チェーン
4層の優先順位
Effort Level の設定は複数の経路があり、優先順位が明確に決まっている。知らないとどの設定が効いているのか混乱する。
環境変数(最優先)
└─ CLAUDE_CODE_EFFORT_LEVEL=high
↓(上書き)
settings.json の effortLevel
└─ ~/.claude/settings.json or .claude/settings.json
↓(上書き)
CLIフラグ --effort(セッション限定)
└─ claude --effort medium
↓(上書き)
/effort コマンド(セッション内変更)
└─ /effort high
↓(上書き)
Subagent/Skill frontmatter の effort(そのエージェント実行時のみ)
└─ effort: xhigh
実際に確認してわかった挙動:
環境変数が最強。.zshrc に export CLAUDE_CODE_EFFORT_LEVEL=high と書いてあると、settings.json の "effortLevel": "xhigh" も /effort xhigh も無効化される。「設定したはずなのに反映されない」場合の原因 No.1。
/effort はセッション内変更だが settings.json に書き込まれる。/effort high と打つと、その値が ~/.claude/settings.json の effortLevel に自動保存される。翌セッションも high のままになる。
--effort フラグはセッション限定。claude --effort medium で起動したセッションは medium だが、次回起動時は元の設定に戻る。「今日だけコスト抑えたい」日に使いやすい。
max は settings.json に書けない。"effortLevel": "max" とすると設定エラーになる(セッション限定設定のため)。max は環境変数か /effort max かで設定する。
Subagent frontmatter は環境変数より弱い。frontmatter に effort: xhigh と書いても、環境変数 CLAUDE_CODE_EFFORT_LEVEL=medium があるとそちらが勝つ。
設定の確認方法
現在どの Effort Level が適用されているか確認する方法:
- スピナー横の表示 — Claude Code 画面下のスピナー付近に「with high effort」のように表示される
/status— モデル情報とアカウント情報と一緒に Effort Level も確認できる/config— 設定値の一覧を確認できる
「設定したのに反映されていない」と感じたら、まず /status で実際に何が適用されているか確認する。
settings.json の記載場所と優先順位
settings.json には3段階のスコープがある:
// ユーザースコープ(全プロジェクト共通)
~/.claude/settings.json
// プロジェクトスコープ(そのプロジェクトのみ)
.claude/settings.json
// ローカルスコープ(git管理外の個人設定)
.claude/settings.local.json
コスト最適化の観点で実用的な使い方:プロジェクトスコープに「このプロジェクトは検証用なので medium で十分」という設定を入れておくと、そのプロジェクト内では自動的に Effort が抑えられる。
// .claude/settings.json(プロジェクト固有)
{
"effortLevel": "medium"
}
3. タスク別 Effort 推奨マトリクス(コスト試算付き)
タスク種別ごとの推奨 Effort
実運用ベースで整理した。「この Effort で十分」と「この Effort が最低ライン」を分けて書いた。
| タスク種別 | 推奨 Effort | 最低ライン | コスト節約コメント |
|---|---|---|---|
| コメント追加 / import整理 | low | low | 低くていい。深く考える必要がない |
| 変数・関数の名前変更(全ファイル一括) | low | low | スコープが明確なのでOK |
| README / ドキュメント執筆 | medium | medium | 構造判断が入るが重くない |
| 新規エンドポイント追加(既存パターンあり) | medium | medium | パターン踏襲なら medium で十分 |
| テスト追加(既存テストと同じ形式) | medium | medium | パターンコピーなので low でも可 |
| 複数ファイルのリファクタリング | high | high | 依存関係の把握が必要。medium だと漏れが出やすい |
| バグ調査(原因不明) | high | high | 推論が要る |
| パフォーマンス改善(計測と提案) | xhigh | high | 深い分析が欲しい場合は xhigh |
| アーキテクチャ設計・レビュー | xhigh | high | 長期影響があるので xhigh 推奨 |
| セキュリティ脆弱性の診断 | xhigh | xhigh | 浅い分析は危険。ケチらない |
| DBスキーマ大規模変更 | max | xhigh | 一回勝負の重要タスクには max |
| レガシーコードの全面移行 | max | xhigh | max の overthinking がむしろ有益なケース |
コスト試算のモデル
厳密な計算は難しいが、月額コストの大まかな削減効果を試算する考え方:
仮に1日の Claude Code 使用を「軽いタスク 60%、中程度タスク 30%、重いタスク 10%」とする。
パターンA: 全タスク xhigh(最適化なし)
- 全タスクで高思考トークン消費
- 軽いタスクでも overthinking リスク
パターンB: タスク別最適化
- 軽いタスク 60% →
lowormedium(コスト 50〜70% 削減) - 中程度タスク 30% →
high(コスト 30〜40% 削減) - 重いタスク 10% →
xhighormax(そのまま)
全体で見ると、軽いタスクの思考コストが大幅に下がるだけで月額の 25〜35% 削減は現実的。
日常運用のリズム
毎日使う場合の切り替えパターン:
# 朝のセットアップ(デフォルト)
# settings.json: "effortLevel": "high"
# 軽い作業が続く日の起動
claude --effort medium
# 深い分析が必要な一発だけ
# 通常のセッション中に:
/effort xhigh
# 作業が終わったら
/effort high # 戻す
# 月末のコスト節約週間
export CLAUDE_CODE_EFFORT_LEVEL=medium
claude
4. Subagent と組み合わせた高度な設定
Subagent frontmatter で自動制御
Subagent の frontmatter に effort: を書くと、そのエージェント実行中だけ Effort Level が上書きされる。
---
name: doc-writer
description: ドキュメント・コメントの執筆専用エージェント
effort: medium
---
## 役割
このエージェントはドキュメント執筆・コメント追加を担当する。
コスト効率を重視し、medium effort で動く。
---
name: security-reviewer
description: セキュリティ脆弱性の診断・レビュー
effort: xhigh
---
## 役割
このエージェントはセキュリティ診断を担当する。
浅い分析は危険なので xhigh effort 固定。
これで「メインセッションは high で動きつつ、ドキュメント作業は自動的に medium、セキュリティレビューは自動的に xhigh」という運用が可能になる。
親 Subagent × 子 Subagent での分離設計
マルチエージェント構成では、エージェントの階層ごとに Effort を変えるのが効率的。
親エージェント(タスク分解・調整役)
└─ effort: high(設計判断を含む)
├─ 子エージェント: file-scanner
│ └─ effort: low(ファイル読み取り・一覧化のみ)
├─ 子エージェント: code-writer
│ └─ effort: high(実際のコード生成)
└─ 子エージェント: test-runner
└─ effort: medium(テスト結果の解釈)
単純な情報収集・ファイル操作系の子エージェントは low で十分。判断を必要としない作業で xhigh を使うのはトークンの無駄だ。
環境変数と frontmatter の干渉に注意
前述の通り、環境変数は frontmatter より優先順位が高い。
export CLAUDE_CODE_EFFORT_LEVEL=medium
この状態でどの Subagent を呼び出しても、frontmatter の effort: xhigh は無効になり、全エージェントが medium で動く。
コスト節約のために環境変数を使っている日は、セキュリティレビュー系のエージェントに注意。意図せず低 Effort で診断が走る。
プロジェクトスコープの settings.json で Effort を設定している場合は問題ない(settings.json よりも frontmatter が優先される)。
5. よくある失敗パターン3選
失敗パターン1: xhigh 常時 ON でコスト爆発
「Claude Code Pro を契約したから無限に使えると思っていた」というパターン。
Pro / Max プランでも思考トークンの消費量には上限がある。特にOpus 4.8 + xhigh の常時運用は、Max プランの月次使用上限に達しやすい。
Max プランでコスト上限に当たると Claude Code が Sonnet にフォールバックする仕様がある(「Claude Code may automatically fall back to Sonnet if you hit a usage threshold with Opus」)。この自動フォールバックに気づかず「なんか急に回答が変わった」と感じたことがある人は、Effort の見直しが先かもしれない。
解決策:日常作業は high をベース、重いタスクだけ都度 xhigh or max に切り替える。
失敗パターン2: max 固定によるトークン枯渇
.zshrc に export CLAUDE_CODE_EFFORT_LEVEL=max と書いて全セッションを max 運用するパターン。
max は「上限なし」でトークンを消費する設計なので、長大なコードベースの調査タスクで 1セッションにトークンを使い切ることがある。さらに、公式が明記しているとおり overthinking(考えすぎ) が発生しやすく、シンプルな問題に対して大量の検討項目を並べた冗長な回答が返ってくる。
max はセッション限定が設計上の意図だ。「この問題だけは最高品質で」という1発用途に留める。
失敗パターン3: Sonnet + max で Effort が無効になるパターン
CLAUDE_CODE_SUBAGENT_MODEL=claude-sonnet-4-6 でサブエージェントモデルを Sonnet に指定しつつ、セッション全体に max を設定するパターン。
Sonnet 4.6 は max をサポートしているが、**adaptive reasoning(適応型推論)**は Opus 4.7 以降でのみ完全に機能する。Sonnet で max を使っても、Opus で使うときほどの「思考の深さ」は期待できない。
Effort Level は「どれくらい深く考えるか」の上限を設定するものだが、そもそもモデルの推論能力を超えた設定をしても意味がない。Sonnet で複雑な設計判断をさせたいなら、max より前にモデルを Opus に変えることを検討すべきだ。
6. まとめ — 1日10分の設定でコストを30%削減する実践手順
コスト最適化の基本は3ステップ。
ステップ1: ベースラインを設定する
// ~/.claude/settings.json
{
"effortLevel": "high"
}
high はほとんどの作業に適切なバランスポイント。xhigh がデフォルトのモデル(Opus 4.7)を使っている場合、high に下げるだけで体感コストが 20〜30% 下がる。
ステップ2: 軽い作業専用セッションは --effort で起動する
# ドキュメント整理の日
claude --effort medium
# コメント追加・import整理だけの日
claude --effort low
毎回設定を変えるのが面倒なら、エイリアスを作っておく:
alias cc-light='claude --effort medium'
alias cc-deep='claude --effort xhigh'
ステップ3: Subagent を使っているなら frontmatter で自動化する
# 単純な情報収集系エージェント
effort: low
# コード生成・設計判断が入るエージェント
effort: high
# セキュリティ・アーキテクチャレビュー系
effort: xhigh
この3つを設定するだけで、「常に全力で考える」状態から解放される。Claude Code は思考量が多ければ良いというものではなく、タスクの複雑さに合った Effort が最も良い結果を出す。コスト削減は品質を落とすことではなく、思考リソースの最適配分だ。
よくある質問
Effort Level でどれくらいコストが変わりますか?
公式に正確な係数は公開されていないが、自分の実運用では low と xhigh で同一タスクの思考トークンに 3〜5 倍の差がある。xhigh から max は 1.5〜2 倍が目安だが、overthinking が発動すると倍以上になることも。全タスクを xhigh から high に変えるだけで、月次コストの 20〜30% 削減が現実的。
Subagent の frontmatter で設定した effort は必ず反映されますか?
反映されるが、環境変数 CLAUDE_CODE_EFFORT_LEVEL が設定されている場合は環境変数が優先される。frontmatter の effort 設定は、環境変数 > セッション設定 > frontmatter の順序で上書きされる。コスト節約目的で環境変数を使っている場合、セキュリティ診断系エージェントの Effort が意図せず下がっていないか注意する。
max を常用してもいいですか?
技術的には可能だが推奨しない。max は「上限なし」設計で overthinking が起きやすく、シンプルなタスクで不要なトークンを大量消費する。Max プランでも使用上限があり、max 常用だと Sonnet へのフォールバックが早まる。日常は high か xhigh、本当に重要な一回勝負のタスクだけ max が現実解。
Opus 4.8 に乗り換えたら Effort のデフォルトが変わりました
Opus 4.8 のデフォルトは high、Opus 4.7 のデフォルトは xhigh。モデルを変えるときに Claude Code は「そのモデルのデフォルト Effort」を自動適用する(以前に別モデルで設定した値は引き継がれない)。Opus 4.7 から 4.8 に乗り換えると、デフォルトが xhigh から high に下がる。意図せずパフォーマンスが変わったと感じたらモデルと Effort Level の組み合わせを確認する。
settings.json に書いた effortLevel が反映されません
環境変数 CLAUDE_CODE_EFFORT_LEVEL が設定されていないか確認する(echo $CLAUDE_CODE_EFFORT_LEVEL)。環境変数がある場合、settings.json の設定は上書きされる。環境変数がなければ Claude Code を再起動して確認。.claude/settings.json(プロジェクトスコープ)と ~/.claude/settings.json(ユーザースコープ)が競合していないかもチェックポイント。
関連記事



