ADR-003: Model Routing and Executor-Native Subagents
Status: accepted
Praetor needs cost-aware model selection, but should not become a first-party
subagent orchestration framework in v1.
Decision
Praetor will support model routing through provider-neutral model profiles:
faststandardreasoningcritical
Each provider or executor maps those profiles to concrete model names or native
settings. Praetor mission planning and agent assignment should reference the
profile, not hard-code provider-specific model names.
When complexity is uncertain, Praetor should choose conservatively and route to
reasoning. Work involving security, privacy, legal, finance, credentials,
runtime configuration, destructive actions, or final high-impact review should
route to critical unless the owner has explicitly configured otherwise.
Praetor will not implement first-party subagent lifecycle management in v1.
For development and research tasks, Praetor may allow executor-native subagents
when the selected executor supports them, such as Codex or Claude Code.
Praetor owns:
- mission scope
- agent assignment
- model profile
- executor selection
- permissions
- budget
- audit trail
- result review
The executor owns:
- internal native subagent usage
- internal parallelization
- internal context isolation
- executor-specific model mechanics
Praetor receives one normalized executor result.
Policy
Minimum runtime policy fields:
model_profile: fast | standard | reasoning | critical
native_subagents: disallowed | allowed
Optional later fields:
native_subagent_policy: none | review_only | executor_managed
max_parallelism: integer
Default behavior:
- simple status, formatting, and summarization work:
fastorstandard - ordinary implementation or analysis:
standard - uncertain, cross-file, architectural, or repeatedly failing work:
reasoning - high-risk or final governance review:
critical - native subagents: disabled for simple work, allowed for selected development
or research executor runs
Praetor should not expose a subagent management UI in v1. If native subagents
are allowed, the UI should present this as an executor behavior setting, not as
company staff.
Result Contract
When an executor uses native subagents or dynamic workflows, the normalized
result should include:
- whether native subagents were used
- broad purpose summary, such as research, implementation, review, or tests
- changed files
- commands and tests run
- final result
- risk notes
- recommended human review
Praetor does not require every internal subagent turn. Raw executor logs may be
kept as evidence when available, but the mission view should show the normalized
result and reviewable evidence.
Consequences
This keeps Praetor focused on company governance while still benefiting from
native executor capabilities as Codex and Claude Code improve.
Tradeoffs:
- Praetor cannot perfectly inspect every internal subagent decision.
- Result quality depends on executor result normalization.
- Cost and parallelism must be bounded by Praetor policy before the run starts.
This is preferable to adding Praetor-owned subagent orchestration before the
mission, executor, memory, and review systems are fully stable.