Claude Fable を監督者、Claude Sonnet を作業者として扱う
あまりの高性能っぷりに絶賛されたのち公開停止になってしまった Claude Fable。再び一般公開されて一週間だけサブスクリプションの枠で利用できることになりました。それ以降は従量課金となるので、この一週間いっぱい使おうと思っている人も多いでしょう。
Fable はかなり高性能ですが、コストが高すぎてすべての作業をFable で行っていたらあっという間に割り当てトークンを消費してしまいます。
そこでうまく Fable で行う作業、Sonnet で行う作業などうまく切り替えていく必要があります。 Fable はより複雑なタスク、Sonnet は局所的な問題を解決するタスクに向いています。なので監督者として Fable を使い、Sonnet が作業者となる構成が、コストを節約する構成として考えらます。
基本的に Fable のプロンプトに
編集はサブエージェントのSonnetに依頼して貴方は監督役となってください
という指示を与えることで Fable はサブエージェントを使いこなし、Fableは監督者、Sonnetが作業者という構成を構築できます。
ただ時々、サブエージェントに依頼しなくて、直接 Fable が作業を行いだしたりして、監督者と作業者の関係が崩れてしまうこともあります。
これを防ぐ方法としては、監督用エージェント、作業用エージェントをあらかじめ定義しておく方法があります。
エージェントの設定
Claude Code には独自のエージェントを設定する機能があります。
~/.claude/agents/ に markdown ファイルを配置することで特定のプロンプトを注入した独自エージェントを作成できます。独自エージェントはプロンプトのほかに利用できるツールなども制限できます。ファイル編集ツールである Edit toolを監督エージェントに与えなければ、監督エージェントはファイルを編集できず、強制的に作業用エージェントに委託しなければならない状況を作り出せます。
私は現在以下のようなエージェントを作成しています。
監督用エージェントの orchestrator と 実装用エージェントの implementer です。
~/.claude/agents/orchestrator.md
---
name: orchestrator
description: オーケストレーター。設計・判断・調整のみを行い、ファイル編集や実装はサブエージェントに委譲する。
model: fable
tools: Read, Glob, Grep, Bash, Agent
---
あなたはオーケストレーターです。読む・調べる・考える・指示する・レビューするのが役割で、**ファイル編集ツール(Edit/Write/MultiEdit)を持っていません**。
## 進め方
- 自分でファイルを読み、状態を確認し、何をすべきか判断・分解する。
- ファイルの作成/編集/実装は必ず `implementer` サブエージェント(Sonnet)にAgentツールで委譲する。指示は具体的に(対象ファイル・変更内容・期待結果)。
- 委譲先から返ってきた結果は必ずレビューし、要なら追加指示を出す。
- 用途に応じて組み込みエージェントも使い分ける:
- **Explore**: 広いコードベース調査・横断検索
- **Plan**: 実装方針・設計の検討
- **general-purpose**: 調査と変更の両方を含む自己完結タスク
- Bashは git/テスト/grep等の確認に使う。`sed -i` や `>` でのファイル編集はせず、編集は必ず implementer に委譲すること。
~/.claude/agents/implementer.md
---
name: implementer
description: ファイル編集・実装作業を担当する実行エージェント。コードや設定の作成・変更が必要なときに使う。
model: sonnet
tools: Read, Glob, Grep, Edit, Write, MultiEdit, Bash
---
あなたは実装担当です。オーケストレーターから渡された指示に従い、ファイルの作成・編集・実装を正確に行ってください。
- 指示された変更だけを行い、勝手に範囲を広げない。
- 必要に応じてファイルを読み、既存のスタイル・命名・規約に合わせる。
- 作業後は「何を・どのファイルに対して行ったか」を簡潔に報告する。失敗やブロックがあればそのまま伝える。
メインエージェントの設定
あとは claude code を起動したときに orchestrator がメインエージェントとなるように ~/.claude/settings.json を編集し、メインブロックに "agent": "orchestrator" を追加します。
~/.claude/settings.json
{
"agent": "orchestrator"
}
多分、 ~/.claude/settings.json はすでに何らかの設定が書かれていると思うので、それらの記載は残しておいてください。たとえば現在の私の設定は以下のようになっています。
~/.claude/settings.json
{
"attribution": {
"commit": "",
"pr": ""
},
"model": "claude-fable-5[1m]",
"enabledPlugins": {
"rust-analyzer-lsp@claude-plugins-official": true,
"pyright-lsp@claude-plugins-official": true
},
"agent": "orchestrator",
"tui": "fullscreen",
"preferredNotifChannel": "auto",
"agentPushNotifEnabled": true
}
まとめ
ということで、Fable を監督者エージェントとして定義して、実装役は Sonnet に任せる方法でした。プロンプトなどは例なので好みで編集してください。
