Claude Codeには、使うAIモデルを切り替える/modelコマンドがあります。
Sonnet、Opus、Haiku、Fableといった選択肢があり、起動時は「Default (recommended)」と表示されるモデルが選ばれています。
筆者は普段Defaultのまま使い、重そうな作業のときだけ手動でOpusにする程度でした。
AIモデルとは別に/effortという設定があることは知っていましたが、どのレベルを選べばいいのかは分かっていませんでした。
公式ドキュメントを読んでみたところ、この「重そうなときだけ上位モデルにする」という操作を自動化する仕組みが3種類用意されていました。
あわせて、プランを変更したあともクライアント側の表示が古いまま残っていることにも気づきました。
この記事では、3つの自動切り替えの仕組みと、effortという設定の意味、そして実際に試した結果をまとめます。
そもそも「Default (recommended)」が何を指しているのか
/modelを実行すると、モデルの一覧が表示されます。
先頭にあるのが「Default (recommended)」で、これが具体的にどのモデルを指すのかは契約プランによって変わります。

/modelを実行したときの画面| プラン | Defaultが指すモデル |
|---|---|
| – Pro – Team Standard – Enterprise(通常シート) | Claude Sonnet 5 |
| – Max – Team Premium – Enterprise従量課金 – API直契約 | Claude Opus 5 |
| – Claude Platform on AWS – Amazon Bedrock – Google Cloud | Claude Opus 5 |
| – Microsoft Foundry | Claude Sonnet 4.5 |
つまり「将来的にはOpusが標準になるのか」という疑問への答えは、「プランによっては、すでにそうなっている」ということになります。
4つのモデルの位置づけ
選択肢に出てくる4つのモデルは、それぞれ得意な場面が違います。
モデル選択画面に表示される説明と、参考までにAPIの従量課金の単価を並べてみます。
| モデル | 画面に表示される説明 | 入力 / 出力 (100万トークンあたり) |
|---|---|---|
| Fable 5 | 最も難しく、長時間かかる作業向け | $10 / $50 |
| Opus 5 | 日常的で複雑な作業向け | $5 / $25 |
| Sonnet 5 | 定型作業を効率よく | $2 / $10 |
| Haiku 4.5 | 手早い回答が欲しいとき | $1 / $5 |
注意したいのは、Fable 5が「最上位だから常に一番いい」わけではない点です。
画面の説明でもOpus 5が「日常的な作業向け」とされており、Fable 5は難しい作業に絞って使う位置づけになっています。
単価もSonnet 5の5倍です。
なお上の単価はAPIを従量課金で使う場合のもので、MaxやProのサブスクではこの金額を直接支払うわけではありません。
各モデルが利用枠をどれくらいの速さで消費するかは公開されていないため、単価の比率がそのまま消費量の比率になるとは限りません。
なお、この対応はClaude Code v2.1.219での変更です。
それ以前はMaxなどでもOpus 4.8がDefaultでした。バージョンが古いと表示が違う可能性があります。
ターミナルとVSCode拡張で操作が違う
ひとつ紛らわしいのが、/modelの挙動が環境によって違う点です。
なお以降で「VSCode拡張」と書いているのは、Anthropic公式の「Claude Code for VS Code」を指します。
ターミナルから起動した場合は、/modelだけで番号付きのモデル一覧がその場に開き、選ぶとそのまま切り替わります。
一方VSCode拡張では、/modelだけを打っても一覧は開かず、現在のモデルと指定できる名前が返ってきます。
切り替えるには、/model haikuのようにモデル名を続けて指定するか、メニューから「Switch model…」を開いて選びます。
指定できる名前はsonnet、opus、haiku、fable、opusplan、defaultなどです。
1Mコンテキストを明示するopus[1m]のような書き方もできます。
effort ― モデルとは別の「どれだけ考えるか」という軸
モデルの話に入る前に、/effortという設定について触れておきます。
モデル選択と混同しやすいのですが、この2つは別の軸です。
料理に例えると分かりやすいかもしれません。
モデルの選択は「どの料理人に頼むか」にあたります。ベテランのシェフか、若手の料理人か。腕前そのものが違います。
一方でeffortは「どれだけ手間をかけて作るか」です。
同じシェフでも、まかないをさっと作るときと、コース料理を仕込みから作るときでは、かける時間も工程も違います。
腕は同じでも、出てくるものの精度と、かかるコストが変わります。
effortは5段階あり、/effortで切り替えます。
ターミナル版では/modelのモデル選択画面の下部にもHigh effort (default)と表示され、左右キーでそのまま変更できるようになっていました。
| レベル | どんなときに使うか |
|---|---|
| low | 定型作業や単純な修正。速くて消費も少ない |
| medium | 軽めの調べものなど |
| high | デフォルト。通常はこれで足りる |
| xhigh | 込み入った実装や設計判断 |
| max | 間違えたくない場面。最も深く考える |
デフォルトはhighです(Opus 4.7のみ例外的にxhigh)。
5段階すべてに対応しているのはFable 5、Opus 5、Sonnet 5、Opus 4.8、Opus 4.7です。
Opus 4.6とSonnet 4.6にはxhighがなく、4段階になります。
対応していないレベルを指定した場合は、その下で一番近いレベルに落ちて動きます。
つまり「賢いモデルに軽く考えさせる」ことも「軽いモデルにじっくり考えさせる」こともできる、ということです。
単純作業なら次のように落とすだけで、同じモデルのまま速く・安く済ませられます。
/effort low
メニューに隠れている「ultracode」
/effortのメニューには、5段階とは別にultracodeという項目があります。
これは厳密にはモデルのeffortではなくClaude Code側の設定で、xhighを指定しつつ、まとまった作業では動的ワークフローを組ませるというものです。
起動時に指定することもできます(v2.1.203以降)。
claude --effort ultracode
ただし現在のセッション限りの設定で、設定ファイルのeffortLevelや環境変数では指定できません。
VSCode拡張では、モード切り替えのパネルにEffortのスライダーが並んでいて、コマンドを打たずに変更できました。

