使い倒し研究所
AIコーディング

Claude Codeのサブエージェントを6体作って役割を分けた|モデルより「ツール権限」で分けるのが正解だった

PR本記事にはプロモーション(アフィリエイト広告)が含まれます。

設計・実装・レビュー・実行・雑務・執筆で6体に分けています。分けてみて分かったのは、効いているのはモデルの使い分けよりも「何を触らせないか」の設定でした。実際の構成をそのまま公開します。

結論:効くのはモデルの使い分けより「ツール権限」

サブエージェントというと「重い作業は上位モデル、軽い作業は下位モデル」というコスト最適化の話になりがちです。

実際に6体を運用してみて、もっと効いたのは「そのエージェントに何を触らせないか」でした。

たとえばレビュー担当には、ファイルを書き換える権限を与えていません。 読むことしかできません。これだけで、レビューを頼んだのに勝手に直され始める、という事故が消えます。

実際の構成

~/.claude/agents/ に6体置いています。全部の設定を出します。

役割 モデル 使えるツール 何をさせるか
architect Fable Read, Glob, Grep, WebSearch, WebFetch 設計・技術選定・方針判断
builder Opus Read, Write, Edit, Glob, Grep, Bash 実装
writer Opus Read, Write, Glob, Grep, WebSearch, WebFetch 長文執筆
runner Sonnet Read, Edit, Write, Glob, Grep, Bash 定型作業・動作確認
reviewer Fable Read, Glob, Grep, WebFetch 公開前チェック
sorter Haiku Read, Glob, Grep, Write 要約・分類・整形

考える役(architect / reviewer)にはFable、作る役にはOpus、回す役にはSonnet、さばく役にはHaikuという割り当てです。

権限で分けた具体例

reviewer に Write と Edit を持たせない

これが一番効いた判断でした。

レビューを頼むと、指摘するだけでなくその場で直し始めることがあります。それ自体は親切なのですが、公開前の最終チェックでそれをやられると困ります。何を指摘されたのかが、修正の中に埋もれてしまうからです。

ツールから WriteEdit を外すと、指摘のリストを返すことしかできなくなります。 直すかどうかは人間が決める、という順序が固定されます。

architect にも書き込み権限を与えない

設計を相談したら、勝手に実装が始まっていた——を防ぎます。

Read と検索系、それに WebSearch / WebFetch だけを持たせています。調べて考えて、案を返すところまでが仕事です。

技術選定は、実装より前に人間が判断すべきことです。ここを分けておくと「気づいたら決まっていた」がなくなります。

sorter に Bash を持たせない

要約・分類・整形といった軽い仕事の担当です。ファイルの読み書きはしますが、コマンドは実行できません。

大量の単純作業を任せる相手ほど、できることを絞っておくほうが安全でした。

モデルの割り当てについて

こちらは権限ほど厳密ではありません。目安としてこう分けています。

実感として、モデルを変えて明確に体感が変わったのは「さばく仕事」でした。 大量の分類や要約は軽いモデルで十分で、上位モデルを使っても結果はほぼ同じです。ここを軽くすると、その分を実装や執筆に回せます。

逆に設計とレビューは、モデルを落とすと分かりやすく質が落ちます。 見落としが増えます。

つまずきやすい点

分けすぎると呼ぶのが面倒になる

最初はもっと細かく分けようとしました。「テスト専門」「ドキュメント専門」といった具合です。

結果、どれを呼べばいいか分からなくなりました。 呼び分けを考える時間のほうが、作業時間より長くなっては本末転倒です。

いまの6体は、自分の仕事の種類に対応しています。 設計する / 作る / 書く / 回す / 見る / さばく。これ以上細かくしても、自分の頭の中の分類と合いません。

説明文(description)を具体的に書く

エージェントを呼び分けるとき、判断材料になるのが description です。

「コードを書きます」では選べません。「HTML/CSSのサイト制作、Apps Script修正、複雑な機能実装」のように、実際に自分が頼む作業名を書くほうが機能します。

自分の仕事に出てくる固有名詞を入れておくのがコツでした。

権限を絞りすぎると仕事が止まる

reviewer から書き込み権限を外したのは正解でしたが、runner から Bash を外したときは失敗しました。

定型作業の実行担当なのに、コマンドが打てないと何もできません。「何をさせたいか」から必要な権限を決める必要があります。安全側に倒しすぎると、ただ使えないエージェントができあがります。

よくある質問

サブエージェントは何体くらいに分けるべきですか?

自分の仕事の種類に合わせるのが目安です。細かく分けすぎると、どれを呼べばいいか判断する時間のほうが長くなります。設計・実装・執筆・定型作業・レビュー・雑務といった単位で6体程度が扱いやすい規模でした。

レビュー用のエージェントに書き込み権限を与えないのはなぜですか?

指摘と修正が混ざるのを防ぐためです。書き込み権限があると、レビューを頼んだのにその場で修正が始まり、何を指摘されたのかが分からなくなります。読み取り専用にすると、指摘のリストを返すことしかできなくなり、修正するかどうかを人間が判断できます。

モデルの使い分けはどれくらい効果がありますか?

要約や分類といった軽い作業では、上位モデルを使っても結果はほとんど変わりませんでした。逆に設計やレビューでモデルを落とすと、見落としが増えて質が下がります。軽い作業を軽いモデルに回すことで、重い作業にリソースを配分できます。

まとめ

サブエージェントを分ける目的は、コストの最適化だけではありませんでした。

権限設計は、人に仕事を任せるときの考え方と同じでした。「できること」より「あえてできなくすること」を決めるほうが、結果的にうまく回ります。

関連:Claude CodeとCodex CLIの使い分けClaude Codeで学習アプリを作った全記録

この記事を書いた人
カズト(ETERNAL d.c.t)

ETERNAL d.c.t 代表。Web制作・生成AI導入支援・ライバー事務所運営を手がける。Claude Code / Codex CLI / n8n / Google Apps Script を実務で毎日使い、自社サイト・学習アプリ・業務自動化を内製している。このサイトでは、実際に自分が金を払って使ったツールだけを扱う。