Claude のモデルを役割で使い分ける
Claude のモデルを役割で使い分けるとは、判断は Opus、重要な検証は Fable、通常の作業は Sonnet というように、仕事の重さに合わせて担当するモデルを変えることです。
Claude Code でこの分担を作るために、どのファイルに、何を、どう書けばよいかを順番に説明します。
全体像
特別なプログラムは使っていません。設定ファイル1つ、担当者を定義したファイル数個、指示書1つを書くだけです。
.claude という名前の隠しフォルダです。Claude Code の設定はすべてここに置きます。ここに置いた設定は、どのプロジェクトで作業するときにも有効になります。
役割分担の考え方
すべてを最上位モデルで処理すると、費用と時間がかかります。すべてを軽いモデルで処理すると、重要な判断で誤りが出やすくなります。そこで役割を分けています。
claude -p のような無人実行では同意画面が出ず、そのまま課金されます。また、Claude Code のバージョン 2.1.257 以降が必要です。Fable を使えない環境では、検証役の model: fable を model: opus に置き換えてください。
ファイル 1 / 3
Claude Code 全体の設定ファイルです。"model" の行に、本体として使うモデルを書きます。
{
"model": "opus[1m]"
}
opus は「最新の Opus を使う」という意味です。後ろの [1m] は、一度に読み込める文章量(コンテキスト)が 100 万トークンの版を使う指定です。現在の Opus は、Anthropic に直接接続する通常の使い方ではもともと 100 万トークンに対応しているため、"opus" だけでも同じ動きになります(Amazon Bedrock などを経由する場合は、opus が古い版を指すことがあります)。
{ } の中に "model": "opus[1m]", の1行を追加します。項目と項目の間にはカンマ(,)が必要です。カンマの過不足があると、設定全体が読み込まれません。
ファイルを手で書き換えなくても設定できます。ターミナル版で /model コマンドを入力し、Opus を選んで Return キーを押すと、同じ settings.json の "model" に自動で保存されます(Return キーではなく s キーで選ぶと、保存されずにそのセッション限りの切り替えになります)。カンマの書き間違いを避けられるので、初めての人にはこちらがおすすめです。
ファイル 2 / 3
本体の Opus が仕事を任せる相手を「サブエージェント」と呼びます。1人につき1つの Markdown ファイル(.md)を、~/.claude/agents/ フォルダに作ります。
--- name: counter-reviewer description: "重要な設計・判断・実装差分の独立検証。誤りの影響が大きい部分や難しい前提の反証に使う。" tools: Read, Grep, Glob, Bash model: fable --- 対象の目的、要求、制約を踏まえて独立に検討し、結論を左右する誤り・欠落・代替案を調べてください。依頼者の結論は仮説として扱い、一次情報で確認してください。 指摘には根拠、具体的な影響、修正案を添えてください。問題が見つからなければその旨と確認範囲を示してください。 読み取り専用です。ファイルや設定を変更しないでください。Bash は ls・grep・git status などの確認だけに使い、ファイルの作成・変更・削除、リダイレクト(>)による書き込み、インストール、外部への送信は実行しないでください。
上の --- で囲まれた部分が「設定欄」、その下が「担当者への指示文」です。
: は使えません)。Claude Code はファイル名ではなく、この name の値で担当者を区別します。fable・opus・sonnet・haiku のように書きます。モデルの使い分けは、この1行で決まります。| 名前(name) | モデル | 担当 | Write・Edit |
|---|---|---|---|
| counter-reviewer | Fable | 重要な設計・判断・変更内容を、別の視点から検証する | なし |
| test-author | Fable | 実装の前に、合格・不合格を判定するテストを作る | あり |
| spec-implementer | Sonnet | やることが明確な実装・修正と、そのテスト | あり |
| verifier | Sonnet | 主張や数値が正しいかを、元の資料と照らし合わせる | なし |
| deep-reader | Sonnet | 長い資料や複数のファイルを読んで要点を整理する | なし |
| Explore | Haiku | ファイルがどこにあるかを探す | なし |
「Explore」は Claude Code に最初から入っている担当者と同じ名前です。同じ名前の担当者を定義すると、自分の定義(ここではモデルを Haiku に指定)が使われます。
表の「なし」の担当者のうち、verifier と Explore は Bash を持っています(deep-reader は持っていません)。Bash を持つ担当者がファイルを書き換えないのは、指示文で禁止しているためで、仕組みとして防いでいるわけではありません。
ファイル 3 / 3
担当者を用意しただけでは、本体がいつ誰を呼ぶかは決まりません。判断の基準を、普通の日本語で CLAUDE.md に書いておきます。
CLAUDE.md は、Claude Code が作業を始めるたびに自動で読み込む指示書です。~/.claude/CLAUDE.md に置くと、すべてのプロジェクトで有効になります。
## モデルの役割分担
- 本体の Opus が設計・統合・最終判断を担当してください。
- 重要な判断や誤りの影響が大きい部分は、Fable に独立した
検討・検証を任せてください。
- 通常の調査・整理と、仕様が明確で結果を確かめる手段がある
実装や文書作成は Sonnet に任せてください。
- 小さな作業や本体で十分に把握済みの作業は、本体で済ませて
ください。
- 各エージェントの既定のモデルは ~/.claude/agents/ の
定義ファイルにあり、counter-reviewer は Fable です。
- 次に該当する場合は、作業の小ささや費用を理由に省かず、
Fable(counter-reviewer)へ独立検証を任せてください。
① ~/.claude 配下の設定ファイルの変更
② データの削除・移動、公開・送信・費用発生を含む計画
③ 外部へ出す文書、判断の根拠になる事実の主張
④ 正しさの確認を求められた事項
⑤ 支払い・認証・個人情報・削除・外部送信に関わるコードの変更
- ただし、ツールで直接測れば確かめられる事実は、測って済ませて
ください。
「重要なものは Fable」だけでは、何が重要かを本体が毎回推測することになります。「誤りの影響が大きいもの」のように、判断できる基準を書きます。
本体は「小さい作業だから省略しよう」と判断しがちです。省略してはいけない場面を箇条書きで具体的に示すと、検証が抜けにくくなります。
委任には、指示を書く手間と結果を確認する手間がかかります。「小さな作業は本体で済ませる」「測れば分かることは測る」という例外も書いておきます。
担当者の定義ファイルにある name の値(counter-reviewer など)をそのまま書くと、本体がどの担当者を呼べばよいかを迷いません。
動き方
使う人が担当者を指名する必要はありません。普段どおりに依頼するだけで、本体が振り分けます。
いつもどおり Claude Code に頼みます。最初に受け取るのは本体の Opus です。
CLAUDE.md の基準に照らして、自分でやるか、誰に任せるかを決めます。
agents フォルダの定義どおりのモデルで、担当者が作業や検証を行います。
返ってきた結果を本体が確認し、採否を決めて報告します。
Fable に必ず回す場面
次の場面では、作業が小さくても Fable の検証を通すように指示しています。いずれも、誤りに気付かないまま進むと取り返しにくいものです。
始め方
まずは本体と検証役の2つだけで始めて、慣れてから担当者を増やすのがおすすめです。
Mac の「ターミナル」アプリを開き、次のコマンドを貼り付けて Return キーを押します。すでにフォルダがある場合も、何も消えません。
mkdir -p ~/.claude/agents
次のコマンドで、Fable を使う検証役 counter-reviewer.md を作ります。同じ名前のファイルがすでにある場合は上書きされます。先に次のコマンドで、フォルダの中身を確認してください。「No such file or directory」と出るか、一覧に counter-reviewer.md がなければ、そのまま進めて大丈夫です。
ls ~/.claude/agents/
確認できたら、次のコマンドを実行します。
cat > ~/.claude/agents/counter-reviewer.md <<'EOF' --- name: counter-reviewer description: "重要な設計・判断・実装差分の独立検証。誤りの影響が大きい部分や難しい前提の反証に使う。" tools: Read, Grep, Glob, Bash model: fable --- 対象の目的、要求、制約を踏まえて独立に検討し、結論を左右する誤り・欠落・代替案を調べてください。依頼者の結論は仮説として扱い、一次情報で確認してください。 指摘には根拠、具体的な影響、修正案を添えてください。問題が見つからなければその旨と確認範囲を示してください。 読み取り専用です。ファイルや設定を変更しないでください。Bash は ls・grep・git status などの確認だけに使い、ファイルの作成・変更・削除、リダイレクト(>)による書き込み、インストール、外部への送信は実行しないでください。 EOF
Sonnet の作業役を足すときは、同じ形で name・description・model: sonnet・指示文を変えたファイルを作ります。
テキストエディタで ~/.claude/CLAUDE.md を開き(なければ新しく作り)、前の章の例を貼り付けて、自分の使い方に合わせて書き換えます。Finder で隠しフォルダを表示するには、Command + Shift + .(ピリオド)を押します。
settings.json の章のとおり、"model" の行を追加します。または、Claude Code の画面でモデルに Opus を選びます。
settings.json と CLAUDE.md は起動時に読み込まれ、agents フォルダを初めて作ったときも再起動が必要なため、Claude Code の新しいセッション(会話)を始めます。次のように頼むと、検証役が呼ばれるかを確かめられます。
この計画が正しいか、counter-reviewer に検証してもらってください。
担当者が呼ばれると、画面に counter-reviewer(…) のような呼び出しの行が表示されます。これが出れば設定は有効です。なお、現在の Claude Code では /agents コマンドは一覧を表示せず、agents フォルダを直接編集するよう案内が出るだけです。
用語
"項目": 値 を { } で囲み、カンマで区切って並べる書式です。