原典: Model configuration / 日本語版

一行要約

セッションのモデルと effort が何で決まるかの正典で、default は v2.1.280 以降 Microsoft Foundry を除いて Opus 5.5 に揃い(変えるのは組織の既定・ANTHROPIC_DEFAULT_MODEL・プロバイダ)、effort の既定は Opus 5.5 と Sonnet 5.5 が medium・Opus 4.7 が xhigh・他は high、そして ultrathink 以外の「think hard」などはキーワードとして認識されない。

要点

モデルの決まり方(優先順位が5段ある)

原典が優先順位の順に並べているもの。上ほど強い。

決め方
1セッション中: /model <alias|name>(引数なしでピッカー)
2起動時: claude --model <alias|name>
3環境変数: ANTHROPIC_MODEL
4設定ファイル: model フィールド
5新規セッションの既定: ANTHROPIC_DEFAULT_MODEL

/model は既定として保存される(user settings の model に書く)。ピッカーでは Enter が「切り替えて既定に保存」、s が「このセッションだけ」(s は modelPicker:thisSessionOnly でリバインドできる)。/model <name> を直接打つのは Enter と同じなので、このセッションだけにしたいなら引数なしでピッカーを開いて s。非対話(-p)での /model は現セッション限りで保存されない(project / managed 設定は優先され、次の起動で戻る)。

/model の切り替えは subagent にも届く。 メイン会話のモデルを継承する subagent は、Claude が起こす時点のセッションのモデルから解決される。調査やテスト実行を任せる前に Opus へ切り替えれば、その subagent も Opus で走る。

--model と ANTHROPIC_MODEL は起動したセッションにしか効かない。 複数のターミナルで別々のモデルを同時に走らせたいなら、/model で切り替えるのではなく各ターミナルを別々の --model で起動する。

再開したセッションのモデル

Resumed sessions started with claude --resume, --continue, or the /resume picker keep the model they were using when the transcript was saved, regardless of the current model setting.

claude --resume / --continue / /resume ピッカーで再開したセッションは、現在の model 設定に関わらず、transcript が保存された時点で使っていたモデルを保つ。

別のセッションでの /model の選択が、再開時にモデルを変えてしまわないための設計。 ただし、そのモデルが引退済み・availableModels で除外済みなら通常の優先順位に落ちる。Bedrock / Google Cloud Agent Platform / Microsoft Foundry のように provider 固有の deployment ID を使う環境では、transcript のモデルは復元されない。

default の解決先(v2.1.280 以降は Foundry 以外 Opus 5.5)

ここが「モデルの既定」を追うときの起点。 プランの違いで解決先が分かれていたのは v2.1.280 より前の話で、v2.1.280 以降はプランを替えても default は変わらない。変えるのはプロバイダ(Foundry)、組織の既定モデル、ANTHROPIC_DEFAULT_MODEL、ANTHROPIC_DEFAULT_OPUS_MODEL(アカウント種別の既定がどの版を使うかも決める)、managed settings による Default の allowlist 強制(既定が availableModels に無ければ強制された Default に解決する)、Enterprise でアカウントに記録された既定モデル、そして deniedModels / availableModelsMatch による版の遮断(いずれも下記)。

アカウントdefault の解決先
Pro / Max / Team / Enterprise / Anthropic APIOpus 5.5
Claude Platform on AWS / Amazon Bedrock / Google Cloud Agent PlatformOpus 5.5
Microsoft FoundrySonnet 4.5

v2.1.280 で opus と default の解決先が Opus 5 から Opus 5.5 に上がった。 それまでは Pro と Team Standard だけ default が Sonnet 5 だったが、いまは Pro も Opus 5.5 になる。版を固定したいなら claude-opus-5-5 のようにフルネームで書く(または ANTHROPIC_DEFAULT_OPUS_MODEL)。Opus 5.5 には Claude Code v2.1.280 以降が要る。

opus / sonnet エイリアスの解決先はプロバイダで違う:

プロバイダopussonnet
Anthropic APIOpus 5.5Sonnet 5.5
Claude Platform on AWSOpus 5.5Sonnet 4.6
Amazon Bedrock / Google Cloud Agent PlatformOpus 5.5Sonnet 4.5
Microsoft FoundryOpus 4.6Sonnet 4.5

Anthropic API では v2.1.284 で sonnet が Sonnet 5.5 に上がった(Sonnet 5.5 には v2.1.284 以降が要る)。opusplan の実行フェーズも sonnet なので、同じく上がる。 エイリアスが版ごとにどこを指していたかは、原典末尾の Version history の表にまとまっている。