表示されているラベルがUltracode - xhigh + workflowsとなっていて、「xhighにワークフローを足したもの」という位置づけがそのまま書かれています。
自動切り替え その1:opusplan
ここからが自動切り替えの話です。
まずはプランモードではOpus、実行フェーズではSonnetに自動で切り替わるモードから。
/model opusplan
設計を考えるときは上位モデル、コードを書くときは軽いモデル、という使い分けが自動になります。
プランモードを抜けた瞬間に切り替わるので、自分で/modelを打つ必要がありません。
筆者が手動でやっていた切り替えは、ちょうどこれを人力で再現していたものでした。
自動切り替え その2:アドバイザーツール
実行中のモデルが、重要な判断にぶつかったときだけ、自分の判断で上位モデルに相談するという仕組みです。
3つの中では、これが最も動きが分かりにくいものでした。
/advisor opus
これで「メインはSonnet 5、相談相手はOpus 5」という体制になります。
以後、いつ相談するかはClaude自身が決めます。
公式ドキュメントによると、方針を固める前、エラーが繰り返し出るとき、完了を宣言する前、といったタイミングです。
設定はユーザー単位で保存されるので、プロジェクトごとに入力し直す必要はありません。~/.claude/settings.jsonに直接書くこともできます。
{
"advisorModel": "opus"
}
実際に試してみた
動作を確認するため、「決まっていないこと」が3つ残っている状態の設計メモを用意し、方針を提案してもらいました。
まずファイル一覧を確認し、設計メモを読み、関連箇所を検索する。
そこまで自力で調べたあとで、Advising using Opus 5という行が出ました。
相談するよう指示はしていないので、Sonnet 5が自分で判断して呼び出したことになります。
ちなみに事前に「今日は暑いね、夕飯何にしようかな」と雑談を投げたときは、アドバイザーは発動しませんでした。
重い判断が絡む場面かどうかで、動作が分かれているようです。
相談の結果、何が返ってきたか

/advisor opusの設定から、相談完了後の提案まで返ってきた提案の冒頭が、これでした。
メモは「同期を諦めるかどうかで決まる」としていますが、これは論点がずれています。localStorage・IndexedDB・ファイル出力のどれを選んでも複数端末間の同期は実現できません(すべて単一デバイス完結)。つまりこれは保存方式の選択問題ではなく、「複数端末対応をそもそもスコープに入れるか」という別の問題です。
こちらが用意した設計メモには「同期を諦めるかどうかで決まる」と書いていました。
しかし挙げた3案はどれも単一デバイス完結なので、そもそも判断の分かれ目になっていなかったわけです。
質問にそのまま答えるのではなく、質問の立て方のほうを指摘している。
上位モデルに相談する意味は、こういう部分にありそうです。
残り2つの論点についても、いきなり結論を出すのではなく、「タスクが持つ属性次第で変わる」とデータモデルを明示してから答えを出したり、「消す・隠す・残す」の3択に対して組み合わせで両方の要望を満たす案を出したりしていました。
この記事も指摘を受けて書き直している
実はこの記事を書く過程でも、アドバイザーが働きました。
Claude Codeに「材料が揃ったので書き始める」と伝えたところ、相談が入り、3点の指摘が返ってきました。
- VSCode拡張とターミナルで挙動が違った件は、原因が特定できていないのに記事の中心に据えようとしている
- プランとデフォルトモデルの関係について、推測が実際の画面表示と矛盾している
- 料金情報が古い(キャッシュされた6月時点のデータを参照していた)
3番目については、公式ページを確認したところ予定されていた値上げが撤回されており、そのまま書いていたら誤った情報になるところでした。
前提そのものを疑う、という点で、設計メモの例と同じ働き方をしています。
自動切り替え その3:フォールバック
モデルが過負荷などで応答できないとき、別のモデルに自動退避する設定です。
claude --fallback-model sonnet,haiku
設定ファイルに書くこともできます。
{
"fallbackModel": ["claude-sonnet-5", "claude-haiku-4-5"]
}
切り替わるのはそのターンだけで、次のメッセージでは元のモデルに戻ります。
認証エラーや料金上限、レート制限では発動しません(それらは通常のエラー処理になります)。
起動時に設定内容が表示されず、/statusにも出ないので、実際に切り替わったときの通知が唯一の手がかりになります。
気づいた点:再ログインするまでプラン表示が古いままだった
動作を確認している途中で、表示に食い違いがあることに気づきました。
Max(5x)で契約しているのに、ターミナルから起動したClaude Codeの/statusがこうなっていたのです。

