Skip to content

Commit d83e4c1

Browse files
committed
docs(AGENTS.md): add model selection & cost discipline section
Adds guidance on choosing between premium and cheap models for code-assistant work, including escalation/de-escalation triggers, sub-agent routing defaults, /fleet rules, and session-hygiene tips. Keeps premium reasoning for genuinely hard problems and routes mechanical work to cheaper models. Assisted-by: GitHub Copilot:claude-opus-4.7
1 parent 0622b1a commit d83e4c1

1 file changed

Lines changed: 89 additions & 0 deletions

File tree

AGENTS.md

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,3 +230,92 @@ From `CONTRIBUTING.md` and observed history
230230
- `rustfmt.toml` references nightly‑only options; CI runs `cargo fmt
231231
--check` on stable, which warns about (but does not fail on) those
232232
options.
233+
234+
## Model selection & cost discipline
235+
236+
Premium models (Opus, GPT-5 family, "high"/"xhigh" reasoning variants)
237+
cost an order of magnitude more than standard models (Sonnet, Haiku,
238+
mini). Most steps in a typical task do not need premium reasoning,
239+
and over-using premium models wastes credits without improving
240+
outcomes. The rules below apply to *all* model selection: your own
241+
session, sub-agents launched via the `task` tool, and parallel work
242+
launched via `/fleet`.
243+
244+
### Default posture
245+
246+
- **Default to the cheapest model that can do the job.** Reach for a
247+
premium model only when one of the escalation triggers below is hit.
248+
- **Plan with premium, execute with cheap.** Spend at most one or two
249+
premium turns on design / planning, then downshift to a cheaper
250+
model for mechanical execution of the plan.
251+
- **Never bump the model "just in case."** If you cannot articulate
252+
*why* a cheaper model would fail, use the cheaper model.
253+
254+
### Escalation triggers (use a premium model)
255+
256+
Reach for a premium model when *any* of these are true:
257+
258+
- Cross-module refactor, architectural design, or API design from
259+
scratch.
260+
- Subtle correctness reasoning: concurrency, lifetimes, `unsafe`,
261+
FFI ABI, cryptography, safety-critical control paths.
262+
- Debugging a failure that survived one prior cheap-model attempt.
263+
- Reviewing code on a safety-, security-, or money-critical path.
264+
- The diff cannot be predicted in advance — i.e. there is genuine
265+
creative or design work to do, not just typing.
266+
267+
### De-escalation triggers (use a cheap model)
268+
269+
Use the cheapest available model when *any* of these are true:
270+
271+
- Searching, reading, summarising files or docs.
272+
- Single-file mechanical edits: rename, format, lint fix, dependency
273+
bump, boilerplate, scaffolding from a known template.
274+
- Generating tests for code that already works.
275+
- Running builds, tests, linters, or other commands where the model
276+
only needs to report success/failure.
277+
- Routine commits, PR descriptions, changelog entries.
278+
- The diff is essentially predictable before generation.
279+
280+
### Sub-agent routing (the `task` tool)
281+
282+
When delegating with the `task` tool, set `model:` explicitly. Do not
283+
let sub-agents inherit a premium default for cheap work.
284+
285+
| Sub-agent type | Default model | Override to |
286+
|-------------------|---------------------------|-------------------------------------------------|
287+
| `explore` | cheap | keep cheap (`claude-haiku-4.5` or `gpt-5-mini`) |
288+
| `task` (run cmd) | cheap | keep cheap |
289+
| `research` | cheap for breadth | premium only for the final synthesis |
290+
| `general-purpose` | match task | cheap for mechanical work; premium for design |
291+
| `rubber-duck` | premium | keep premium — this is where reasoning pays off |
292+
| `code-review` | premium on critical paths | cheap on cosmetic / mechanical diffs |
293+
294+
### `/fleet` (parallel sub-agents) rules
295+
296+
- Fleet mode multiplies cost by the fleet width. Apply the rules
297+
above *per worker*, not in aggregate.
298+
- Split a fleet job along complexity lines: route the cheap,
299+
parallelisable workers (file edits, test runs, doc updates) to a
300+
cheap model; reserve premium models for the small number of
301+
workers that need real reasoning.
302+
- If every worker in a fleet would need a premium model, the work is
303+
probably not a good fit for fleet mode — reconsider the
304+
decomposition before paying N× premium.
305+
306+
### Session hygiene
307+
308+
- Keep sessions short and focused. Long premium sessions are the
309+
single largest source of waste because every turn re-processes the
310+
full history.
311+
- Use `/compact` when the conversation grows long, and `/new` for
312+
unrelated work.
313+
- Prefer `/ask` for one-off side questions so they don't extend the
314+
main session.
315+
316+
### When in doubt
317+
318+
Ask: *"If a cheaper model produced the wrong answer here, would I
319+
catch it in seconds (compiler, tests, my own review) or in
320+
weeks (production incident)?"* If the former, use the cheap model
321+
and let the feedback loop do its job.

0 commit comments

Comments
 (0)