組織の既定モデルが設定されていれば、アカウント種別の既定より組織の既定が先に置き換わり、そのうえで allowlist の強制がかかる。

Enterprise プランでは、claude.ai アカウントでログインして /model で既定を保存すると、その選択がアカウントにも記録される(v2.1.280 以降)。管理者が組織の既定モデルを設定していなければ、Default はその記録されたモデルに解決しうる(ピッカーの Default 行にそのモデル名が出る)。記録されたモデルが制限で除外されているか使えないときは、記録が無いものとして解決する。/model で Default か opusplan を選んでも記録は変わらない。

Fable models are not the account-type default on any plan or provider.

Fable のモデルは、どのプランでもどのプロバイダでもアカウント種別の既定ではない。

選んだときだけ使われる(/model fable、model 設定、または Fable が使える環境での best エイリアス)。fable の解決先は Fable 5.1(v2.1.257 以降。ANTHROPIC_DEFAULT_FABLE_MODEL で変えられる)で、Claude apps gateway のセッションだけ fable と best が Fable 5 になる。/model で選ぶと user settings に保存されるので、変えるまで以降のセッションもそのモデルで始まる。

opusplan の実体

  • plan mode では opus(複雑な推論とアーキテクチャの判断)
  • 実行に移ると自動的に sonnet(コード生成と実装)

availableModels が最新の Opus を除外していても、許可された古い Opus があればそれを plan に使う(全 Opus が除外されたときだけ Sonnet に留まる)。Haiku セッションが plan mode で Sonnet に上がる場合も同じ。ただしこの「古い版で代替する」挙動は Anthropic API と Claude Platform on AWS だけで、provider 固有の ID を使う環境では除外時にセッションのモデルのまま留まる。

⚠️ opusplan は plan mode の出入りで毎回モデルが替わるので prompt cache を捨てる(maximizing-session-value)。

許可リストは後続の版まで通す

availableModels の claude-opus-5 のようなエントリは、その後継の版(Opus 5.5 など)も、Claude Code が対応した時点で許可してしまう。 新しい版を止めておく managed 設定が2つある(どちらも v2.1.283 以降で、managed settings からしか読まれない。user / project / local / --settings に書くと警告つきで無視される)。

キー効き方
deniedModels列挙したモデルを止める。availableModels が許可していても止まり、許可リストが無くても効く。例の "claude-opus-5-5" は日付つき・プロバイダ固有の ID も含めて止める
availableModelsMatch: "exact"availableModels の各モデル ID が名指しした版だけを許可する。新しい版は、リストに足すまで止まったまま
  • それより前の版はどちらのキーも無視するので、requiredMinimumVersion も設定して古い版を起動させない
  • 止められたモデルはピッカーに出ず、/model <name> も拒否される。--model / ANTHROPIC_MODEL / model 設定で名指ししても起動時に落とされ、Default に解決する。hook やバックグラウンドのリクエスト(agent hook の model など)が deniedModels のモデルを名指ししていれば、セッションのモデルで走る
  • Default もこの2つに従う(enforceAvailableModels の有無に関わらず)。enforceAvailableModels を空でない availableModels と一緒に設定しているなら、止められた既定は「許可リストの外のモデル」として扱われる(強制された Default の経路に乗る)。そうでなければ、止められたモデルに解決しそうなときに同じ系統で許可された最新の版 → より安い系統(Sonnet、次に Haiku)の許可された最新 → availableModels の最初の許可されたエントリの順に下がる。どれも許可されていなければ、Default で始まるセッションは起動を拒否する(直すべきキーをエラーが名指しする)。"exact" のリストが Default に効くのは、managed の availableModels が少なくとも1つのモデルか系統を名指ししているときだけ

effort の既定と、レベルの意味

モデル使えるレベル
Fable 5.1 / Fable 5low medium high xhigh max
Opus 5.5 / Sonnet 5.5 / Opus 5 / Sonnet 5 / Opus 4.8 / Opus 4.7low medium high xhigh max
Opus 4.6 / Sonnet 4.6low medium high max

対応していないレベルを指定してもエラーにはならない。

If you set a level the active model does not support, Claude Code falls back to the highest supported level at or below the one you set. For example, xhigh runs as high on Opus 4.6.

対応していないレベルを指定した場合、Claude Code は指定した以下で最も高い対応レベルに落とす。たとえば xhigh は Opus 4.6 では high として走る。

既定は high。ただし Opus 5.5 と Sonnet 5.5 は medium、Opus 4.7 は xhigh。 原典が各レベルに与えている使いどころ(以前の取得で、トークンと知能の話から作業の例に書き換わった):

