M.

(更新:)

Claude Code でタスクの難しさによってモデルを使い分ける(Haiku / Sonnet / Opus の判断基準)

Claude Code では、Haiku・Sonnet・Opus のどのモデルで作業するかを選べます。

わたしは、どのモデルを使うべきかの判断基準をグローバルの CLAUDE.md(ホーム直下の ~/CLAUDE.md)に書いています。最近その基準を、以前よりかなり Opus 寄り に変えました。その中身と理由をまとめます。

判断表

CLAUDE.md に書いている表は次のとおりです。

タスク推奨
質問・説明・typo・単純読取・雑談Haiku
実装・デバッグ・レビュー・調査で、定型的・単一ファイル・パターンが明白なものSonnet
実装・デバッグ・レビュー・調査が複雑(多ファイル・原因不明・設計判断を伴う)、または設計・リファクタ・ML パイプライン・難解バグOpus + thinking

ポイントは、タスクの種類ではなく、複雑さで分けている ところです。同じ「実装」でも、1ファイルで直し方が明らかなら Sonnet、複数ファイルにまたがったり設計の判断が入ったりするなら Opus です。

Opus 寄りに変えた理由

以前は「Opus は重いので、本当に難しいときだけ」という使い方でした。変えたきっかけは2つです。

  • Opus が速くなった:新しいモデルになって応答が速くなり、待ち時間がそれほど気にならなくなりました
  • Opus 5.5 でトークン消費が減った:同じ作業でも使うトークンが減ったので、利用上限を気にして Sonnet に落とす理由が薄れました

速さと消費の両方で「Opus を避ける理由」が減ったので、迷ったら品質を優先して Opus にする方針にしました。CLAUDE.md の冒頭にも、こう書いています。

同じタスク種別でも複雑さで判断し、Sonnetで足りるかOpusが向くか見極める。重心は以前よりOpus寄り。

Claude に「モデル違うよ」と言わせるルール

判断表を書いておくだけでなく、Claude 自身にもモデルの選び方をチェックさせています。

ユーザー指定モデルと表の推奨が2段階以上ズレる時のみ作業開始前に一言提案(確認待ちはせず続行)。差が1段階以内・モデル指定済みなら黙る。

たとえば、Haiku のまま複雑なリファクタを頼んだら「これは Opus 向きです」と一言だけ言ってもらいます。ただし、

  • 2段階以上ズレたときだけ 言う(Haiku と Opus の組み合わせ)
  • 言ったあとも 確認を待たずに作業を続ける

という条件を付けています。1段階のズレまで毎回指摘されるとうるさいですし、確認待ちで止まられると任せた意味がなくなるからです。

サブエージェントは Claude Code に任せる

以前は環境変数 CLAUDE_CODE_SUBAGENT_MODEL で、サブエージェント(調査やレビューを別に走らせる Explore・Plan など)のモデルを固定していました。

今はこの固定をやめて、Claude Code 本体がタスクに応じて選ぶのに任せています。

サブエージェント(Explore/Plan/code-reviewer等)のモデルはClaude Code本体のデフォルト判断に委ねる(CLAUDE_CODE_SUBAGENT_MODEL固定は廃止、タスクに応じた自動選択)。

まとめ

  • モデルは タスクの種類ではなく複雑さ で選ぶ。判断表を CLAUDE.md に書いておく
  • Opus 5.5 が速くなりトークン消費も減ったので、迷ったら Opus にした
  • 指定したモデルが大きくズレているときだけ、Claude に一言言わせる。確認待ちはさせない

モデルの性能や消費量は新しいモデルが出るたびに変わるので、この表もそのたびに見直すつもりです。

この記事をシェア

関連する記事

CBT 初年度の IT ストラテジスト試験、午前は Claude と作った 425 問の過去問ドリルで突破した

令和8年度から CBT 方式になった IT ストラテジスト試験(ST)を、申込開始の深夜に受けると決め、科目A(旧午前)まで10日ほどで対策しました。IPA の過去問 PDF から Claude に解説付きの4択ドリルを作ってもらった流れと、つまずいた点、解いて分かった出題傾向をまとめます。

  • IT ストラテジスト
  • 資格試験
  • Claude

Claude Code に .env を読ませない deny 設定と、その限界

Claude Code に任せて作業するにあたり、.env や credentials を読ませないよう settings.json の permissions.deny を設定しています。実際の設定と、Bash コマンドのパターン指定ではすり抜けが防ぎきれない理由、ほかに重ねている対策をまとめます。

テーマから探す