Claude effortとは — low〜maxの使い分け方
Claude effort(エフォート)は応答に使うトークン量を決める設定です。low・medium・high・xhigh・maxの違いと最大にする目安、モデル別のおすすめ、設定場所を解説します。
Claude effortは、Claudeが1回の応答にどれだけトークンを使うかを制御する設定です。lowからmaxまで5段階あり、応答の丁寧さとトークン効率をトレードオフできます。既定値は多くのモデルでhighで、effortパラメーターを省略した場合と完全に同じ挙動になります。API・Claude Code・Agent SDKのどこから使っても考え方は共通です。
日本語では「エフォート」と呼ばれることもあります。迷ったときの目安は次のとおりです。
- 最大にしたい場合は
max。ただしトークン消費に制約が無くなる設定なので、常用には向きません - 速さと安さを優先するなら
low。サブエージェントや単純な作業向けです - 判断に迷うなら、モデルの既定値のままにして、評価で差が出るかを見ます
Claude effortは何を制御する設定か
effortは、テキスト応答・ツール呼び出しの引数・拡張思考(有効な場合)を含む、応答に含まれる全てのトークンを対象に働きます。思考のオン/オフとは独立に効くため、拡張思考を使わない構成でもトークン効率をコントロールできる点が特徴です。低いeffortではClaudeが呼び出すツールの数自体が減る、という形で効率化が起こることもあります。
effortは厳密なトークン予算ではなく、挙動を誘導する信号です。低いeffortでも、十分に難しい問題に対してはClaudeはそれなりに考えます。ただし同じ問題に対して高いeffortのときより思考量は少なくなります。
レベルごとの意味と使い分け
公式ドキュメントが示す5段階の目安は次の通りです。
| レベル | 説明 | 典型的な用途 |
|---|---|---|
max | 説明トークン消費に制約を設けない最大性能 | 典型的な用途最も深い推論と徹底した分析が必要なタスク |
xhigh | 説明長時間の作業向けに拡張された性能 | 典型的な用途30分を超えるような長時間のエージェント・コーディングタスク |
high(既定) | 説明高い性能。パラメーター省略と同一挙動 | 典型的な用途複雑な推論、難易度の高いコーディング、エージェントタスク |
medium | 説明速度・コスト・性能のバランス型 | 典型的な用途バランスが必要なエージェントタスク |
low | 説明最も効率的。性能は落ちるがトークン消費が小さい | 典型的な用途サブエージェントなど、速度とコストを優先したい単純なタスク |
xhighは比較的新しいレベルで、maxに対応するモデルの中にもxhighには対応していないものがあります。
lowとmaxはどう違うか
lowは応答の丁寧さを削ってトークンを節約する側、maxは節約を一切考えずに考えさせる側です。lowではツール呼び出しの回数も減ります。
maxは常にhighより良い結果になるわけではありません。Opus 4.7・Opus 4.8向けの公式の目安では、大半の用途でmaxはコストが大きく増える割に品質の伸びが小さく、構造化出力のような知性を要しない作業では考えすぎになることもあるとされています。評価でxhighに伸びしろがあると測れてからmaxに上げます。
モデルごとのeffort対応状況
effortが使えるモデルは限られています。API上で対応するのは次のモデルです。
- Fable 5.1・Fable 5・Mythos 5.1・Mythos 5・Mythos Preview
- Opus 5.5・Opus 5・Opus 4.8・Opus 4.7・Opus 4.6
- Sonnet 5.5・Sonnet 5・Sonnet 4.6
- Haiku 5.5
- 拡張思考専用モデルの中で唯一対応するOpus 4.5(
claude-opus-4-5-20251101)
effortを省略したときの既定値は、APIとClaude Codeで一致しない場合があります。
effort省略時の既定値
Anthropic API
Opus 5.5とHaiku 5.5がmediumで、Sonnet 5.5を含む他の対応モデルはhighです。
Claude Code
Opus 5.5・Sonnet 5.5・Haiku 5.5がmedium、Opus 4.7がxhigh、その他はhighです。
つまりSonnet 5.5をAPIとClaude Codeの両方で使うと、省略時の挙動が食い違います。Opus 4.7もClaude Codeではxhighから始まります。
Claude Codeで実際に選べるレベルは、このうちモデルによってさらに次のように分かれます。
| モデル | 使えるレベル |
|---|---|
| Fable 5.1・Fable 5・Opus 5.5・Opus 5・Sonnet 5.5・Sonnet 5・Haiku 5.5・Opus 4.8・Opus 4.7 | 使えるレベルlow / medium / high / xhigh / max |
| Opus 4.6・Sonnet 4.6 | 使えるレベルlow / medium / high / max(xhighなし) |
対応していないレベルを指定すると、指定値以下でモデルが対応する最も高いレベルにフォールバックします。Claude Code側の/effortコマンドの具体的な操作・既定値のhold挙動・非対話モードでの注意点はClaude Code effortレベルの使い方と設定にまとめています。
モデル別のおすすめeffort
公式の推奨は、モデルの世代によって傾向が異なります。
Sonnet 5は既定のhighを維持したまま複雑な推論・コーディング・エージェントタスクに使い、最も難しい局面だけxhighに上げます。段階的な引き下げにはmedium、チャットのような速度優先の非コーディング用途にはlowが向きます。maxは制約なしの最高性能が必要なタスク専用です。
Sonnet 5.5ではeffortの水準が再較正されています。Sonnet 5で決めた設定をそのまま持ち越さず、評価セットで再スイープするのが出発点です。エージェント系のワークロードはmediumから測り始め、足りないときだけ上げます。なお、Sonnet 5.5のbetween_tools(思考を無効化する代わりの指定)はlow / medium / highでしか使えず、xhighとmaxを組み合わせると400になります。
Sonnet 4.6は既定のhighのままでも動きます。レイテンシを読みやすくしたいなら、明示的にmediumを選びます。エージェント的コーディングやツール多用のワークフローでの速度・コスト・性能のバランスがmediumの狙いです。
コーディング・エージェント用途と知性重視の用途で目安が分かれるのがOpus 4.7とOpus 4.8です。どちらもコーディング・エージェント用途ではxhighを起点にします。
知性が重要な用途全般での扱いは、2つのモデルで少し違います。Opus 4.7はhighを最低ラインとし、コスト重視ならmediumへ、評価セットでの検証(eval)でxhighにまだ余地があると確認できた場合のみmaxへ調整します。Opus 4.8はhighを多くの用途の基本とし、evalで品質が保てると測れた場合にだけmediumやlowへ下げます。Opus 4.7のxhigh挙動とコスト試算はOpus 4.7 xhighとはで詳しく扱っています。
5段階すべてに対応するのがOpus 5です。既定のhighから始め、evalの結果を見ながら難しいコーディング・エージェントタスクにはxhigh、制約のないタスクにはmaxへ引き上げます。品質が保てる範囲ではlow・mediumをコスト・速度の主力コントロールとして積極的に使います。判断軸はOpus 5のeffort使い分けガイドで詳しく整理しています。以前のモデルからeffort設定をそのまま引き継がず、新たにevalを回し直します。effortが動かすのは思考量であって目に見える応答の長さではありません。Opus 5ではeffortを変えても応答が短くなるとは限らないため、応答量そのものを調整したい場合はプロンプト側で長さを指定します。
Opus 5.5も、Opus 5と同じくeffortの掃引(スイープ)を自分のevalで回すところから始めます。Anthropicの検証では、Opus 5.5のmediumはOpus 5のhighと同等かそれ以上でした。Opus 5で使っていたレベルを持ち越さず、mediumから始めます。thinking: {"type": "disabled"}を指定したリクエストは、どのeffortでも400になります。
Haiku 5.5は既定のmediumが起点で、エージェント的なコーディングもmediumから始めます。チャットや短いツール作業、件数の多い単純な処理は、最も安く速いlowが向きます。
Fable 5とMythos 5では、effortが知性・レイテンシ・コストを調整する主要な手段です。既定のhighをほとんどのタスクの起点にし、性能が特に重要な作業にはxhigh、日常的な作業にはmediumやlowへ下げます。Fable 5は低いeffortでも性能が高く、以前のモデルのxhighを上回ることも珍しくありません。highやxhighで使う場合は、思考と応答テキストの合計に対するハードリミットとしてmax_tokensを大きめに設定しておきます。Fable 5.1も既定のhighから始めます。
どこで設定するか — API・Claude Code・Agent SDK
effortの設定場所は利用形態によって異なります。Anthropic APIではリクエストのoutput_config.effortにレベル名を渡します。Claude Codeには複数の経路があります。
/effortコマンド、または--effortフラグCLAUDE_CODE_EFFORT_LEVEL環境変数- 設定ファイルの
effortLevelキー /modelのスライダー操作
Agent SDKではeffortLevelをコントロールリクエストやapplyFlagSettings()で指定できます。SkillやSubagentのfrontmatterにeffortを書けば、その実行中だけセッションのレベルを上書きすることも可能です。ただし環境変数には勝てません。
Claude Codeは、次の順でセッションのレベルを決めます。
Claude Codeのeffort決定順
- 1
明示した指定
CLAUDE_CODE_EFFORT_LEVEL環境変数、起動時の--effort、セッション中の/effortが同じ段にあたります。 - 2
保存済みの設定
モデルごとに保存したレベルか
effortLevelキーです。effortLevelに書けるのはlow・medium・high・xhighで、maxは書けません。 - 3
モデルの既定値
前掲のモデル別既定値です。組織が組織既定モデルに既定のeffortを設定していれば、そのモデルではその値が既定になります。
maxは環境変数で指定しない限り、そのセッションにだけ適用されます。/effortのスライダーでは、Enterで既定として保存し、sでそのセッションだけに適用できます(sはv2.1.257以降)。非対話の-p実行で/effortを使った場合も、そのセッションだけです。
Opus 5.5には落とし穴があります。ユーザー設定ファイルのトップレベルのeffortLevelは、Opus 5.5では既定値として効きません。Opus 5.5とそれ以降のモデルは、/effortか/modelで選ぶまで自分の既定値から始まります。プロジェクト・ローカル・管理設定のトップレベルeffortLevelは全モデルに適用されます。
手元のv2.1.285でclaude --helpを見ると、--effortは次のように表示されます。
claude --version
claude --help | grep -A1 -e "--effort"2.1.285 (Claude Code)
--effort <level> Effort level for the current session
(low, medium, high, xhigh, max)ヘルプの一覧にultracodeは出ませんが、公式ドキュメントにはv2.1.203以降で--effort ultracodeが使えると書かれています。Claude Enterpriseの組織管理者はロールごと・モデルごとに上限を設定できます(v2.1.195以降)。どのプランでも、管理設定のmaxEffortLevelでクライアント側から上限を掛けられます。上限を超えるレベルは/effortのメニューに表示されません。上限を超えるレベルを名指ししても、上限のレベルで動きます。
effortと拡張思考の関係
拡張思考(Extended Thinking)は、Claudeが応答前に出力する思考過程そのものです。adaptive reasoning(適応的推論)に対応するモデルでは、思考量を決める主な手段はeffortレベルであり、拡張思考の設定は思考のオン/オフと表示方法を受け持ちます。Anthropic APIで拡張思考をオフにすると、その組み合わせを受け付けないモデル(Opus 5など)に対してはClaude Codeが自動的にhighを送るという調整も入ります。
Claude Codeでは、Fable 5.1・Fable 5・Opus 5.5・Sonnet 5.5・Haiku 5.5で拡張思考をオフにできません。トグルの位置にはThinking can't be turned offと表示され、alwaysThinkingEnabled: falseやMAX_THINKING_TOKENS=0も効きません。いずれもeffortレベルに応じてステップごとに思考量を自分で判断します。Opus 5はxhigh・maxのeffortでは拡張思考を明示的にオフにできず、その組み合わせでリクエストするとエラーになります。拡張思考のみに対応する唯一のモデルであるOpus 4.5は例外で、effortとbudget_tokens(思考に使うトークン数の上限)を組み合わせて使う設計になっています。
ツール呼び出しへの影響
effortは、Claude Codeのようにツールを多用するワークフローでの挙動にも直接影響します。低いeffortでは、複数の操作を1回のツール呼び出しにまとめる・呼び出し回数自体を減らす、といった傾向が出ます。前置きなしにすぐ実行し、完了後の確認メッセージも簡潔になります。逆に高いeffortでは、ツール呼び出しの回数が増え、実行前に計画を説明します。変更内容を詳しく要約し、コードコメントも充実します。「Claudeの説明が長すぎる」「逆に説明が素っ気ない」と感じたときは、まずeffortレベルを疑うと切り分けが早くなります。
よくあるつまずき
セッション途中でeffortを変えるとプロンプトキャッシュが効かなくなる
トップレベルのeffortはレンダリングされるプロンプトの一部なので、多くのモデルでは会話の途中で変えるとキャッシュのプレフィックスが再利用されません。次のリクエストは会話履歴全体を、キャッシュなしで読み直します。
途中変更でキャッシュが残るか
残らない
キャッシュがまだ温かいうちは、Claude Codeが変更してよいか確認を挟みます。長いセッションでは最初にレベルを決めて動かさないのが安全です。
残る
Claude CodeではAPIキーかClaudeのサブスクリプションで使う場合、確認なしで新しいレベルが適用されます。Bedrock・Google CloudのAgent Platform・Claude appsゲートウェイ経由、CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS設定時、組織のHIPAA構成では当てはまりません。
APIでは、ベータ機能のper-message effortを使うと、mid-conversation-output-config-2026-07-01ヘッダーを付けて会話の途中からレベルを切り替えられ、キャッシュも保たれます。対応はFable 5.1・Mythos 5.1・Opus 5.5・Opus 5・Sonnet 5.5です。Fable 5では400になります。Sonnet 5.5でbetween_toolsを使うと、現在のレベルと違うeffortを途中で指定した時点で400です。
前のモデルのeffort設定をそのまま引き継いで性能が落ちる
モデルごとにeffortの尺度は個別に較正されているため、同じレベル名でも実際の挙動は世代によって変わります。Opus 4.7からOpus 5へ切り替えたときのように、モデルを乗り換えたら以前のeffort設定をそのまま使い回さず、evalを回し直して最適なレベルを確認します。
xhighを指定したのにhighで動いている
xhighに対応していないモデル(Opus 4.6・Sonnet 4.6など)を使っている場合、指定は自動的にフォールバックします。モデル一覧の対応表で、使っているモデルがxhighに対応しているか先に確認します。
xhighやmaxでmax_tokensが足りずに途中で切れる
Opus 5・Opus 4.8・Opus 4.7をxhighやmaxで動かす場合、サブエージェントやツール呼び出しをまたいで考える余地を残すため、大きめのmax_tokensを設定しておきます。64kトークンを起点に調整するのが実務的な目安です。Sonnet 5.5でエージェント的なコーディングをするなら、モデルの上限である128,000をmax_tokensに設定し、ストリーミングで受け取ります。
よくある質問
effortを下げるとコストはどれくらい下がりますか
公式ドキュメントは具体的な削減率を明示していません。lowは「大幅なトークン節約」、mediumは「中程度のトークン節約」とだけ説明されており、実際の削減幅はタスクの性質によって変わります。自分のワークロードでevalを回して確認するのが確実です。
Claude Codeの/effortとAPIのeffortパラメーターは同じものですか
同じ仕組みの上に成り立っています。Claude Codeの/effortコマンドはAPIと同じレベル名を使い、レベルの意味やモデルごとの対応状況も共通です。Claude Code固有のultracode設定だけは例外で、動的ワークフローによるオーケストレーションを有効にする独自機能です。v2.1.284以降、/effortや設定でオン・オフしても段は変わりません。--effort ultracodeはxhighで起動します。
まとめ
effortは、モデルごとに較正された尺度の上で「どこまで考えさせるか」を選ぶ設定です。既定値がAPIとClaude Codeでずれるモデルがあるので、乗り換えたら省略時の値を確認したうえで、自分のevalで測り直すと判断を外しにくくなります。