レベルいつ
low1つずつ結果を確かめるやりとり(ブレインストーミング、最初のスケッチ、名前の変更のような小さな変更)
mediumOpus 5.5 と Sonnet 5.5 の既定。範囲がはっきりした日常のエンジニアリング(新機能の実装など)に合う。他のモデルでは、知能を多少犠牲にしてよいコスト重視の作業でトークンを減らす
high検証が大事な作業、エッジケースが出やすい作業(既存コードベースのバグ修正など)。Opus 5.5 / Sonnet 5.5 / Opus 4.7 以外の既定
xhighより深い推論と引き換えにトークンを使う。Opus 4.7 の既定
max自分が見ていなくても Claude に解き切ってほしい難問(セキュリティ脆弱性の発見など)。逓減しやすく考えすぎに陥りやすいので、広く採用する前に試す
ultracodeレベルではなく Claude Code の設定。 実質的なタスクごとに dynamic workflow を計画する。どの effort レベルでも使える

Opus 5.5 と Fable 5.1 での試験では、高いレベルほど Claude は多くのエッジケースを試し、答える前に自分の仕事を多く検証し、自分で下す判断も増えた。低いレベルでは出発点を早く返した —— 1つずつ結果を見て次を指示する作業に合う。

In Anthropic’s testing, Opus 5.5 at medium matches or exceeds Opus 5 at high on coding and knowledge-work evaluations. At a given level, Opus 5.5 tends to think more per turn than Opus 5. When you move from Opus 5 to Opus 5.5, start at medium rather than carrying over the level you used on Opus 5.

Anthropic の試験では、Opus 5.5 の medium は、コーディングと知識労働の評価で Opus 5 の high に並ぶか上回る。 同じレベルなら、Opus 5.5 は Opus 5 より1ターンあたり多く考える傾向がある。Opus 5 から Opus 5.5 に移るときは、Opus 5 で使っていたレベルを持ち越さず medium から始めよ。

ultracode は v2.1.284 で effort レベルから切り離された。 /effort や ultracode 設定でオン・オフしても effort レベルは変わらず、/effort スライダや /model ピッカーでレベルを選んでも ultracode はそのまま(スライダでは Tab でトグル、/effort ultracode off で切る)。--effort ultracode と Agent SDK の effortLevel: "ultracode" だけは、オンにしたうえでレベルも xhigh にする。 CLAUDE_CODE_EFFORT_LEVEL や effort の上限がレベルを決めていても、ultracode はそのレベルでオンのまま。v2.1.284 より前は、ultracode をオンにすると xhigh になり、別のレベルを選ぶとオフになり、xhigh 未満の上限がかかると使えなかった。

ultracode が使えないのは2つの場合 —— workflow が切られている、モデルが xhigh に対応していない。そのとき --effort ultracode は ultracode を off にしたまま、モデルと上限が許す最高のレベル(上限 xhigh)で始まる。

The effort scale is calibrated per model, so the same level name does not represent the same underlying value across models.

effort の目盛りはモデルごとに較正されているので、同じレベル名がモデル間で同じ実体を表すわけではない。

effort の決まり方(「引きずり」は原典から消えた)

セッションの effort は次の順で決まる。

  1. 明示的な指定(CLAUDE_CODE_EFFORT_LEVEL / --effort / セッション内の /effort)
  2. 設定に保存したレベル(modelSettings / effortLevel)
  3. モデルの既定(high。Opus 5.5 と Sonnet 5.5 は medium、Opus 4.7 は xhigh。組織が既定モデルに既定 effort を設定していればそれ)

かつてここに「モデルの既定 effort の引きずり」という2段目があった。 Fable 5 / Opus 4.8 / Opus 4.7 を一度でも走らせると、設定が別のレベルを解決してもそのモデルの既定が保持される、という挙動で、終わらせるには対話で確定するしかなかった。この仕組みは原典から無くなった(以前の取得にはあり、その後の取得には無い。消えた日は原典に書かれていない)。

Opus 5.5 と、それ以降に出るモデルは、user settings のトップレベル effortLevel を見ない。 このキーは、Claude Code がモデルごとに保存するようになる前に /effort が書いていた古い形式で、Opus 5 / Fable 5.1 とそれ以前のモデルには効き続ける。Opus 5.5 とそれ以降に出たモデルは、/effort か /model ピッカーで自分でレベルを選ぶまでそのモデル自身の既定で始まる(Opus 5.5 なら medium)。project / local / managed の設定、--settings で渡したトップレベル effortLevel は全モデルに効く。

