Claude Code の effort とは:既定値・おすすめ・設定が効かない原因
Claude Code の effort は作業量の設定で、Opus 5.5 の既定は medium です。/effort high で保存し、効かなければ環境変数を確認します。
目次

Claude Code の effort(エフォートレベル)は、1つの依頼に Claude がどれだけ手間をかけるかを決める設定です。考える量だけでなく、読むファイルの数、ツールを呼ぶ回数、どこまで進めてから確認に戻ってくるかも変わりますが、答えるモデルが変わるわけではありません。レベルは low・medium・high・xhigh・max の5段階で、2026年11月2日時点の既定値は Opus 5.5・Sonnet 5.5・Haiku 5.5 が medium、Opus 4.7 が xhigh、ほかの対応モデルが high です。フッターに medium と出ていても、性能が落ちたわけではありません。
レベルを変えるときは、まず /effort status で今の状態を確かめ、/effort high のようにレベル名を入力します。この操作は使用中のモデルの既定値として ~/.claude/settings.json の modelSettings に保存され、次のセッションにも残ります。今のセッションだけで試したいなら、引数なしの /effort で開くスライダーで s を押します。max は /effort、スライダー、--effort のどれで選んでもそのセッション限りで、設定ファイルにも保存できません。毎回 max で始めるには、環境変数 CLAUDE_CODE_EFFORT_LEVEL=max を使います。
設定したのに効かないときは、上書きしている指定を探します。環境変数 CLAUDE_CODE_EFFORT_LEVEL はほかのすべての指定に勝ち、ユーザー設定のトップレベルに書いた古い "effortLevel" は Opus 5.5 以降のモデルでは無視されます。どちらも 2026年11月2日に、Claude Code 2.1.316 が実際に送るリクエストで確かめた挙動です。
Claude Code の effort とは:作業量のツマミで、モデルの賢さではない
effort は「考える時間」の長さだけを決める設定ではありません。Anthropic の解説記事「Choosing a Claude model and effort level in Claude Code」によれば、effort が高いと Claude はファイルを読む、テストを走らせる、作業を見直すといった行動を増やしてから戻ってきます。低いと、自分でトークンを使って調べるより、ユーザーに追加の情報を求めるほうを選びます。モデルが知識と能力の幅を決め、effort はその能力にどれだけの手順をかけるかを決める、という分担です。
結果に不満があるときの見分け方も、同じ記事に書かれています。必要な情報がそろっていて、Claude がきちんと取り組んだのに間違えたなら、より能力の高いモデルに替えるサインです。ファイルを読み飛ばした、テストを実行しなかった、リファクタリングを途中で投げ出したといった失敗なら、effort を上げます。Sonnet 5.5 の high と Opus 5.5 の medium のどちらを使うかで迷うなら、「Sonnet 5.5とOpus 5.5の使い分け:半額が効く仕事」が判断の材料になります。
同じレベル名でも、モデルによって中身は違います。Claude Code のモデル設定ドキュメントによると effort のスケールはモデルごとに調整されており、Opus 5.5 の既定 medium は Opus 5 の既定 high より1段低い名前ですが、Anthropic のテストではコーディングとナレッジワークの評価で同等以上の結果だったとされています。Opus 5 から移る場合は、以前のレベルを持ち込まずに medium から始めるよう公式に勧められています。
モデル別のデフォルト effort:Opus 5.5・Sonnet 5.5・Haiku 5.5 は medium
既定値はモデルで決まります。下の表は、公式ドキュメントにある選べるレベルと既定値に、2026年11月2日に Claude Code 2.1.316 が実際に送った値を並べたものです。7つのモデルとも、送られた値はドキュメントの既定値と一致しました。
| モデル | 選べるレベル | ドキュメントの既定値 | 実際に送られた値 |
|---|---|---|---|
| Opus 5.5 | low〜max の5段階 | medium | medium |
| Sonnet 5.5 | low〜max の5段階 | medium | medium |
| Haiku 5.5 | low〜max の5段階 | medium | medium |
| Fable 5.1 | low〜max の5段階 | high | high |
| Opus 5 | low〜max の5段階 | high | high |
| Opus 4.7 | low〜max の5段階 | xhigh | xhigh |
| Opus 4.6 | xhigh を除く4段階 | high | high |
送信値の確認は次の条件で行いました。macOS 上で設定ディレクトリを空にした Claude Code 2.1.316 を、ANTHROPIC_BASE_URL で受け取ったリクエストを記録するだけのローカルの模擬エンドポイントにつなぎ、ほかの設定なしで claude -p "Reply with OK" --model <モデル ID> を実行して、リクエストの output_config.effort を読んでいます。実際のモデルは呼んでいないので、分かるのは Claude Code が何を送るかであり、回答の質やトークン消費は分かりません。以下の節で「実測」と書いた結果も、同じ版と同じ模擬エンドポイントで得たものです(対話モードの確認は tmux 上のターミナルで実行)。
表にない Sonnet 5、Opus 4.8、Fable 5 も5段階すべてに対応し、ドキュメント上の既定値は high です。Sonnet 4.6 は Opus 4.6 と同じく xhigh がなく、一覧にないモデルは effort 自体に対応していません。対応していないレベルを指定すると、Claude Code はそれ以下で最も高い対応レベルに黙って切り替えます。実測でも、Opus 4.6 に --effort xhigh を付けて起動すると、警告なしに high が送られました。
Sonnet 5.5 の medium は Claude Code 側の既定値で、Claude API を直接呼んで effort を省略した場合の既定は high です(Opus 5.5 と Haiku 5.5 は API でも medium)。Sonnet 5.5 の effort 別の費用は「Claude Sonnet 5.5移行ガイド:effort別の費用差と5つの破壊的変更」、既定値が high の Fable 5.1 を Opus と比べたときのタスク単価は「Claude Fable 5.1とOpus 5の料金比較:実コストの判断基準」にまとめています。
おすすめの effort レベル:基本は既定値、上げるのは検証が要る作業
ほとんどの作業は、モデルの既定値のままで足ります。Anthropic は、既定値から始め、タスクごとに切り替えるのではなく、自分の仕事の種類に合わせた普段の好みとして調整するよう勧めています。公式ドキュメントの使い分けに、それぞれの代償を添えると次のようになります。
| レベル | 向いている作業 | 代償 |
|---|---|---|
low | 名前の変更のような小さな修正、ブレインストーミング、最初の下書きなど、結果を1つずつ確認するやり取り | 自分で調べるより確認を求めがちで、検証は少ない |
medium | Opus 5.5・Sonnet 5.5・Haiku 5.5 の既定。新機能の実装など、範囲がはっきりした日常の開発 | 既定が high のモデルで選ぶと、多少の賢さと引き換えにトークンを減らす |
high | 既存コードベースのバグ修正など、検証が重要でエッジケースが出やすい作業 | medium より時間とトークンを使う |
xhigh | より深い推論が必要な作業。Opus 4.7 の既定 | トークン消費がさらに増え、Opus 4.6 と Sonnet 4.6 では選べない |
max | セキュリティ脆弱性の洗い出しなど、任せきりで解かせたい難問 | 効果が頭打ちになりやすく、考えすぎる傾向がある。設定ファイルに保存できない |
Anthropic が Opus 5.5 と Fable 5.1 で試した結果では、高いレベルほど回答前に多くのエッジケースを試し、作業の検証を増やし、自分で判断する場面も増えました。低いレベルでは、早めにたたき台が返ってきます。手元で1つずつ確かめながら進めるなら低め、席を外して任せるなら高め、という選び方が合います。
effort を上げると1ターンで使うトークンが増えやすく、Pro や Max などのサブスクリプションでは使用量の枠を早く消費します。残量の見方と減らし方は「Claude Code トークン使用量確認・監査:5時間・週間制限と減らし方」で扱っています。
max・xhigh・high の違い:max はそのセッション限りで、考えすぎに注意
high、xhigh、max の順に深く考えますが、使い勝手の差は保存のされ方とモデルの対応にも表れます。high と xhigh は /effort で既定値として保存できるのに対し、max は /effort max でも --effort max でもそのセッションにしか効かず、設定ファイルの effortLevel や modelSettings に書いても受け付けられません。毎回 max で始めたい場合は環境変数 CLAUDE_CODE_EFFORT_LEVEL=max を使い、実測でもこの方法で Opus 5.5 に max が送られました。
公式ドキュメントは max について、効果が頭打ちになることがあり、考えすぎる傾向もあるので、広く使う前に試すよう注意しています。「とりあえず max」は難問を任せきりにするときの選択で、日常の開発の既定にするものではありません。
effort の変更方法と効く範囲:設定の優先順位
effort を変える方法は複数あり、Claude Code は決まった順番で最初に見つかったものを使います。強い順に、環境変数 CLAUDE_CODE_EFFORT_LEVEL、セッション中に /effort や /model で選んだレベル、起動時の --effort、設定ファイル、モデルの既定値です。上位の指定があると、それより下の指定は何の表示もなく無視されます。