Login methodがClaude Pro accountのままだった先ほどの表に従えば、MaxならDefaultはOpus 5になるはずですが、Sonnet 5のままです。
対処は簡単で、入り直すだけでした。
/login

Claude Max accountに変わり、DefaultもOpus 5になったClaude Max accountに変わり、デフォルトモデルもOpus 5(1Mコンテキスト)になりました。
メールアドレスもOrganizationも変わっていないので、アカウントが複数あったわけではなく、認証情報が古いままだったようです。
VSCode拡張でも同じことが起きていた
ターミナル特有の問題かとも思ったのですが、VSCode拡張のモデル選択を見ると、こちらもDefaultがSonnet 5のままでした。

こちらでも/loginを実行したところ、表示が変わりました。

DefaultがOpus 5に変わっただけでなく、再ログイン前にはなかった「Opus (1M context)」という選択肢が増えています。
選べるモデルの顔ぶれ自体が変わったことになります。
ターミナルとVSCode拡張はそれぞれ別に認証情報を持っているようで、どちらも再ログインするまで古いプランのままでした。
プランを変更したときは、使っているクライアントごとに/loginをやり直す必要がありそうです。
ただし、これはあくまで表示上の話です。
再ログイン前も、体感としてはMaxの枠で動いていました。Proのときにどのくらいで制限に当たるかは経験で分かっているので、それとは明らかに違ったからです。
おそらく契約自体は反映されていて、クライアント側の表示だけが古い情報のまま残っていたのだと思います。
実際の利用枠がどちらの基準で計算されていたかを数値で確認したわけではないので、断定はできません。
ただ、表示がおかしいからといって「払った分が無駄になっている」とは限らない、ということは言えそうです。
補足:使えない環境があった
VSCode拡張の中では/advisorが使えませんでした。
/advisor isn't available in this environment.
同じマシンでターミナルからclaudeを起動すると、問題なく設定できました。
ただし、このときVSCode拡張側はv2.1.221、ターミナル側はv2.1.238とバージョンが違っていたため、環境の違いによるものか、バージョンの違いによるものかは特定できていません。
公式ドキュメントには、アドバイザーの動作条件として次が挙げられています。
- Anthropic API経由であること(Amazon Bedrock、Claude Platform on AWS、Google Cloud、Microsoft Foundryでは使えない)
- メインモデルがOpus 4.6以降、Sonnet 4.6以降、Haiku 4.5、Fable 5のいずれかであること(Fable 5をメインにした場合、相談相手に選べるのはFableのみ)
- 機能フラグの取得が有効であること(
DISABLE_TELEMETRYなどが設定されているとオフになる)
もし手元で使えない場合は、ターミナルから起動して試すと切り分けができるかもしれません。
まとめ:結局どう使い分けるか
調べた結果、次のように整理できました。
- 普段はDefaultのままでよい。プランに応じたモデルが選ばれている
- 設計や方針を考えるフェーズがある作業は
opusplan - 長い作業、判断の質が結果を左右する作業は
/advisor opus - 単純作業は
/effort lowでモデルはそのままに軽く - プラン変更後にモデル表示が変わらないならクライアントごとに
/loginを試す
どれも設定は一度きりで、あとは自動で動きます。
手動で切り替えていた作業がそのまま不要になります。
合わなければ、次のコマンドで元に戻せます。
/model default /advisor off
Claude Codeの利用枠や料金プランについては、こちらにまとめています。

外部ツールとの連携については、こちらを参考にしてください。


コメント