対話セッションでレベルを決めるとき、どう確定したかで寿命が変わる:

  • Enter(/effort のスライダ、/model ピッカー、/effort <level> と打つ): 既定として保存し、以降のセッションにも効く
  • s: このセッションだけ(Claude Code v2.1.257 以降)

保存はモデルごとに modelSettings へ入る。

組織による effort の上限

上限のかけ方が2系統あり、両方効く場合は低いほうが勝つ。

  • Claude Enterprise: 管理者がカスタムロールごと・モデルごとに上限を設定
  • プランとプロバイダを問わず: managed setting の maxEffortLevel がクライアント側で上限をかける

上限を超えるレベルは /effort の選択肢に出ず、--effort で名指ししても上限で走る。気づけるかどうかは出力形式で変わる。

In interactive sessions and plain-text --print runs, a warning names the requested and applied levels; with json or stream-json output or in background agents, the clamp applies silently.

対話セッションと平文の --print では、要求したレベルと実際に適用されたレベルを警告が示す。json / stream-json 出力や background agent では、切り詰めは黙って適用される。

skill / subagent の frontmatter で指定した effort も、この上限を超えられない。 frontmatter の effort はセッションのレベルを上書きするが(環境変数は上書きしない)、maxEffortLevel と組織の上限はその上から効く。

安全分類器による差し戻し

Fable 5.1 / Fable 5 / Opus 5.5 / Sonnet 5.5 / Opus 5 は安全分類器つきで走る。 引っかかりやすいのはサイバーセキュリティと生物学で、分類器が立てたカテゴリに差し戻し先があれば、Claude Code はそのモデルで走らせ直し、transcript に通知を出す。

  • Fable 5.1 / Fable 5 / Opus 5.5: 生物学は Opus 5 に、サイバーセキュリティは Opus 4.8 に差し戻す
  • Opus 5: サイバーセキュリティは Opus 4.8 に差し戻すが、生物学は差し戻し先が無く拒否で終わる(Opus 5 自身の生物学分類器には差し戻し先が無い)。ANTHROPIC_DEFAULT_OPUS_MODEL を設定しても変わらない
  • Sonnet 5.5: サイバーセキュリティは Sonnet 5 に差し戻す。生物学は差し戻し先が無く拒否で終わる
  • Bedrock / Google Cloud Agent Platform / Microsoft Foundry では、Opus の差し戻し先がデプロイ内で解決できないと、どのモデルからも(Sonnet 5.5 からも)差し戻しは起きず拒否で終わる。 ANTHROPIC_DEFAULT_OPUS_MODEL を設定するか、プロバイダのモデル一覧に Opus 4.8 を残す。Sonnet 5.5 からのサイバーセキュリティの差し戻し先は ANTHROPIC_DEFAULT_SONNET_MODEL(無ければ一覧の Sonnet 5)
  • penetration testing・CTF・生物学に隣接したコードベースは、最初のリクエストから頻繁に差し戻しに当たる(Opus 5 と Sonnet 5.5 では、生物学の拒否が最初に引っかかったリクエストから出る —— Opus 5 への移動を挟まない)。Fable 5.1 / Fable 5 / Opus 5.5 でまとまった生物学の作業をするなら、Claude Code は最初の差し戻しでセッションごと Opus 5 に移す

差し戻した後の effort は、引っかかったリクエストのレベルを引き継ぐ(差し戻し先モデルの既定ではない)。既定 medium の Opus 5.5 から Opus 4.8 に差し戻すと、Opus 4.8 の既定は high でも medium のまま。例外は、設定や組織の既定がそのモデルに効く場合、自分で effort を選ぶ・/model で選ぶ・あとで再開した場合、skill の effort frontmatter がそのリクエストのレベルを決めていた場合(そのターンはそのレベルで、以後のターンは差し戻し先モデルの通常の解決順で決まる)。効いているレベルはセッションのヘッダでモデル名の横に出る。

ultrathink だけがキーワード(よくある誤解)

プロンプトのどこかに ultrathink を含めると、セッションの effort 設定を変えずにそのターンだけ深い推論を要求できる。Claude Code がキーワードとして認識し、in-context の指示を足す。API に送る effort レベルは変わらない。

Claude Code passes other phrases such as “think”, “think hard”, and “think more” through as ordinary prompt text and doesn’t recognize them as keywords.

「think」「think hard」「think more」といった他の言い回しはただのプロンプト本文として通され、キーワードとしては認識されない。