| 方法 | 書き方 | 効く範囲 | 優先順位 |
|---|---|---|---|
| 環境変数 | export CLAUDE_CODE_EFFORT_LEVEL=high | そのシェルから起動したすべてのセッション。max も指定できる | 1 |
/effort にレベル名を付ける、スライダーで Enter | /effort high | 使用中のモデルの既定値として保存され、次回も残る。max は除く | 2 |
/effort のスライダーで s | /effort を開いて s | 今のセッションだけ。v2.1.257 以降 | 2 |
/model の effort スライダー | モデル選択中に左右キー | Enter で保存、s で今のセッションだけ | 2 |
| 起動フラグ | claude --effort xhigh | そのセッションだけ | 3 |
| 設定ファイル | modelSettings か effortLevel | モデルごとに保存。max は書けない | 4 |
| モデルの既定値 | なし | 上のどれもないとき | 5 |
-p での実行、Agent SDK、リモートワーカーのセッションで /effort を使った場合や、Remote Control でつないだスマートフォンやブラウザから選んだ場合は、そのセッションだけに効き、保存されません。順番どおりに上書きされることは実測でも確かめています。CLAUDE_CODE_EFFORT_LEVEL=low を設定したまま --effort high で起動すると low が送られ、modelSettings で Opus 5.5 を high に保存した状態でも、--effort low を付けて起動すれば low が送られました。
保存されたかどうかは、/effort が返すメッセージの括弧内で分かります。2026年11月2日に対話モードの Opus 5.5 で試したときの表示は次のとおりで、saved as your default for new sessions は次のセッションにも残る保存、this session only は今のセッションだけという意味です。
/effort high
Set effort level to high (saved as your default for new sessions): Comprehensive implementation with extensive testing and documentation
/effort max
Set effort level to max (this session only): Maximum capability with deepest reasoning. May use excessive tokens resulting in long response times or overthinking. Use sparingly for the hardest tasks./effort high の後、~/.claude/settings.json には次のエントリが加わりました。/effort max の後は、このファイルは変わらず high のままでした。エントリはモデルの正式名で書かれ、エイリアスや日付付きの ID、[1m] 付きの指定も同じエントリに当たります。保存したレベルを変えたり消したりしたいときは、このファイルを直接編集してもかまいません。
{
"modelSettings": {
"claude-opus-5-5": {
"effortLevel": "high"
}
}
}スライダーでは左右キーで1段ずつ動かし、Enter で保存、s で今のセッションだけ、Esc で取り消し、Tab で Ultracode の切り替えです。新しいレベルは確定した後に送る次のメッセージから適用されるので、Claude の作業中に効かせたいときは keep going のようなメッセージを送ってキューに入れておきます。
今どの effort で動いているか確認する手順
画面に出るレベルは「設定されたレベル」なので、上書きまで含めて確かめるには次の順で見ます。
- プロンプトで
/effort statusを実行します。Effort level: auto (currently medium)と出れば、保存したレベルはなく、既定値のmediumが送られています。Effort level: autoとだけ出れば、effort は送られていません。v2.1.304 より前は、送られていない場合でもauto (currently high)と表示されていました。 - フッターとセッションヘッダーを見ます。2026年11月2日の実測では、Opus 5.5 の起動直後のフッターは
◐ medium · /effortで、/effort highの後は● high、/effort maxの後は◈ maxに変わりました。ヘッダーの「with low effort」のような表示も設定値です。 - ターミナルで
echo $CLAUDE_CODE_EFFORT_LEVELを実行します。何か値が出れば、それがほかのすべての指定より優先されています。 ~/.claude/settings.jsonを開き、今のモデルのmodelSettingsエントリと、トップレベルのeffortLevelやmaxEffortLevelを確かめます。プロジェクトの.claude/settings.json、.claude/settings.local.json、組織の管理設定にも同じキーが入っていることがあります。
effort の設定が効かない・medium に戻るときの原因と直し方
「設定したはずの effort と違う」ときは、上の優先順位で別の指定に負けているか、そのキーや値がもともと受け付けられていないかのどちらかがほとんどです。表の「根拠」が実測の行は、2026年11月2日に Claude Code 2.1.316 で送信値を確かめた結果で、ドキュメントの行は公式の記載によるものです。
| 症状 | 原因 | 直し方 | 根拠 |
|---|---|---|---|
~/.claude/settings.json に "effortLevel": "high" と書いたのに、Opus 5.5 が medium のまま | ユーザー設定のトップレベル effortLevel は v2.1.251 より前の古い形式で、Opus 5.5 以降のモデルは無視する | /effort high で保存し直すか、modelSettings にモデルごとに書く | 実測:Opus 5.5 は medium、Fable 5.1 は high |
設定ファイルの "effortLevel": "max" が効かない | max は effortLevel でも modelSettings でも受け付けられない | 毎回 max にしたいなら CLAUDE_CODE_EFFORT_LEVEL=max | 実測:Opus 5 に既定の high が送られ、-p の出力にメッセージなし |
/effort max にしたのに、次のセッションで戻った | max はそのセッション限り | 環境変数で max にするか、そのつど /effort max | 実測:settings.json は変わらず |
| スライダーで選んだレベルが次回戻る | s で確定したか、-p、Agent SDK、Remote Control で選んだ | 対話セッションで Enter で確定する | ドキュメント |
--effort high や /effort high が効かない | 環境変数 CLAUDE_CODE_EFFORT_LEVEL が設定されている | unset CLAUDE_CODE_EFFORT_LEVEL してから起動し直す | 実測:環境変数 low と --effort high で low |
Opus 5.5 を high にしたのに、Sonnet 5.5 は medium | 保存はモデルごと | Sonnet 5.5 に切り替えてから /effort high | 実測 |
--effort max が high で動き、警告が出る | maxEffortLevel か組織の上限 | 上限を上げるか、管理者に相談する | 実測(警告文は上限の節) |
Opus 4.6 で xhigh を選ぶと high になる | 対応していないレベルは下の対応レベルに落ちる | high か max を選ぶか、xhigh 対応モデルに替える | 実測:警告なし |
--effort の値が無視される | レベル名の綴り違い | 下の警告文を確認し、正しいレベル名にする | 実測:既定値の medium が送られた |
/effort auto にしても medium が送られる | /effort auto は保存したレベルを消すだけ | effort を送らないなら環境変数を auto にする | 実測(auto の節) |
| 自動フォールバック後も、元のレベルのまま | フォールバック前の effort を引き継ぐ仕様。Opus 5.5 の medium から Opus 4.8 に移っても medium | /model で選び直す、レベルを選ぶ、セッションを再開する | ドキュメント |
| 保存したレベルと違う値で動く | プロジェクト、ローカル、管理設定のトップレベル effortLevel は全モデルに効き、管理設定はユーザー設定に勝つ | 各設定ファイルのキーを確かめる | ドキュメント |
Amazon Bedrock などで、カスタム ARN やデプロイ名のモデルだと /effort が使えない | モデル ID を Claude Code が認識できず、effort 機能が無効になっている | _SUPPORTED_CAPABILITIES 変数で、使う機能をすべて宣言する(表の下を参照) | ドキュメント |
最後の行の変数は、ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES のようにモデルの種類(OPUS、SONNET、HAIKU、FABLE)ごとにあり、書いた機能だけが有効になって、書かなかった機能は無効になります。そのため effort,xhigh_effort,max_effort だけでなく、thinking、adaptive_thinking、interleaved_thinking のように実際に使う機能も並べます。Claude Code のモデル設定ドキュメントによると、この変数が効くのは Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry といったサードパーティのプロバイダー経由の場合だけです。ANTHROPIC_BASE_URL で独自のゲートウェイにつないでいる場合は表示名と説明の _NAME・_DESCRIPTION しか効かず、api.anthropic.com に直接つなぐ場合はどれも効かないので、ゲートウェイ経由で /effort が使えないときの直し方にはなりません。
レベル名を打ち間違えたときは、起動時に次の警告が出て、モデルの既定値で始まります。実測では --effort banana で起動し、Opus 5.5 の既定値 medium が送られました。
Warning: Unknown --effort value 'banana' — ignoring it and using the default effort. Valid values: low, medium, high, xhigh, max.設定ファイルについての実測は、ユーザー設定(~/.claude/settings.json に相当する場所)だけを使ったものです。プロジェクト設定や管理設定の行は、Claude Code の設定リファレンスの記載に基づいています。
effort の auto とは:/effort auto と環境変数の auto は別の動き
「auto」と名の付く操作は2つあり、結果が違います。/effort auto は使用中のモデルについて保存したレベルを消すコマンドで、消した後もモデルの既定値は送られます。2026年11月2日の実測では、Opus 5.5 で /effort auto を実行すると Effort level set to auto と表示され、settings.json の claude-opus-5-5 のエントリが空の {} になり、次のメッセージには medium が送られました。ほかのモデルのエントリやトップレベルの effortLevel は残ります。
一方、CLAUDE_CODE_EFFORT_LEVEL=auto(値は unset でも同じ)を export したシェルで claude を起動すると、Claude Code はリクエストに effort を含めません。実測でも effort の項目そのものがなくなっていました。この場合は Claude API 側の既定値が使われるので、Sonnet 5.5 では Claude Code の medium ではなく API の既定 high が適用されます。ヘッダーとフッターにはレベルが出ず、/effort status は Effort level: auto を返します。ただし max 未満の maxEffortLevel があると、Claude Code は上限まで下げた既定値を送り続け、表示は auto (currently <レベル>) になります。

