一行要約
effort は thinking の有無に関わらず、応答内のすべてのトークン(テキスト・ツール呼び出し・thinking)に効く単一のダイヤル。thinking を有効にする必要がなく、低くするとツール呼び出しの回数自体が減るのが budget_tokens との決定的な違い。
要点
The effort parameter affects all tokens in the response: text responses and explanations, tool calls and function arguments, and thinking (when active).
effort パラメータは応答内のすべてのトークンに影響する。テキストの応答と説明、ツール呼び出しと関数の引数、そして(有効なときは)thinking である。
利点は2つ。① thinking を有効にする必要がない ② ツール呼び出しを含む全トークン支出に効く。
Setting
effortto the model’s default ("medium"on Claude Opus 5.5,"high"on other models) produces exactly the same behavior as omitting theeffortparameter entirely.
effortをそのモデルの既定値(Claude Opus 5.5 では"medium"、他のモデルでは"high")に設定することは、effortパラメータを完全に省略した場合とまったく同じ挙動になる。
「省略 = high」は Opus 5.5 では成り立たない(以前の取得ではまだ "high" と書かれていた)。Opus 5 から Opus 5.5 に替えただけで、effort を書いていないリクエストは1段低く走る。
Effort is a behavioral signal, not a strict token budget. At lower effort levels, Claude will still think on sufficiently difficult problems, but it will think less.
effort は振る舞いのシグナルであって、厳密なトークン予算ではない。低い effort でも、Claude は十分に難しい問題については考える。ただし考える量は減る。
5段階
| レベル | 内容 | 典型的な用途 |
|---|---|---|
max | token 支出に制約なしの最大能力 | 最も深い推論が要るタスク |
xhigh | 長時間作業向けの拡張能力 | 30分を超える長時間の agentic / coding タスク、トークン予算が数百万規模 |
high | 課題が必要とするだけトークンを使う。Opus 5.5 以外の全モデルで既定 | 複雑な推論、難しいコーディング、agentic タスク |
medium | 適度なトークン節約とのバランス。Opus 5.5 の既定 | 速度・コスト・性能のバランスが要る agentic タスク |
low | 最も効率的。能力は多少落ちる | 単純なタスク、subagent |
xhigh は新しいレベルなので、max に対応していても xhigh に対応していないモデルがある。
モデル別の推奨(この文書の実質的な中身)
| モデル | 推奨 |
|---|---|
| Opus 5.5 | 5段階すべてに対応し、既定は medium(Opus 5 以前の Opus は high なので、effort を省いたリクエストは Opus 5 のときより1段低く走る)。adaptive thinking が常にオンで切れないので、effort が推論量とコストの主要な制御手段。旧モデルの設定を持ち越さず自分の eval で effort sweep を回す。高いレベルでは max_tokens を大きく。thinking: {"type": "disabled"} はどの effort でも 400。会話の途中で effort を変えられる(下記) |
| Opus 5 | high(既定)から始める。 要求の厳しいコーディング / agentic 作業で xhigh、正当化できるときだけ max。品質が保てる範囲で low / medium をトークンコストと応答時間の主要な制御手段として積極的に使う。旧モデルから設定を引き継いでいるなら、eval で effort sweep をやり直す |
| Opus 4.8 / 4.7 | コーディングと agentic は xhigh から始める。 他の知能重視のワークロードは high を最低線に。max は本当に frontier な問題にだけ |
| Sonnet 5.5 | 5段階すべてに対応し、Claude API での既定は high(Claude Code の既定は medium —— model-config)。レベルは較正し直されているので、Sonnet 5 の設定を持ち越さず eval で effort sweep をやり直す。 agentic でも遅延に敏感でもなければ high から。agentic なコーディングと多段のツール使用は、仕様が明確なタスクなら medium、難しい・長いタスクなら high。チャットなど遅延に敏感な作業は medium か low。xhigh / max は eval で品質が上がるところだけ。max_tokens には thinking と返答の余地を取る(agentic コーディングならモデル上限の 128,000 にしてストリーミング)。事前の thinking を切るのは "disabled" ではなく thinking: {"type": "between_tools"}(low / medium / high でだけ動く。xhigh / max では adaptive を使う) |
| Sonnet 5 | 既定は high。最難のコーディング / agentic に xhigh。medium は「Sonnet 4.6 の high 相当」のコスト削減段 |
| Sonnet 4.6 | medium を推奨既定に。 既定は high なので、予期しないレイテンシを避けるため明示的に設定する |
| Fable 5.1 / Mythos 5.1 | 5段階すべてに対応。high(既定)から。能力が要る agentic / coding は xhigh か max、eval で品質が保てると分かってから routine / レイテンシ重視を medium / low に落とす。会話の途中で effort を変えられる(下記) |
| Fable 5 / Mythos 5 | effort が知能・レイテンシ・コストのトレードオフの主要な制御手段。 high(既定)から。低い設定でも旧モデルの xhigh を上回ることが多い |
Opus 4.7 以降の重要な性質:
Claude Opus 4.7 also respects effort levels more strictly than Claude Opus 4.6. At lower effort levels, the model scopes its work to what was asked rather than doing more than requested. If you observe shallow reasoning on complex problems, raise effort rather than prompting around it.
Claude Opus 4.7 は Claude Opus 4.6 より effort レベルを厳密に尊重する。低い effort では、モデルは求められた以上のことをせず、依頼された範囲に作業を限定する。複雑な問題で推論が浅いと感じたら、プロンプトで回避しようとせず、effort を上げよ。
レイテンシのために低く保つ必要があるなら、This task involves multistep reasoning. Think carefully before responding. のような的を絞った指示を足す。
When running at
xhighormaxeffort, set a largemax_tokensso the model has room to think and act across subagents and tool calls. Starting at 64k tokens and tuning from there is a reasonable default.
xhighやmaxの effort で走らせるときは、max_tokensを大きく取れ。subagent やツール呼び出しをまたいで考え、動くための余地が要る。64k トークンから始めてそこから調整するのが妥当な既定である。
max_tokens は thinking と応答テキストを合わせた総出力の hard limit である(high 以上では大きく取る)。
Opus 5 の制約: xhigh / max では thinking を無効にできない(thinking: {"type": "disabled"} を送ると 400)。
Opus 5 の注意: effort は thinking の量を制御するのであって、可視の応答長は制御しない。 短くしたいなら prompt で指定する。
ツール使用との関係
| 低い effort | 高い effort |
|---|---|
| 複数の操作を少ないツール呼び出しにまとめる | ツール呼び出しが増える |
| 呼び出し回数が減る | 行動前に計画を説明する |
| 前置きなしに行動へ進む | 変更の詳細な要約を出す |
| 完了後の確認メッセージが簡潔 | コードコメントが充実する |
prompt caching との相互作用(見落としやすい)
The top-level
output_config.effortapplies to the whole request. To run a later part of a conversation at a different level, set the new value on the next request. Because top-level effort shapes the rendered prompt, changing it between requests doesn’t preserve cached prefixes from earlier turns.top-level の
output_config.effortはリクエスト全体に効く。会話の後半を別のレベルで走らせるには、次のリクエストで新しい値を設定する。top-level の effort はレンダリングされるプロンプトを形づくるため、リクエスト間でこれを変えると、以前のターンのキャッシュ済み prefix は保たれない。
Hold top-level effort constant within cached conversations: Changing the top-level effort value between requests invalidates prompt caching, so vary it across workloads rather than within a conversation that relies on cache hits. On models that support it, use a per-message effort change instead, which preserves the cache.
キャッシュを効かせている会話の中では、top-level の effort を一定に保て。リクエスト間で top-level の値を変えると prompt caching が無効になるので、effort を振るのはキャッシュヒットに依存する会話の中ではなくワークロードをまたいで行う。対応しているモデルでは、代わりに per-message の effort 変更を使え。そちらはキャッシュを保つ。
この「一定に保て」は top-level の話で、逃げ道がある。下記の per-message effort なら会話の途中で変えてもキャッシュが残る。
会話の途中で effort を変える
変え方は2つあり、キャッシュが残るかどうかが違う。
On Claude Fable 5.1, Claude Mythos 5.1, Claude Opus 5.5, Claude Opus 5, and Claude Sonnet 5.5, use a per-message effort change, which keeps the prompt cache. On other models, set a new top-level value on the next request, which starts the cache over.
Claude Fable 5.1・Claude Mythos 5.1・Claude Opus 5.5・Claude Opus 5・Claude Sonnet 5.5 では per-message の effort 変更を使う。これは prompt cache を保つ。それ以外のモデルでは次のリクエストで新しい top-level の値を設定する。こちらはキャッシュをやり直すことになる。
per-message 側は beta。ヘッダ mid-conversation-output-config-2026-07-01 が要る。Sonnet 5.5 で between_tools を使っているときは、会話の途中で effort を変えられない(その時点のレベルと違う per-message の output_config.effort は 400)。ターンごとに変えたいなら adaptive thinking にする。
Add a
role: "system"message with emptycontentand the new level inoutput_config.effort. The new level takes effect from the nextuserturn and holds until a later message changes it. Everything before that message is unchanged, so the cached prefix still matches.
contentが空のrole: "system"メッセージを足し、新しいレベルをoutput_config.effortに入れる。新しいレベルは次のuserターンから効き、後のメッセージが変えるまで持続する。そのメッセージより前は何も変わらないので、キャッシュ済みの prefix は依然として一致する。
対応していないモデル(Fable 5 を含む)は 400 を返す —— output_config.effort requires a model that supports per-turn effort; this model does not。
effort だけの system メッセージは本文を持たないので、mid-conversation system メッセージの配置制限は適用されない。messages のどこに置いてもよい。
top-level を変える方式が劣るのはキャッシュだけではない。
A top-level change restarts the cache and also steers the model less reliably: its earlier replies were written at the previous level, and it tends to stay consistent with them.
top-level の変更はキャッシュをやり直すだけでなく、モデルの誘導としても信頼性が落ちる。以前の返答は前のレベルで書かれており、モデルはそれと一貫していようとする傾向がある。
adaptive を effort の値として渡してはいけない — adaptive は thinking のモードであって effort のレベルではない。
そのまま使える具体例
response = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
messages=[
{"role": "user", "content": "Analyze the trade-offs between microservices and monolithic architectures"}
],
output_config={"effort": "medium"},
)curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-5",
"max_tokens": 4096,
"messages": [{"role": "user", "content": "..."}],
"output_config": {"effort": "medium"}
}'xhigh / max を使うときの max_tokens:
output_config={"effort": "xhigh"},
max_tokens=64000, # 64k から始めて調整する低い effort で推論の浅さが問題になったときの当て木:
This task involves multistep reasoning. Think carefully before responding.判断のフロー:
- 既定は
high(= 未設定と同じ)。Opus 5.5 だけは既定がmediumなので、highが要るなら明示する - コーディング / agentic で足りないなら
xhigh(max_tokensを 64k 以上に) - eval で headroom が測れた場合のみ
max - 品質が保てることを eval で確認できたら、
medium/lowを積極的に使う(コストとレイテンシの主要な制御手段)
原典で言及されている関連文書
- claude-prompting-best-practices — adaptive thinking と effort の関係
- prompting-claude-opus-5 — Opus 5 で effort が応答長を制御しないこと
- thinking — thinking と effort の使い分け
- prompt-caching — effort 変更がキャッシュを無効化すること
- costs — Claude Code 側での
/effort - thinking-steering-and-cost
- thinking-troubleshooting — モデル別に受け付ける thinking の種類と、400 で蹴られる組み合わせ(Opus 5 は effort が xhigh 以上だと thinking を切れない)