1M context と thinking の切れなさ

  • Anthropic API では、Fable 5.1 / Fable 5 / Sonnet 5 以降 / Opus 4.7 以降が、Pro を含む全プランで 1M 窓で走る。 [1m] の variant を選ぶことも usage credits を付けることも要らない
  • [1m] variant が要るのは Opus 4.6 と Sonnet 4.6 だけ。 Opus 4.6 の 1M は Max / Team / Enterprise の購読に含まれ、Sonnet 4.6 の 1M は usage credits が要る
  • opusplan は、plan フェーズが opus と、実行フェーズが sonnet と同じ窓になる。 どちらも既定で 1M のモデルに解決するなら(Anthropic API の現行モデルはそう)両フェーズとも 1M
  • Opus 5.5 / Sonnet 5.5 / Fable 系は thinking を切れない。 セッションのトグルと /config の行は切り替えを出さず Thinking can't be turned off と表示し、保存済みの alwaysThinkingEnabled: false も MAX_THINKING_TOKENS=0 も効かない。effort レベルに応じてモデルがステップごとに決める。保存した設定は、それを受け付けるモデルに切り替えると再び効く
  • LLM gateway など ANTHROPIC_BASE_URL を向けた先でも、Claude Code が知っているモデルには Anthropic API と同じ窓を与える(Fable 5.1 / Fable 5 / Sonnet 5 以降 / Opus 4.7 以降は 1M、Opus 4.6 のように [1m] variant で 1M になるモデルは付けなければ 200K)。gateway 側が課す低い上限は Claude Code から見えない —— 200K 超を拒む gateway なら、起動する環境で CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000 を設定する
  • third-party で ANTHROPIC_DEFAULT_*_MODEL を設定すると、/model ピッカーはその系統の組み込みの行(1M の行も含む)の代わりに1行だけ出す。 1M 窓にするには利用者が /model opus[1m](sonnet[1m] も同じ)を打つ —— 変数に接尾辞を付けなくても、変数が指すモデルに付く

auto-compact の窓

設定できる場所には優先順位がある。

場所効き方
/autocompact 500kいまのモデルの窓として user settings の modelSettings に保存し、現セッションにも適用(v2.1.288 より前はトップレベルの autoCompactWindow に全モデル共通で保存していた)。managed settings など上位スコープがそのモデルか全モデルの窓を設定していると、保存はされるがセッションはそちらを使う
settings の autoCompactWindow全モデル共通。同じファイルに /autocompact でモデルごとに保存した窓があれば、そのモデルではそちらが勝つ
--autocompact フラグその起動のみ。保存値を変えない。/autocompact と違い上位スコープに横取りされない
CLAUDE_CODE_AUTO_COMPACT_WINDOW設定されている間はコマンドもフラグも設定も上回る

受け付ける値は 100K〜1M(200000 / 500k / 1M / 100〜1000 の裸の数=千単位)。環境変数は素のトークン数のみ。モデルの context window を超える指定は頭打ちになる。

既定の閾値は「モデルの上限に達したら compact」だが例外がある —— cloud セッションは上限に近づいた時点、Sonnet 4.6 / Opus 4.6(extended context 無し)は 200K 境界、Opus 4.8 以降も 200K 窓で走るとき(Bedrock / Google Cloud Agent Platform / Microsoft Foundry など)は 200K 境界、CLAUDE_CODE_DISABLE_1M_CONTEXT=1 を立てると 1M native のモデルも 200K 境界、1M native の窓で走るモデル(Anthropic API では Sonnet 5 以降、Fable、Opus 4.7 以降 —— 既定の Opus 5.5 も含む)は窓が埋まる前の約 967K(Bedrock / Google Cloud Agent Platform / Microsoft Foundry ではどのモデルがその窓で走るかを third-party 向けのモデル固定の節が、独自の ANTHROPIC_BASE_URL の後ろでは gateway の節が示す)、Claude Code が知らないモデル ID(LLM gateway のエイリアス等)は Claude Code が仮定した窓。

そのまま使える具体例

claude --model opus                 # この起動だけ
ANTHROPIC_MODEL=sonnet claude       # 同じくこのセッションだけ
claude --autocompact 500k           # 上位スコープに横取りされない
コマンド動作
/modelピッカー。Enter = 既定に保存 / s = このセッションだけ
/effort引数なしでスライダー。/effort auto で保存値を消す
/autocompact autoモデルに合わせた窓に戻す
  • プロンプトに ultrathink と書く → そのターンだけ深く考えさせる(effort は変えない)
  • 「think hard」と書く → ただの文章。何も起きない

原典で言及されている関連文書