Claude CodeでOpusに計画させてSonnetに実行させると速くなった話

Claude CodeでOpusに計画させてSonnetに実行させると速くなった話

Sonnetだけで作業していたとき、同じミスを何度も繰り返すことがあった。「なんでこんな間違いをするんだろう」と思っていたけど、原因は指示の出し方だったかもしれない。

ある日、プロンプトの最後に「Opusで計画を立てて、Sonnetで実行してください」と一行加えてみた。そうしたら、その後のアクションが明らかにスムーズになった。

なにが変わったのか

Sonnetは実行が得意なモデルだ。速くて安く、コードを書いたりファイルを操作したりするのは十分強い。ただ、複雑なタスクを一気に渡すと、ときどき判断がぶれる。

Opusは推論が得意だ。トークンは多く使うけど、複雑な問題を構造化してステップに分解するのが上手い。

この二つを組み合わせると何が起きるか。

  1. Opusが「何をどの順番でやるか」を先に決める
  2. Sonnetがその計画に従って実行する

計画がある状態で動くSonnetは、計画なしのSonnetより判断ブレが少ない。当たり前といえば当たり前だが、これを意図的に設定していなかった。

Claude Codeでの実装方法

Claude Codeのグローバル設定ファイル(~/.claude/CLAUDE.md)に以下を追記すると、複雑なタスクで自動的にOpus計画 → Sonnet実行の流れになる。

## Opus計画 + Sonnet実行ルール

ステップが3つ以上あるタスクを受けたとき:
1. Planサブエージェント(model: opus)で実装計画を先に作る
2. 計画に基づきSonnetで実装する

以下はSonnetのみで完結する(小さな変更・調査のみ):
- 1〜2ファイルの変更
- 調査・確認のみのタスク
- 既存パターンの繰り返し

これで「複雑なタスクはOpusが設計、Sonnetが実行」がデフォルトになる。

トークンとのバランス

Opusはトークンコストが高い。毎回Opusを使うと費用がかさむ。

そこでルールに「使わない場面」も書いておくのが大事だ。小さな修正・読み取り専用・繰り返し作業はSonnetだけで十分。Opusを使うのは「設計判断が必要な複雑なタスク」に絞る。

大雑把な目安:

  • ファイル数3以上 → Opus計画あり
  • ステップ数3以上 → Opus計画あり
  • それ以下 → Sonnetのみ

なぜプロンプトに書くだけで変わるのか

Claude Codeのサブエージェント機能(Agentツール)は、呼び出し時にモデルを指定できる。model: "opus" を指定すれば、そのサブタスクだけOpusが動く。

「Opusで計画して」という指示を受けたClaudeは、内部的にOpusのPlanエージェントを呼び出して計画を立て、その結果を自分(Sonnet)への指示として受け取る。その構造化された指示に従って実行するので、精度が上がる。

実際に試してみた感想

完璧ではないけど、体感では「迷わない」回数が増えた。特に複数ファイルにまたがる改修や、順序が重要な作業で差が出やすい。

Sonnetだけで全部やろうとして詰まっていたのは、計画フェーズをスキップしていたからだと気づいた。人間でも設計なしにいきなり実装すると迷うのと同じだと思う。

参考

attrip

attrip

考えたことを、記事・AI・音楽に変えて発信しています。

盆栽、音楽、ブログ運営、日々の試行錯誤について書いています。

2010年から発信中

コメントを残す