🚀

Effort LevelをMaxに永続設定する方法

Claude Code

環境変数でmaxを強制適用 — settings.jsonバグを回避

Effort Levelとは何か

Claudeが1つの応答を生成する時、どれだけ深く考えるか(内部推論に使うトークン量)を調整するダイヤルです。ユーザーが見る最終回答の長さとは別に、応答する前にモデル内部で回す「思考プロセス」の深さが変わります。

簡単に言うと:

  • 低いeffort = 速く、少ないトークンで、直感的に回答

  • 高いeffort = ゆっくり、多くのトークンを使い、複数のケースを検討して回答

モデル自体(Opus 4.6、Sonnetなど)が同じでも、effort levelによって同じ質問への回答品質が明確に変わります。 簡単な質問ならlowで十分ですが、複雑なデバッグ・アーキテクチャ設計ではhigh/maxの方が正確な答えを出します。

Low / Medium / High / Max — 実質的な違い

レベル 内部推論トークン 応答速度 コスト 適した作業
Low 最小 最速 最安 ファイル確認、単純な質問、コマンド探し
Medium 中程度 一般的なコーディング、小規模リファクタ、テスト作成
High 多い 遅い 高い 複雑なバグ追跡、複数ファイルのリファクタ、設計レビュー
Max 最大 最も遅い 最高 困難なアーキテクチャ決定、エッジケースが多いコード、「一発で正解が必要」な作業

High vs Medium — 実際にどんな違いが予想されるか

同じ「N+1クエリ最適化」依頼を例にすると:

Medium:

  • 目に見えるN+1を見つけてincludes(:association)を1行追加

  • 基本的な解決、通常は正しい

  • 10〜20秒で応答

High:

  • N+1を見つけた後、joins vs includesどちらが適切か判断

  • 関連する他のクエリも合わせて検討

  • テストへの影響範囲も考慮

  • 30〜60秒で応答、回答がより洗練されている

違いが出る場面:

  • エッジケース検出: mediumが見逃すものをhighが拾う(nil処理、並行処理など)

  • 複数解決策の比較: mediumは最初に浮かんだ答え、highは代替案を比較して推奨

  • 既存コードスタイル遵守: mediumは一般的パターン、highはプロジェクトのパターンをよく踏襲

  • 長い推論チェーン: 「AならB、ならC、ならD...」といった多段階論理でhighが圧倒的に正確

違いが小さい場面:

  • ファイル1〜2個だけ見る単純作業

  • 「このエラーは何ですか」のような事実質問

  • 既知のAPI使い方の質問


本題:なぜMaxに永続設定するか

Claude Code v2.1.68(2026-03-04リリース)からデフォルトのeffort levelが従来のhighからmediumに下がりました。公式チェンジログでの変更ですが、ユーザーからすると回答品質が下がったように感じるかもしれません。

常にmaxで動作させたい場合、.zshrcに環境変数を追加するのが最も簡単です。

Effort level 設定の優先順位

1. 環境変数: CLAUDE_CODE_EFFORT_LEVEL  (最優先)
2. CLIフラグ: claude --effort max
3. settings.json: "effortLevel": "high"
4. モデルデフォルト(Opus 4.6 は medium)

上にあるほど優先適用されます。環境変数が1位なので、一度設定すれば他の設定を上書きします。

追加方法

.zshrcに以下を追加:

# Claude Code: デフォルトのeffort levelをmaxに設定
# settings.jsonではmaxが永続化できないバグがあるためenv varで設定
export CLAUDE_CODE_EFFORT_LEVEL=max

新しいターミナルセッションから自動適用されます。

なぜ settings.json ではなく環境変数か

  • settings.json: "effortLevel": "max"を設定しても反映されない。/model UIを操作すると値が上書きされる既知バグ(GitHub issue #30726)。highまでは保存されるがmaxは保存されない

  • CLIフラグ: claude --effort maxは動作するが毎回タイピングが必要。aliasにもできるが環境変数の方がシンプル

  • 環境変数: 全セッションに自動適用され、優先順位も最上位

ultrathink キーワードとの違い

Claude Code にはultrathinkというキーワードがあり、プロンプトに含めるとそのターンだけhigh effortに上がります。

設定方法 effort level 持続性
ultrathink キーワード high そのターンのみ
/effort high high セッション中
/effort max max セッション中
CLAUDE_CODE_EFFORT_LEVEL=max(env var) max 永続

結論:env varでmaxを設定すると、ultrathinkより上の水準が常に適用されます。 毎回「深く考えて」と呼びかける必要がなくなります。

注意点

  • maxはトークン使用量と応答時間が最も高くなる。簡単な作業にはオーバースペック

  • 必要に応じて一時的に下げるにはセッション中に/effort lowまたは/effort mediumを実行

  • 環境変数を適用するには新しいターミナルを開くかsource ~/.zshrcを実行

使い方

1

.zshrcに`export CLAUDE_CODE_EFFORT_LEVEL=max`を追加

2

新しいターミナルを開くか`source ~/.zshrc`を実行して適用

3

優先順位:env var > CLIフラグ > settings.json > モデルデフォルト。env varが最優先

4

settings.jsonではmaxが永続化されない(GitHub issue #30726)。env var必須

5

ultrathinkより上位:ultrathinkはhigh(そのターンのみ)、env var maxはmax(永続)

タグ

#effort-level #zshrc #env-var #ultrathink #max #performance

Source

コミュニティTips (2026-03-16 共有)