PaPoo
cover
technews
Author
technews
世界の技術ニュースをリアルタイムでキャッチし、日本語でわかりやすく発信。AI・半導体・スタートアップから規制動向まで、グローバルテックシーンの「今」をお届けします。

Claude の Effort、実は3段階じゃない——xhigh/maxまで含めた5段階の使い分けとAPI仕様を深掘りする

以前の記事「Claude の effort ってどう効くの?」では、Effortパラメータを Low / Medium / High の3段階として紹介した。実際のClaude APIはもう一段深い。現行モデル(Opus 4.8/4.7、Sonnet 5、Fable 5)では low / medium / high / xhigh / max の5段階が存在し、しかも「thinkingの予算」だった旧budget_tokensとは効かせ方そのものが違う。本稿ではAPI仕様に基づいて、モデル別の対応状況・挙動の違い・実運用での設計指針を整理する。

そもそも budget_tokens とは何が違うのか

旧世代(Sonnet 4.5以前)の extended thinking は thinking: {type: "enabled", budget_tokens: N} という固定トークン予算の指定だった。「thinkingにいくら使うか」だけを制御する、いわば一次元のノブだ。

Opus 4.6以降ではこれが非推奨化され、Opus 4.7/4.8・Sonnet 5・Fable 5では完全に廃止​(送ると400エラー)された。代わりに thinking: {type: "adaptive"}(モデルが自分でthinkingの要否と深さを判断)と、output_config.effort の組み合わせに置き換わっている。

ここが本質的に違う点だが、effort は単なる「thinkingの深さ」ではない。​thinkingの深さに加えて、ツール呼び出しの粒度・前置き(preamble)の量・確認応答の丁寧さまで含めた「エージェント全体の挙動」を制御するパラメータになっている。公式のガイダンスはこう表現している——

低いeffortは「ツール呼び出しが少なく統合される・前置きが減る・確認応答が簡潔になる」ことを意味する

つまり budget_tokens が「思考の量」だけを絞るダイヤルだったのに対し、effort は「エージェントとしての振る舞い全体の丁寧さ」を絞るダイヤルだ。コーディングエージェントで effort: low を指定すると、thinkingが浅くなるだけでなく、ツール呼び出しをまとめて実行するようになり、状況説明のテキストも減る。

5段階の実際

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    output_config={"effort": "high"},  # low | medium | high | xhigh | max
    messages=[{"role": "user", "content": "..."}],
)

モデル別対応表

モデル 対応レベル 備考
Claude Fable 5 / Opus 4.8 / Opus 4.7 / Sonnet 5 low / medium / high / xhigh / max xhighはOpus 4.7で追加。以降の世代は全て対応
Opus 4.6 / Sonnet 4.6 low / medium / high / max xhighなし
Opus 4.5 low / medium / high xhigh max 非対応
Sonnet 4.5 / Haiku 4.5 非対応 effort指定は400エラー。旧来の思考量制御手段を持たない世代

「Effortが効くかどうか」はモデル世代に依存する。旧記事が検証した挙動が Sonnet 4.5 や Haiku 4.5 だった場合、それらは今回のeffortパラメータ自体を受け付けない世代であることに注意したい。

料金・レイテンシへの影響——「effort別の単価」は存在しない

ここは誤解されやすい。​**effortのレベルごとに入力/出力トークンの単価が変わるわけではない。​** 単価はモデル単位(Opus 4.8なら$5/$25 per MTok)で固定で、effortが変えるのは「1リクエストあたり何トークン生成するか」という消費量のほうだ。

つまり「effort別料金」ではなく「effortに比例したトークン消費量の増減」がコストに効く、という理解が正しい。ベンチマークするならresponse.usage.output_tokensをeffortごとに比較するのが実務的。

実運用での設計指針

Anthropicのエージェント設計ガイダンスをベースに、実務でのeffort割り当ての目安をまとめる。

adaptive thinkingとの組み合わせが前提

effortは単体でも機能するが、現行モデルではthinking: {type: "adaptive"}との併用が前提になっている。adaptiveはモデル自身に「このリクエストでthinkingを使うか、どこまで使うか」を判断させる仕組みで、effortはその判断の強さを左右するハイパーパラメータという位置づけに近い。

thinkingの中身をユーザーに見せたい場合は要注意——Opus 4.7以降ではthinkingブロックの表示がデフォルトでomitted(空文字列)になっている。ストリーミングUIでreasoningを表示したい場合は thinking: {type: "adaptive", display: "summarized"} を明示しないと、ユーザーからは「長い沈黙のあとに回答が出てくる」ように見えてしまう。この挙動変化はモデル移行時に見落としやすいポイントとして、Anthropicの移行ガイドでも個別に注意喚起されている。

まとめ

「Low/Medium/Highのどれを選ぶか」という一次記事の問いに対して、現行世代の答えは「まずその3つにxhighmaxが加わっていることを知り、次にモデル世代ごとの対応表を確認する」ということになる。

※本記事は2026年7月時点のClaude API仕様に基づく技術解説です。パラメータ名・対応モデル・デフォルト値は今後のモデルリリースで変更される可能性があります。実装前に必ず最新のAPIドキュメントを確認してください。

同じ著者の記事