モデルポリシー
モデルポリシーは MoAI-ADK トークノミクスの骨格です。「すべての作業に最高モデル」 ではなく、エージェントごとに — 計画・監査のように推論が重い仕事と、ドキュメント化・Git のように 軽い仕事ごとに — 適切なモデルを宣言的に割り当てます。Claude Code サブスクリプションプランに 合わせて品質を最大化しながら、レート制限エラーを防ぎます。
MoAI-ADK v3.0 のエージェントカタログは 11 個 (MoAI カスタム 10 個 + Anthropic
内蔵 Explore) です。No-Haiku ポリシー の下で Haiku はどこにも現れません。
マルチターンのエージェンティック行はすべて Opus が担当し、Sonnet は単発・入力支配の
行に限定されます。ポリシーティアが制御するのは、各エージェントが Opus の effort
ラダー上のどこに位置するかであり、どのモデルクラスを受け取るかではありません。
| ポリシー (profile) | CLI フラグ | Opus セル | Sonnet セル | 適した用途 |
|---|---|---|---|---|
| high | --model-policy high | 11 中 9 | 11 中 2 | 最高品質。呼び出し頻度が最も低い 2 行に max effort |
| medium (デフォルト) | --model-policy medium | 11 中 9 | 11 中 2 | 品質とコストのバランス。コスト/スコア曲線の変曲点 |
| low | --model-policy low | 11 中 7 | 11 中 4 | 課題あたりコスト最小。エージェンティック行は Opus low に下がる |
名前の対応:
llm.yamlのprofileフィールド、legacy のperformance_tierエイリアス、CLI フラグ--model-policyはすべて同じくhigh/medium/lowの 3 値を使い、1:1 でマッピングされます (別途変換なし)。デフォルト値はmediumです。 旧最上位ティア名のmaxは既存設定が解決を続けられるよう依然としてhighの エイリアスとして 読み込まれ ますが、保存時は常にhighが書き込まれます — マイグレーション作業は不要です。performance_tierはprofileがない場合のみ 読み込まれます。ユーザー名などはuser.yamlに別途保管されます。
なぜ重要ですか? ポリシーを下げることは、もはや弱いモデルクラスへの切り替えを 意味しません。長期ホライズンのエージェンティック課題では、Opus の
loweffort は どの effort の Sonnet よりもスコアが高く かつ 課題あたりコストが安くなります。 請求額を決めるのはトークン単価ではなく、モデルが完了までに費やすステップ数だからです。 したがってlowポリシーは推論深度を下げて Opus の 内側 で節約し、Sonnet に 手を伸ばすのは、マルチステップの完了失敗が当てはまらない単発の行だけです。
以下の 33 セルがプロファイルマトリクス (11 エージェント × 3 プロファイル) です。各セルは
リゾルバが spawn 時点で注入する {model, effort} ペアです。(オーケストレーターの
メインセッションは spawn されるエージェントではないため、表には含まれません。)
| エージェント | high | medium | low |
|---|---|---|---|
| manager-spec | opus / high | opus / medium | opus / low |
| manager-develop | opus / max | opus / medium | opus / low |
| manager-docs | opus / medium | opus / low | sonnet / low |
| manager-git | sonnet / low | sonnet / low | sonnet / low |
| manager-design | opus / high | opus / medium | opus / low |
| エージェント | high | medium | low |
|---|---|---|---|
| plan-auditor | opus / high | opus / medium | opus / low |
| sync-auditor | opus / high | opus / medium | opus / low |
| super-advisor | opus / max | opus / high | opus / medium |
| builder-harness | opus / high | opus / medium | opus / low |
| e2e-tester | opus / medium | opus / low | sonnet / low |
| エージェント | high | medium | low |
|---|---|---|---|
| Explore | sonnet / low | sonnet / low | sonnet / low |
Exploreはディスク上にエージェントファイルが無いため frontmatter で effort を 固定できません — マトリクスは呼び出し時のデフォルトとしてsonnet / lowを記録し、 spawn プロンプトで指定します。Agent Teams 静的階層 (静的 role profile) は v3.0 で 廃止され、並列作業は sub-agent 並列実行と動的ワークフローが 代替します。moai cgの teammate ランタイム (tmux pane) はそのまま維持されます。
Haiku 除去 (v3.0): かつての Haiku スロット (ドキュメント、MX タグ付け、Git 手続き) は、低いモデルクラスではなく低い推論深度に置き換えられました — コストは モデルの差し替えではなく effort のティア分けで削減します。
- エージェンティック行はすべて Opus:
manager-spec,manager-develop,plan-auditor,sync-auditor,manager-design,builder-harness,manager-docs,e2e-tester— Opus のlowがどの effort の Sonnet よりも高スコアかつ課題あたり低コストであるため、マルチターン作業はすべて Opus に留まります - Sonnet は単発の行のみ:
manager-gitの機械的作業とExploreの検索は入力支配の 1 パスで完了するため、マルチステップの完了失敗が当てはまらず、Sonnet の低い入力単価が支配的要因になります。この 2 行は 3 つのプロファイル全体で固定されます maxは 2 セルに限定:manager-developとsuper-advisor、しかもhighプロファイルのみ — 呼び出し頻度が最も低く、1 つの判断が不均衡に大きな下流コストを持つ行ですxhighはどこにも使いません: Opus 上では 49% 高いコストでhighと同スコアですlowはモデルクラスではなく effort を下げます: エージェンティック行は Opuslowに移り、Sonnet にフォールバックするのはmanager-docsとe2e-testerだけです
計画を作ったエージェントが監査しないように、plan-auditor と sync-auditor は
manager-spec から独立した割り当てを維持します — バイアス防止はセルの値ではなく
カタログの構造的性質です。
v3.0 ではエージェント単位の割り当ての上に 作業ステップ (phase) と SPEC サイズ (Tier)
軸が加わりました。internal/config/model_routing.go が Tier×Phase →
{model, effort} マトリックスを宣言的に管理します:
- model: inherit / sonnet / opus / glm / fable
- effort (推論深度): low / medium / high / xhigh / max
- tier (SPEC サイズ): S / M / L
- phase (作業ステップ): plan / run / sync / mx
エージェント別の model+effort 割り当ては単一のプロファイルマトリクスが担当します。アクティブ
プロファイル(profile — high/medium/low)がマトリクスの 1 列を選択し、
profile がなければ legacy performance_tier がエイリアスとして読み込まれ、それもなければ
medium として解釈されます。詳細なエージェント別マッピングは
プロファイルマトリクス ページを参照してください。
moai init my-project
# 対話型ウィザードでモデルポリシー選択を含むmoai update
# 対話型プロンプト:
# - Reset model policy? (y/n) — モデルポリシー再設定
# - Update GLM settings? (y/n) — GLM 環境変数設定moai init my-project --model-policy high # 最高品質 (2 行に max effort)
moai init my-project --model-policy medium # バランス (デフォルト値)
moai init my-project --model-policy low # 課題あたりコスト最小--model-policy は high/medium/low の 3 値を受け付け、llm.yaml の
performance_tier フィールドに永続化されます。旧最上位ティア名の max も入力として
受け付けられ、high のエイリアスとして扱われます。
デフォルトポリシーは
mediumです (llm.yamlperformance_tier: "medium"、CLI--model-policy mediumに該当 — 値がなければmediumとして解釈)。GLM 設定はsettings.local.jsonに隔離され、Git にコミットされません。
- CG モード — Claude + GLM ハイブリッドでコスト削減
- エージェントガイド — エージェントのカスタマイズ
- CLI リファレンス — moai init、moai update 詳細