はじめに
Claude Codeを使っていると、トークン消費が気になる場面がよくあります。長めの設計タスクをお願いするときなど、「賢いモデルに考えてもらいたい、でもコストはなるべく抑えたい」というジレンマに直面します。
そんなときに便利なのが「Opus Plan」というモデル設定です。計画フェーズはOpus、実装フェーズはSonnetと自動で使い分けてくれる、いいとこ取りのモードと聞いて、私もさっそく試してみました。
ところが「Opus Planを選んだのに、ずっとOpusのまま動いている気がする……」という違和感があり、調べてみたところ、クラスメソッドさんのブログで同じ疑問を解説した記事を見つけました。
【小ネタ】Claude CodeのOpus Planで計画Opus・実装Sonnetに切り替わるのは、Plan Mode時のみです | DevelopersIO
読んでみて納得したのですが、これは確かに引っかかる人が多そうな仕様だと感じたので、私なりにかみ砕いて整理してみたいと思います。
結論を先に
Opus Planで自動切り替えを効かせるには、2つのスイッチを両方ONにする必要があります。
- /model コマンドで「Opus Plan Mode」を選ぶ
- /plan コマンドで「Plan Mode」に入る
「Opus Plan」という名前から、これを選べばPlan Modeも一緒にONになると思いがちですが、そうではありません。ここを混同していると、せっかく節約したつもりがOpusでフル稼働、ということになってしまいます。
「モデル設定」と「動作モード」は別物
なぜこんな勘違いが起きるのかというと、Claude Codeには性質のちがう2種類のスイッチがあり、それがゴチャ混ぜに認識されやすいからだと思います。
スイッチ① モデル設定(誰に頼むか)
「どのAIに仕事をさせるか」を決めるスイッチです。/model コマンドで切り替えます。お店でいうと 「どの店員さんを呼ぶか」を決める操作 です。
主な選択肢は次のようになります。
- Sonnet(安いけどそこそこ)
- Opus(高いけど賢い)
- Opus Plan(状況に応じてOpusとSonnetを使い分ける) ← これが今回の主役
スイッチ② 動作モード(どんな進め方をするか)
「Claude Codeにどんな働き方をさせるか」を決めるスイッチです。/plan コマンドで切り替えます。お店でいうと 「店員さんにどんな手順で仕事をしてもらうか」を指示する操作 です。
- 通常モード(聞かれたらすぐコードを書き始める)
- Plan Mode(まずコードを読んで計画を立て、それから実装に入る)
ここで重要なのは、①と②はそれぞれ独立したスイッチだということです。①で「Opus Plan」を選んでも、それは「もしPlan Modeに入ったらこういうチーム編成で動いてね」とお店に伝えただけで、まだ何も始まっていません。
レストランで例えてみる
私の中では、こんなイメージで整理すると腑に落ちました。
「Opus Planを選ぶ」というのは、レストランで 「計画段階はベテランシェフ、調理段階は見習いシェフ、というチーム編成にしてください」とお店に伝えた状態 です。チームは組まれたけれど、まだ厨房は動いていません。
そして「Plan Modeに入る」というのは、 「では、まず献立を立ててから調理に取りかかってください」と進め方を指示する操作 です。ここで初めてベテランシェフが動き出し、献立ができあがったら見習いシェフにバトンタッチする、という流れが完成します。
両方やって初めて、
- ベテランシェフ(Opus)が献立を考える
- 献立ができたら、見習いシェフ(Sonnet)が実際に料理する
という、本来狙っていた動きになるわけです。
ちなみに「Opus Plan」って正式なモデル名なの?
ここで少し脇道に逸れますが、この「Opus Plan」、正式名称は何なのか気になって調べてみました。結論から言うと、 正式なモデル名ではなく「エイリアス(別名・ショートカット)」 です。
エイリアスというのは、呼びやすいニックネームのようなもの。Claude Codeには次のようなエイリアスが用意されています(本記事執筆時点・Anthropic API利用時)。
| エイリアス | 指す先(実体) |
|---|---|
| opus | Opus 4.7(1つのモデル) |
| sonnet | Sonnet 4.6(1つのモデル) |
| haiku | Haiku 4.5(1つのモデル) |
| opusplan | 状況に応じてOpus/Sonnetを自動で切り替える束 |
opus や sonnet のような普通のエイリアスは、裏側にある具体的なモデルIDを指す一対一の「あだ名」です。バージョンが上がっても、エイリアスは新しい推奨バージョンを自動的に指すように更新されるので、ユーザーは番号を覚える必要がありません(なお、Bedrock・Vertex・Foundry経由など利用環境によって、エイリアスが指す実モデルのバージョンは変わります)。
これに対して opusplan だけは、2つのモデルを束ねた特殊なエイリアスになっています。しかも切り替えの条件が「Plan Modeに入っているかどうか」に紐づいているので、ただのモデル選択ではなく「ハイブリッドな振る舞いを定義したエイリアス」なんですね。
ある海外の記事ではこれを 「いいレストランの裏メニューのような、opusplanという秘密のメニュー項目」 と表現していました。/model の一覧にはちゃんと並んでいるので本当の意味での裏メニューではないのですが、振る舞いだけは他の選択肢と毛色が違う——という意味では、なかなか言い得て妙だと感じます。
そしてこの「エイリアスである」という事実こそが、今回の落とし穴の根っこでもあります。opusplan はあくまで「モデルの呼び方の一種」にすぎず、それ自体が動作モードを切り替えるわけではない。だからPlan Modeへの切り替えが別途必要になる、というわけです。
組み合わせごとの挙動を整理
スイッチ①と②の組み合わせで、挙動は次のように変わります。
| モデル設定 | 動作モード | 実際の動き |
|---|---|---|
| Opus Plan | 通常モード(Plan Mode OFF) | 切り替わらない。Opusのまま動き続ける(節約にならない) |
| Sonnet | Plan Mode ON | Sonnetだけで計画も実装もする |
| Opus Plan | Plan Mode ON | 狙いどおり。計画はOpus、実装はSonnetに自動で切り替わる |
私が引っかかっていたのは、ちょうど一番上のパターンでした。「Opus Plan」を選んだだけで満足してしまい、Plan Modeに入っていなかったので、結局Opusで全部やっていたのです。
実際の操作手順
ターミナルで順番に2つのコマンドを打ちます。
/model → Opus Plan Modeを選ぶ
/plan → Plan Modeに入る
これで準備完了です。あとはタスクをお願いすると、
- 最初の計画フェーズ → 画面に Opus と表示されてじっくり考える
- 計画が終わって実装フェーズに入る → Sonnet に自動で切り替わってコードを書き始める
という流れが見られます。私も実際に試してみて、画面のモデル名表示がスッと切り替わる瞬間にちょっと感動しました。
なお、画面に表示される具体的なバージョン番号(例:Opus 4.7 Sonnet 4.6 など)は、執筆時点と利用環境(Anthropic API直接/Bedrock経由/Vertex経由など)によって変わります。エイリアスは時間とともに新しい推奨バージョンを自動的に指すように更新されるため、本記事では Opus Sonnet というエイリアス表記で統一しています。本記事執筆時点(2026年4月)では、Anthropic APIで opus は Opus 4.7、sonnet は Sonnet 4.6 を指しています。
おわりに
今回の話を一言でまとめると、 「Opus Planというメニューを選んだだけでは”準備完了”であって、”スタート”ではない」 ということに尽きます。スタートを切るには、Plan Modeに入るというもう一手が必要だったわけですね。
「設定したつもりが効いていなかった」というのは、ツールを使っていてわりとよくある落とし穴だと思います。特に名前が似ていたり、表示が紛らわしかったりすると、思い込みで進んでしまいがちです。今回のように一度立ち止まって「これは何の設定なんだっけ?」と分解して考えてみると、霧が晴れることが多いと感じました。
Claude Codeを日常的に使う方は、長めの設計タスクのときにぜひこの組み合わせを試してみてください。トークン節約と品質のバランスが、ぐっと取りやすくなるはずです。

コメント