Skip to content

Commit d736525

Browse files
berlysiaclaude
andcommitted
feat(claude): add model-offloading rule (plan big, execute small)
intent: 高位モデル (Opus 以上) のセッションでトークン重量級の機械的作業を 下位モデル subagent へ積極オフロードし、コストとレイテンシを下げる行動指針を 全プロジェクト共通ルールとして持つ decision: 適用条件を Fable 限定ではなく「Opus 以上」の tier 相対原則にする。 利得はモデル種別ではなく料金差 × 読みの排除で決まるため decision: 核となる規律は「生データを高位モデルのコンテキストに通さない」。 subagent はメインループのモデルを継承するため model 明示指定を必須とする rejected: Fable 専用ルール — 初稿はそうしたが、Opus セッションでも同じ経済性が 成立するため一般化した constraint: rules は全セッションに無条件ロードされるため、モデル条件の ゲートはルール本文側に持たせる learned: claude-cookbooks の CMA_plan_big_execute_small が根拠。同一検証水準で 約 2.5x 安く 3x 速、委譲の固定床コスト・brief 粒度の最適点・問い分解の 前提未検証という失敗事例もガードレールとして取り込んだ Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NNnumniKmJ38xgN8zwByGj
1 parent 898fa8d commit d736525

2 files changed

Lines changed: 46 additions & 0 deletions

File tree

home/dot_claude/CLAUDE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ Design decisions (API/architecture/data model changes) or 3+ step tasks **requir
2828
- `@~/.claude/rules/external-review.md` — Logic validation, external review, claude-code-guide usage
2929
- `@~/.claude/rules/context-md.md` — Per-project CONTEXT.md mechanism (`.tmp/docs/CONTEXT.md` 位置規約、@path lazy 解決、degraded mode)
3030
- `@~/.claude/rules/autonomous-lane.md` — Autonomous push lane charter(CI/cron 専用、C1 型ホワイトリスト / C2 出力=PR / C3 設計面非接触)
31+
- `@~/.claude/rules/model-offloading.md` — plan big, execute small: Opus 以上のセッションで下位モデル subagent へオフロードする指針
3132

3233
## Per-Project Context
3334

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Model Offloading Rules (plan big, execute small)
2+
3+
参考: [claude-cookbooks: Coordinator pattern — big models for planning, small models for execution](https://github.com/anthropics/claude-cookbooks/blob/main/managed_agents/CMA_plan_big_execute_small.ipynb)
4+
5+
## 原則
6+
7+
エージェント作業の大半は「少量の計画・判断」と「大量の機械的な読み・実行」に分解できる。高位モデル(メインループ)は計画・判断・統合に専念し、**トークン量の多い生データ(大量のファイル・ログ・web ページ・テスト出力)を自分のコンテキストに直接通さない**。下位モデルの並列 subagent に読ませ、蒸留した結果だけを受け取る。コスト削減の本質はモデル単価の差 × 読みの排除であり、cookbook の計測では同一の検証水準で約 2.5x 安く 3x 速い(入力トークンの 84-98% がワーカー料金)。
8+
9+
## 適用条件
10+
11+
メインループが **Opus 以上**(Opus / Fable / Mythos-class)のセッションで適用する。判定はシステムプロンプトの model 表記による。subagent はデフォルトでメインループのモデルを継承するため、**model 指定を省略すると全 subagent が高位モデルで走る**。オフロード時は明示指定する。
12+
13+
## オフロード先の選択
14+
15+
Agent tool の `model` パラメータ / Workflow `agent()``opts.model` で、原則 1 tier 以上下を指定する:
16+
17+
| メインループ | 探索・定型実装・ドキュメント | 軽量スイープ・列挙 | 高難度の委譲(深いデバッグ・レビュー fan-out) |
18+
| ------------ | ---------------------------- | ------------------ | ---------------------------------------------- |
19+
| Fable | sonnet | haiku | opus |
20+
| Opus | sonnet | haiku | メインループで直接 |
21+
| Sonnet | (対象外、必要なら haiku) | haiku | メインループで直接 |
22+
23+
迷ったら sonnet。sonnet の結果が明らかに力不足だった場合のみ 1 tier 上げ直す(最初から高位モデルに逃げない)。
24+
25+
## メインループに残すもの — オフロード禁止
26+
27+
- 設計判断、Document Workflow 成果物(spec/plan)の作成・改訂の判断
28+
- ユーザー意図の解釈、intent alignment triage、最終レスポンスの統合
29+
- 会話コンテキスト全体を前提とする判断(subagent には会話履歴が渡らない)
30+
- **生素材そのものに高位モデルの判断が必要な作業**(微妙な文書解釈・設計の匂いの検知など)。安い reader は「何が重要か」の判断ごと要約で落とすリスクがある
31+
- subagent 結果の採否判断(結果を鵜呑みにせず整合確認してから採用する)
32+
33+
## オフロードが割に合わないケース
34+
35+
- **狭いタスク**: 読む量が少なければ裁定する差額がない。1-2 ファイルの確認はメインループで直接読む
36+
- **brief の割りすぎ**: 委譲には thread ごとの固定床コストがある。同じ作業をより細かい brief に割ると逆に高くなる。粒度には最適点があり、独立したサブ質問 1 つにつき worker 1 つが目安
37+
- **委譲したのに自分でも読む**: 委譲後にメインループが同じ探索をなぞるのは二重払い。委譲したら結果を待つ
38+
39+
## 運用ルール
40+
41+
- 3+ ファイルの読み込みが必要な調査は原則 subagent 化する(コンテキスト温存とコスト削減の両取り)
42+
- 独立サブタスクは単一メッセージで並列 subagent 起動する
43+
- **問い分解の前提も検証対象**: worker は渡された brief しか検証しない。分解の前提(対象リスト・仮定)が結果を左右するなら、前提確認にもう 1 委譲を使う
44+
- agent 定義(`~/.claude/agents/*.md`)の frontmatter に `model` がある場合はそれを尊重し、上書きは明確な理由がある場合のみ
45+
- Workflow 内では機械的ステージに `effort: 'low'` + 下位モデル、verify/judge ステージのみ上位モデル、とステージ単位で使い分ける

0 commit comments

Comments
 (0)