背景
以下の投稿で紹介されている、上位モデルをメインの実行者ではなくオーケストレータとして使い、サブタスクごとに 実行モデル・reasoning effort・役割 を明示して委譲する考え方を、PlanGate のサブエージェント運用へ適用できるか検討する。
投稿の本質は、単にサブエージェントを並列起動することではない。
- 上位モデルは計画、分解、ルーティング、昇格判断へ集中させる
- 定型処理・大量処理は軽量モデルへ委譲する
- 高リスク判断・難しい実装・最終検証のみ上位モデルへ昇格する
- 委譲時にモデルと effort を暗黙継承させず、選定理由とともに明示する
- 実行者と検証者を必要に応じて分離する
既存実装との重複確認
PlanGate には、すでに以下が存在する。
docs/ai/subagent-delegation/
- 会話履歴を持たないサブエージェントへの自己完結した派遣プロンプト
- 必須8要素
OUTCOME 契約
- P0/P1/P2 の要判断事項
- 行動規範
plugin/plangate/skills/subagent-dispatch
- high-risk / critical での依存グラフ生成、並列 dispatch、ファイル受け渡し
subagent-driven-development
- Implementer → Spec Reviewer → Quality Reviewer の分離
docs/ai/model-profiles.md / model-profiles.yaml
- mode × model profile × reasoning effort
- context budget / tool policy / validation bias / retry strategy
supports_parallel_subagents
workflow-conductor / orchestrator mode
また、完了済み Issue #710 で「なぜこのモデルに格上げされたか」は派遣プロンプト必須要素として導入済み。
したがって、本 Issue では新しい委譲機構を別に作らず、既存の委譲契約・Model Profile・Trust Ledger / 実行ログを接続し、ルーティング判断を構造化する差分に限定する。
現状のギャップ仮説
既存仕様にはモデル振り分けと委譲理由が存在するが、以下が一つの構造化された契約として接続されていない可能性がある。
- サブタスク単位の
role
- 選択した
model_profile
- 選択した
reasoning_effort
- 選択理由・リスク根拠
- 実行可能な tools / write scope
- 実行者と verifier の分離要否
- 下位モデルから上位モデルへの昇格条件
- 実績値(再試行、失敗、コスト、昇格結果)
暗黙継承のままだと、以下の問題が起こり得る。
- オーケストレータと全サブエージェントが同じ高コストモデルになる
- 定型処理に過剰な reasoning effort を使う
- high-risk / critical を軽量モデルへ誤配分する
- 調査エージェントへ不要な write 権限を渡す
- 実装者と検証者が同一モデル・同一文脈になり、独立検証が弱くなる
- モデル昇格の効果を後から評価できない
目的
PlanGate のサブエージェント委譲において、タスクごとのルーティング判断を次の形で再現可能・監査可能にする。
routing = role × model_profile × reasoning_effort × tools × validation × budget
検討方針
1. ルーティング契約を定義する
派遣時に最低限、以下を構造化して持つ。
routing_decision:
role: implementer
model_profile: gpt-5_5
reasoning_effort: medium
task_mode: standard
tool_policy: narrow
write_scope:
- src/**
- tests/**
verifier:
required: true
role: quality_reviewer
model_profile: gpt-5_5_pro
reasoning_effort: high
reasons:
- multi_file_change
- architecture_impact
escalation:
from_profile: null
trigger: null
既存の model-profiles.yaml と重複する値は再定義せず、参照または profile 解決後の実効値として扱う。
2. オーケストレータの判断責務を明示する
オーケストレータは実作業を行わず、以下を担当する。
- タスクの難度・リスク・不確実性の分類
- サブタスクへの分解
- role の決定
- model profile / effort の決定
- tools / write scope の制限
- verifier の必要性判断
- 実行結果に応じた昇格判断
3. デフォルト継承と明示指定の境界を決める
すべてを毎回手書きすると運用コストが高いため、以下を検討する。
- ultra-light / light は mode 由来の既定値を許容
- standard 以上、write あり、review=true、high-risk / critical は明示指定を必須化
- 親モデルの暗黙継承を許可する条件を限定する
- critical で未対応・unknown profile の場合は fail closed または human escalation
4. 実行者と検証者の分離ルールを定義する
以下では verifier 分離を原則とする。
- high-risk / critical
- セキュリティ
- 破壊的変更
- アーキテクチャ変更
- 後方互換性に影響する変更
- 要件の曖昧さが高い変更
- 実装者が複数回失敗した変更
同じ model profile を使う場合でも、別セッション・別コンテキストで独立レビューする。
5. 昇格条件を定義する
下位または標準 profile から上位 profile / effort へ昇格する代表条件を定義する。
- missing_context が解消できない
- 設計候補が複数あり trade-off 判断が必要
- テスト失敗が retry 上限を超えた
- security / destructive / compatibility risk を検出
- verifier が
needs_review / failure
- task mode が途中で high-risk / critical 相当に変化
単純な retry とモデル昇格を混同しない。
6. Trust Ledger / 実行ログへ記録する
最低限、以下を記録候補とする。
- requested / resolved model profile
- reasoning effort
- role
- task mode
- routing reason
- verifier profile
- retry count
- escalation count / reason
- outcome
- human intervention
- 公開安全なコスト・利用量メタデータ
秘密情報、API key、account ID、内部モデル名は記録しない。既存 telemetry_tags と privacy 方針に従う。
実装候補
以下を確認し、最小変更案を選ぶ。
docs/ai/subagent-delegation/dispatch-template.md
docs/ai/subagent-delegation/plangate-flow-integration.md
- mode / role / verifier / escalation の判断フローを追加
docs/ai/model-profiles.md / .yaml
- 既存フィールドで不足する場合のみ additive に拡張
subagent-dispatch
- dispatch brief へ解決済み routing metadata を出力
- workflow conductor
- profile 選択・昇格・verifier 割り当ての責務を明示
- Trust Ledger / run artifact
Non-goals
- 特定ベンダーのモデル序列を固定すること
- Fable / Opus / GPT 等の固有名を Core Contract に埋め込むこと
- 既存の C-3 / C-4 / Parent Gate を変更すること
- AI に Human-owned の承認権限を移すこと
- すべてのタスクで上位モデルや verifier を必須にすること
- 既存
subagent-dispatch を置き換えること
TODO
受け入れ条件
評価シナリオ例
A. 定型調査
- role: researcher
- mode: light
- effort: low
- read-only
- verifier: optional
B. 通常実装
- role: implementer
- mode: standard
- effort: medium
- write scope: 対象ファイル限定
- verifier: spec reviewer + quality reviewer
C. 高リスク設計変更
- role: architect / implementer
- mode: high-risk または critical
- effort: high 以上
- verifier: 必須・別セッション
- Trust Ledger: routing reason / escalation reason / human intervention を記録
期待効果
- 上位モデルを判断が必要な箇所へ集中できる
- 定型処理のコストを抑えられる
- モデル・effort の暗黙継承による過剰利用を防げる
- 実装者と検証者を分離し、レビュー独立性を高められる
- モデル昇格の有効性を実績データから改善できる
- PlanGate のモデル非依存 Core を維持したまま、各 provider の能力差を薄い設定層へ閉じ込められる
背景
以下の投稿で紹介されている、上位モデルをメインの実行者ではなくオーケストレータとして使い、サブタスクごとに 実行モデル・reasoning effort・役割 を明示して委譲する考え方を、PlanGate のサブエージェント運用へ適用できるか検討する。
投稿の本質は、単にサブエージェントを並列起動することではない。
既存実装との重複確認
PlanGate には、すでに以下が存在する。
docs/ai/subagent-delegation/OUTCOME契約plugin/plangate/skills/subagent-dispatchsubagent-driven-developmentdocs/ai/model-profiles.md/model-profiles.yamlsupports_parallel_subagentsworkflow-conductor/ orchestrator modeまた、完了済み Issue #710 で「なぜこのモデルに格上げされたか」は派遣プロンプト必須要素として導入済み。
したがって、本 Issue では新しい委譲機構を別に作らず、既存の委譲契約・Model Profile・Trust Ledger / 実行ログを接続し、ルーティング判断を構造化する差分に限定する。
現状のギャップ仮説
既存仕様にはモデル振り分けと委譲理由が存在するが、以下が一つの構造化された契約として接続されていない可能性がある。
rolemodel_profilereasoning_effort暗黙継承のままだと、以下の問題が起こり得る。
目的
PlanGate のサブエージェント委譲において、タスクごとのルーティング判断を次の形で再現可能・監査可能にする。
検討方針
1. ルーティング契約を定義する
派遣時に最低限、以下を構造化して持つ。
既存の
model-profiles.yamlと重複する値は再定義せず、参照または profile 解決後の実効値として扱う。2. オーケストレータの判断責務を明示する
オーケストレータは実作業を行わず、以下を担当する。
3. デフォルト継承と明示指定の境界を決める
すべてを毎回手書きすると運用コストが高いため、以下を検討する。
4. 実行者と検証者の分離ルールを定義する
以下では verifier 分離を原則とする。
同じ model profile を使う場合でも、別セッション・別コンテキストで独立レビューする。
5. 昇格条件を定義する
下位または標準 profile から上位 profile / effort へ昇格する代表条件を定義する。
needs_review/failure単純な retry とモデル昇格を混同しない。
6. Trust Ledger / 実行ログへ記録する
最低限、以下を記録候補とする。
秘密情報、API key、account ID、内部モデル名は記録しない。既存
telemetry_tagsと privacy 方針に従う。実装候補
以下を確認し、最小変更案を選ぶ。
docs/ai/subagent-delegation/dispatch-template.mddocs/ai/subagent-delegation/plangate-flow-integration.mddocs/ai/model-profiles.md/.yamlsubagent-dispatchNon-goals
subagent-dispatchを置き換えることTODO
model-profilesと委譲テンプレートの責務境界を整理するrole × profile × effort × tools × verifierの最小スキーマを設計する受け入れ条件
評価シナリオ例
A. 定型調査
B. 通常実装
C. 高リスク設計変更
期待効果