はじめに
普段は何も考えずにOpusでClaude Codeを回しているのですが、期間限定で使えるFable 5に切り替えたところ、トークンの消費が想像以上に激しかったです。
そこで、設計やレビューなど重要度が高い部分だけFableを使い、それ以外はOpusで回すようにしました。
ポイントは「スキルにモデル名を書かない」こと。
これだけでFableの期間が切れても切り替えが簡単になり保守性が向上します。
今回はその設定方法をまとめてみました。
考え方
今回は、サブエージェントを judge(レビュー・検証)/ builder(実装)/ worker(調査・抽出)の3役割 + メインセッション に分け、役割ごとにモデルを割り当てようと思います。
| 層 | 担当 | モデル |
|---|---|---|
メイン + judge
|
設計・計画・レビュー・検証(誤判断が事故になる部分) | Fable |
builder / worker
|
実装・調査・網羅抽出(物量がボトルネックの部分) | Opus |
トークンの大半は並列ファンアウトする調査系レーンと実装が消費するので、そこをOpusに寄せるだけでFableの消費は「考える・裁く」部分に集中します。
設定方法
1. .claude/agents/ に役割を定義する
役割ごとにmdファイルを1枚置くだけです。frontmatterの model: がモデルの大元になります。
<!-- .claude/agents/worker.md -->
---
name: worker
description: 調査・網羅抽出を担う実行役
model: opus
---
渡された指示に忠実に従い、事実には根拠(file:line)を付けて返す。
builder.md(実装役、model: opus)も同じ形で作ります。
今回はjudge.md だけは model: を書いていません。
指定なしのエージェントはメインセッションのモデルを継承するので、/model を切り替えるとjudgeも自動で追従するようにしてみました。
2. スキル側は役割名だけ書く
各観点を並列 dispatch(subagent_type: worker)
レビュアー3体を並列起動(subagent_type: judge)
実装エージェントを起動(subagent_type: builder)
スキルはモデル名を一切知らない状態になります。
3. モデルの切り替え
各mdの model: を変更するだけでモデル切り替わります。
また、メイン + judge は /model コマンドで切り替わります。
メリット
- 保守性: モデル名がスキルに散らばらないので、スキルを何本増やしてもモデル変更は1〜3箇所で済む
- 汎用性: 「判断レーンと物量レーンで1段差をつける」という相対ルールなので、fable+opus+sonnetでも次世代モデル+opus+sonnetでも同じ設計が使い回せる。
まとめ
今回はFableを効率よく運用するために設定してみましたが、モデルを役割で振り分ける仕組み自体は、今後AIを運用していく上で設定しておいて損はないと感じました。
AIを使ってガッツリマルチタスクをこなそうと思っている方や、Fableのトークン消費で悩んでいる方はぜひ試してみてください。
参考
株式会社シンシアでは、実務未経験のエンジニアの方や学生エンジニアインターンを採用し一緒に働いています。
※ シンシアにおける働き方の様子はこちら:
シンシアでは、年間100人程度の実務未経験の方が応募し技術面接を受けます。その経験を通し、実務未経験者の方にぜひ身につけて欲しい技術力(文法)をここでは紹介していきます。