ultrathink と ultracode:effort レベルとの関係
ultrathink は1ターンだけ深く考えさせるキーワード、ultracode は作業の進め方を変える Claude Code の設定で、どちらもセッションの effort 設定そのものは書き換えません。ただし、ターミナルで打った ultrathink と起動フラグの --effort ultracode の2つは、実際に送られるレベルを変えます。
ultrathink はそのターンだけ xhigh に上げる
プロンプトのどこかに ultrathink と書くと、セッションの設定を変えずに、そのターンだけ深く考えるよう求められます。ターミナルの入力欄で打った場合、v2.1.311 以降はそのターンを xhigh に引き上げることもでき、引き上げられるときは単語が虹色に表示されます。2026年11月2日の実測では、medium のセッションで ultrathink about this and reply with OK と送ったターンだけ xhigh で送られ、次の普通のターンは medium に戻り、フッターも medium のままでした。
claude -p で使ったときは挙動が違いました。-p "ultrathink: reply with OK" のリクエストは medium のままで、変わったのはシステム側のコンテキストに次の1行が加わったことだけです。
The user included the keyword "ultrathink", requesting deeper reasoning on this turn. Reason as thoroughly as the task warrants.「think hard」や「think more」はキーワードとして扱われず、普通の文として渡されます。実測でも -p "think hard: reply with OK" のリクエストは、文面以外は普通のプロンプトと同じでした。ターミナルで ultrathink が虹色にならないときは、xhigh 未満に設定した CLAUDE_CODE_EFFORT_LEVEL を外す、maxEffortLevel を xhigh 以上にする、Opus 5.5・Sonnet 5.5・Haiku 5.5・Fable 5.1 のどれかに切り替える、のいずれかを試します。Amazon Bedrock のようにターンを引き上げられない環境では、effort レベル自体を上げます。
ultracode は effort レベルではない
/effort のスライダーにある Ultracode は、モデルの effort レベルではなく Claude Code の設定です。オンにすると、Claude は本格的なタスクで動的ワークフローを組み立てて進めますが、effort レベルはそのまま変わりません。切り替えは /effort ultracode と /effort ultracode off、スライダーの Tab、設定ファイルの "ultracode": true で行い、effortLevel や CLAUDE_CODE_EFFORT_LEVEL に ultracode は書けません。
例外は起動フラグで、claude --effort ultracode は ultracode をオンにすると同時に xhigh を設定します。2026年11月2日の実測では、Opus 5.5 には xhigh が送られ、xhigh のない Opus 4.6 では high が送られました。ドキュメントによれば、後者のように xhigh が使えない場合は ultracode がオフのまま起動します。v2.1.284 より前は、ultracode をオンにするとセッションが xhigh になり、別のレベルを選ぶとオフになる仕様だったため、それ以前に書かれた解説とは挙動が違います。
maxEffortLevel で effort に上限をかける:チームとモデル単位
使える effort の上限を決めるのが maxEffortLevel です(v2.1.267 以降)。上限より高いレベルは、/effort、/model、--effort、環境変数、skill やサブエージェントの指定、モデルの既定値のどこから来ても上限のレベルで動きます。Claude Code が送信前に自分で適用するため、Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry 経由でも効きます。次の例は全モデルを high までに抑え、Haiku 5.5 だけ medium までにする設定です。
{
"maxEffortLevel": "high",
"modelSettings": {
"claude-haiku-5-5": {
"maxEffortLevel": "medium"
}
}
}複数の設定ファイルに上限があるときは最も低いものが効き、"max" は上限なしを意味します。チーム全体に守らせたいなら管理設定に置きます。管理設定に effortLevel を書いても、ユーザーが /effort で変えられる既定値になるだけなので、上限にはなりません。Claude Enterprise では管理者がロールごと・モデルごとに上限を設定でき(v2.1.195 以降)、maxEffortLevel と両方あるときは低いほうが適用されます。上限を超えるレベルは /effort のピッカーに表示されません。
2026年11月2日の実測では、"maxEffortLevel": "high" の状態で --effort max を付けて Opus 5.5 を起動すると high が送られ、stderr に次の警告が出ました。同じ上限で環境変数に xhigh を指定した場合も high に抑えられましたが、-p の出力に警告は出ませんでした。
Effort 'max' exceeds the cap for claude-opus-5-5 set by your settings or organization; using 'high'.Claude Code の effort についてのよくある質問
skill やサブエージェントだけ別の effort にできますか?
できます。skill やサブエージェントの markdown ファイルのフロントマターに effort を書くと、その skill のターンが終わるまで、またはサブエージェントが動いている間、セッションのレベルより優先されます。ただし、環境変数 CLAUDE_CODE_EFFORT_LEVEL が設定されているとそちらが勝ち、maxEffortLevel や組織の上限も引き続き効きます。2026年11月2日時点の Claude Code 公式ドキュメントの記載です。
「Effort 'xhigh' isn't available」と出たらどうしますか?
Opus 5 のように、思考をオフにした状態で high より上の effort を受け付けないモデルで出るエラーです。全文は API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0) で、表示どおり /effort high に下げるか、MAX_THINKING_TOKENS=0 を外して思考を戻せば続けられます。v2.1.242 より前は API Error: 400 output_config.effort 'xhigh' is not supported when thinking is disabled on this model. で始まる文面でした。v2.1.251 以降は、この組み合わせを受け付けないと分かっているモデルに Claude Code が自動で high を送ります。Opus 5.5・Sonnet 5.5・Haiku 5.5・Fable のモデルは思考をオフにできず、MAX_THINKING_TOKENS=0 を設定しても効果はありません(2026年11月2日時点の公式ドキュメント)。





