メインコンテンツへスキップ
見出し画像

Claude Codeで進めるAI駆動開発。Opus 5.5とSonnet 5.5をどう使い分ける?

    要件定義・設計はOpus、実装・ユニットテストはSonnet。実測結果からAI駆動開発の役割分担を考える。最後にGPT-6.1 Sol、Gemini 3.8 Flashを加えた4モデル比較も。

    前回、Claude Opus 5.5、GPT-6.1 Sol、Gemini 3.8 Flashに、同じ仕様・ルール・ハーネスを渡して、同じWebアプリを作らせてみました。

    そこで印象的だったのが、Claude Opus 5.5です。

    3モデルの中では一番時間がかかりました。

    その一方で、103件のテストを作り、ブラウザでも22項目を確認し、こちらから細かく指示していないエッジケースまで自分で探していました。

    かなり慎重です。

    そこで、もう一つ気になりました。

    同じAnthropicのClaude Sonnet 5.5なら、同じ仕事をどう進めるんだろう?

    Opusほど慎重なのか。

    それとも、もっと速く進めるのか。

    そして、システム開発でClaude Codeを使うなら、結局どちらを使うのが効率的なのか。

    今回は、前回と同じ条件でClaude Sonnet 5.5にも同じアプリを作らせて比較してみました。


    Claude Codeで、OpusとSonnetはどこまで違う?

    画像

    今回比べるのは、

    • Claude Opus 5.5

    • Claude Sonnet 5.5

    です。

    どちらもAnthropicのClaude 5.5シリーズですが、公式の位置づけは少し違います。

    AnthropicはSonnet 5.5を、Opus 5.5を補完する、より高速で低コストなモデルとして位置づけています。

    特に、

    • 日常的な開発

    • 機能追加

    • バグ修正

    • コードレビュー

    • 範囲の明確なタスク

    に向いているとしています。

    一方のOpus 5.5は、より複雑で慎重な判断が必要な仕事向けです。

    大規模なコードベースでの長時間作業、デバッグ、リファクタリング、コードレビューなどで、変更前に原因を探し、作業しながら自己確認することを強みとしています。

    つまり、最初から役割が少し違います。

    今回の実験でも、その違いはかなりはっきり出ました。


    今回も、まったく同じアプリ・同じ条件で比較した

    今回も前回と同じ、問い合わせ管理アプリ「Inquiry Flow」を作らせています。

    機能は、

    • 問い合わせ一覧

    • 登録

    • 編集

    • 削除

    • 検索

    • 絞り込み

    • ソート

    • ダッシュボード

    • 変更履歴

    • 入力チェック

    • エラー処理

    • 更新競合への対応

    など。

    単純なTodoアプリよりは少し実務寄りです。

    そして、モデル以外の条件はできるだけ揃えました。

    • 同じ仕様書

    • 同じ15のルール

    • 同じハーネス

    • 同じ8つのスキル

    • 同じ開始プロンプト

    • 同じ完了条件

    を渡しています。

    AIには単に、

    「このアプリを作って」

    とは頼んでいません。

    仕様を確認して、環境を調査して、計画して、実装して、テストして、自分でレビューし、問題があれば直して、最後に結果を記録するところまで仕事として渡しています。


    Opus 5.5は時間を使ってかなり深く確認した

    まず前回のClaude Opus 5.5です。

    完成まで約27分。

    人間への質問は0回。

    人間からの技術介入も0回でした。

    そして特徴的だったのが、テストと確認の量です。

    Opus 5.5は、

    • Unit Test 57件

    • API Test 33件

    • UI Test 13件

    合計103件のテストを作りました。

    さらにブラウザでも22項目を確認しています。

    新規環境へGit管理ファイルだけをコピーして、本当に最初からセットアップできるかまで検証しました。

    そして、その確認中に新しい問題まで見つけています。

    さらに自己レビューでは、SQLiteとPrismaの部分一致検索で`%`や`_`がワイルドカードとして扱われる問題まで自分で見つけて修正しました。

    こちらから、

    「そこまで確認してください」

    とは指示していません。

    かなり慎重です。


    Sonnet 5.5は、約11分で53テストまで進めた

    ではSonnet 5.5はどうだったか。

    結果はかなり面白いものでした。

    Phase Aの初期実装は、

    約11分。

    ほぼGPT-6.1 Solと同じ速度です。

    その間に、

    • 一覧

    • 登録

    • 編集

    • 削除

    • 検索

    • 絞り込み

    • ソート

    • 変更履歴

    • ダッシュボード

    • Zodによる入力検証

    • 更新競合

    • エラー処理

    • Seed

    まで完成しました。

    さらに、

    • npm install

    • Migration

    • Seed

    • lint

    • 53テスト

    • build

    • 本番ビルドでのAPI確認

    まで完了しています。

    そしてこちらも、

    人間への質問0回。
    人間からの技術介入0回。

    でした。


    速いだけではなく、テストの中身まで見直していた

    画像

    Sonnet 5.5で印象的だったのが、自己レビューです。

    一度テストが通ったあと、

    「DB障害時は503になる」

    という名前のテストを自分で見直しました。

    すると、そのテストが実際には汎用Errorによる500しか確認しておらず、テスト名と検証内容が一致していないことに気づきました。

    そこで、

    • PrismaClientInitializationError → 503

    • 汎用Error → 500

    としてテストを分離し直しています。

    つまり、

    テストがPASSしたから終わり

    ではありません。

    そのテスト、本当に確認したいものを確認している?

    というところまで見直しています。

    ここはClaudeらしさを感じました。


    Sonnet 5.5は、安定して完走することを優先したように見えた

    画像

    もう一つ面白かったのが、ライブラリの選び方です。

    Sonnet 5.5は、

    • Next.js 15

    • Prisma 6

    • MUI 7

    • Zod 4

    • Vitest 3

    • ESLint 9

    を選択しています。

    最新版を無条件に選ぶのではなく、挙動を把握している安定版を意図的に使っています。

    これは実務ではかなり合理的です。

    新しいバージョンほど良いとは限りません。

    特にAIエージェントに仕事を任せる場合、ライブラリの最新仕様に振り回されて試行錯誤が増えるより、安定した構成で短時間に完走した方が良いケースは多いです。

    今回Sonnetが約11分で終えられた理由の一つは、こうした判断にもありそうです。


    OpusとSonnetを並べると、役割の違いがかなり分かりやすい

    今回の結果を並べると、こうなります。

    画像

    かなり分かりやすいです。

    Opus 5.5は、

    時間を使って、確認範囲をどんどん広げる。

    Sonnet 5.5は、

    必要な品質を確保しながら、速く前へ進む。

    という違いが見えました。


    Anthropic公式の位置づけとも、今回の結果はかなり一致していた

    ここが今回の比較で興味深いところです。

    AnthropicはSonnet 5.5について、

    well-scoped everyday tasks

    つまり、範囲の明確な日常的な仕事を得意とすると説明しています。

    コーディング用途でも、

    • 機能開発

    • バグ修正

    • コードレビュー

    • コードベースを素早く理解する

    • 変更範囲を絞る

    といった用途を挙げています。

    一方、Opus 5.5は、

    • 複雑な仕事

    • 慎重な判断

    • 長時間のagentic coding

    • 大規模コードベース

    • root causeの特定

    • 継続的な自己確認

    に向いています。

    今回の実験結果は、この役割分担とかなりきれいに重なりました。


    私は「考えるOpus、作るSonnet」で使っている

    画像

    実際、私は普段のClaude Codeで、この2モデルを同じようには使っていません。

    大きく分けると、

    Opusで考える。
    Sonnetで作る。

    という使い方をしています。

    要件定義・分析はOpus

    要件定義では、

    • 本当に必要なものは何か

    • 要件同士に矛盾がないか

    • 抜けている非機能要件はないか

    • 将来変更で問題になりそうな部分はどこか

    • 複数の選択肢のどれを採用するか

    など、コードを書く前の判断が重要です。

    ここはOpus 5.5を使います。

    間違った要件を決めてしまえば、その後Sonnetがどれだけ速くコードを書いても全部やり直しになるからです。


    アーキテクチャやDB、API設計もOpusに任せる

    画像

    設計も同じです。

    私は、

    • アーキテクチャ

    • DB設計

    • API設計

    • データ構造

    • 境界の設計

    • 例外処理

    • 更新競合

    • Migration方針

    などはOpus側でしっかり考えさせます。

    ここでは「速くコードを書くこと」より、

    あとで困らない判断をすること

    の方が重要です。

    Opusは今回の実験でも、時間を使ってかなり慎重に確認しました。

    この性格は、上流工程ではむしろメリットです。


    テストも「考える仕事」と「作る仕事」に分ける

    画像

    私はテストについても、OpusとSonnetを分けて使います。

    テストで一番難しいのは、テストコードを書くことではありません。

    難しいのは、

    • 何を壊しにいくのか

    • どこが境界値なのか

    • どんな異常系があり得るか

    • 状態遷移のどこが危ないか

    • どの組み合わせが漏れやすいか

    • どんなテストデータが必要か

    • 失敗した場合に何を保証すべきか

    を考えることです。

    これはOpus向きです。

    なので、

    テスト設計・テストデータ設計 → Opus 5.5

    で考えます。

    その設計をもとに、

    • Vitestを書く

    • Playwrightを書く

    • テストを実行する

    • 失敗を修正する

    • 回帰テストを回す

    という処理はSonnet 5.5へ渡します。

    ここは「考える」より「大量に作って回す」要素が強いからです。


    設計が固まったら、実装はSonnetに任せる

    画像

    要件や設計が固まった状態なら、

    • API実装

    • CRUD

    • UI実装

    • Unit Test

    • バグ修正

    • lint修正

    • buildエラー対応

    • 通常のリファクタリング

    はSonnetに任せることが多いです。

    今回の実験でもSonnetは約11分で53テストまで作って完走しました。

    つまり、

    設計済みの仕事を高速に実行する

    という使い方は、かなり相性が良いと感じています。


    Sonnetで粘りすぎず、難しくなったらOpusへ戻す

    画像

    ただし、すべてSonnetで押し切るわけではありません。

    私はSonnetで作業していて、

    • 同じエラー修正を何度も繰り返す

    • 原因説明ができない

    • 仕様と実装に矛盾が出てきた

    • DB変更の影響範囲が大きい

    • セキュリティに関わる

    • 大規模な設計変更が必要

    • 複数ドメインをまたぐ

    • 既存テストは通るのに、挙動に違和感がある

    といった状況になったら、Opusに戻します。

    安いモデルで延々と試行錯誤するより、判断が難しいところだけOpusに戻した方が全体として安くなることがあります。

    これは、AIモデルのコストを見るうえでも重要です。


    Claude Codeなら「Opus → Sonnet → Opus」が効率的

    画像

    今の私の使い方をかなり単純化すると、こうなります。

    要件整理
    分析
    要件定義
    設計
    テスト設計
    テストデータ設計
            ↓
        Claude Opus 5.5
            ↓
    設計書・仕様書を確定
            ↓
        Claude Sonnet 5.5
            ↓
    コード実装
    Unit Test作成
    テスト実行
    バグ修正
    lint / build
            ↓
    必要に応じて
        Claude Opus 5.5
            ↓
    重要な最終レビュー
    高リスク部分の確認

    つまり、

    Opus → Sonnet → Opus

    です。

    ずっとOpusでもありません。

    ずっとSonnetでもありません。

    判断コストが高い工程はOpus。
    実行量が多い工程はSonnet。

    という分け方です。

    現時点のAnthropicラインナップでは、かなり合理的な使い方だと感じています。


    Opusを常に使えばいい、ではない

    上位モデルを見ると、

    「一番性能が高いなら、全部Opusでいいのでは?」

    と思うかもしれません。

    でも実務では、必ずしもそうではありません。

    設計済みのCRUDを作るだけの仕事に、毎回Opusの慎重さが必要とは限りません。

    逆に、要件定義で重要な判断を1つ間違えて、数時間分の実装をやり直すくらいなら、最初からOpusでしっかり考えた方が安い。

    なので、

    一番高性能なモデルを使うこと

    ではなく、

    高性能なモデルを使うべき工程を選ぶこと

    の方が重要だと思っています。


    4モデルを並べると、それぞれの役割がさらに見えてきた

    前回の記事では、

    • GPT-6.1 Sol

    • Claude Opus 5.5

    • Gemini 3.8 Flash

    を比較しました。

    そこへ今回のSonnet 5.5を加えると、4モデルの違いがさらに分かりやすくなりました。

    画像

    これは、モデルの「性能ランキング」というより、

    どういう仕事に向いているか

    の違いとして見た方が分かりやすいです。


    4モデルを見ると、「最強モデル1つ」より役割分担の方が現実的

    今のAI駆動開発では、

    「どのモデルが一番強い?」

    という質問自体が、少しずつ意味を失ってきているように感じます。

    私なら、今回の結果からはこう使い分けます。

    画像

    もちろん、これは今回の実験と私の実務での使い方をもとにした整理です。

    万能の正解ではありません。

    でも少なくとも、

    「Opusが一番上位だから全部Opus」

    という使い方より、

    工程ごとにモデルを切り替える

    方が、速度・品質・コストのバランスは取りやすいと思っています。


    さらにHaikuを入れると、3層構成もできる

    画像

    AnthropicにはHaikuという、さらに軽量なモデルもあります。

    そう考えると、Anthropicだけでも、

    Opus=考える

    Sonnet=作る

    Haiku=大量に回す

    という3層構成がかなり自然です。

    たとえば、

    Opusが設計を作り、

    Sonnetが実装し、

    Haikuが大量の分類、定型テスト、ログ確認などを処理する。

    こうなると、AIを1モデルとして考えるより、

    複数のAI社員に役割を割り当てる

    ような感覚に近づいていきます。


    まとめ:上位モデルを常に使うより、工程ごとにモデルを変える

    画像

    今回、Opus 5.5とSonnet 5.5に同じ仕事を任せてみて、かなり役割の違いが見えました。

    Opusは慎重です。

    時間を使って、深く考えて、確認する。

    Sonnetは速いです。

    必要な品質を確保しつつ、どんどん前へ進む。

    どちらが上か、という話ではないと思っています。

    私が今のClaude Codeで一番しっくりきているのは、

    考える仕事はOpus。
    作る仕事はSonnet。

    です。

    要件を整理する。

    分析する。

    設計する。

    複雑なテストを考える。

    ここはOpus。

    その設計をもとに、

    コードを書く。

    Unit Testを書く。

    テストを回す。

    バグを直す。

    ここはSonnet。

    そして重要なところだけ、最後にもう一度Opusで見る。

    Opus → Sonnet → Opus。

    今のAnthropicでAI駆動開発をするなら、かなり効率のいい流れだと感じています。

    そして今回の4モデル比較を見ても、同じことを感じます。

    もう、

    「最強のAIを1つ選んで全部やらせる」

    より、

    「仕事ごとに、一番向いているAIへ割り当てる」

    方が自然です。

    モデルが増えるほど、AIを選ぶ能力そのものが、開発する側の新しいスキルになっていくのかもしれません。

    画像


     
     
    福岡拠点のAIソロプレナーです。社員はAIのみで開発・経営・マーケティング日々回す!AIを使ったシステムのAI駆動開発や経営などの実践内容を発信。システム開発|クラウドビット(https://cloud-bit.jp)代表|福岡。狼アイコンは動物占いが狼だから。コーヒー大好き

    あなたへのおすすめ