Files
skills/agent-swarm/references/token-economy.md
T

104 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Token economy
Quality per token beats raw token spend. The expensive part of a swarm is usually **input context and
repeated reading**, not the code a worker writes. Measure, budget, then cut redundancy — never cut
the independent checks that catch real defects.
## Measure before optimizing
Record usage per phase and per agent in `.swarm/state.json`:
```json
{
"budget": { "tokens": 600000, "soft_cap": 0.7, "reserved_for_verify": 0.2 },
"usage": [
{ "phase": "recon", "agent": "R01", "tokens_in": 18000, "tokens_out": 4000 },
{ "phase": "build", "agent": "T03", "tokens_in": 24000, "tokens_out": 9000 }
]
}
```
If the runtime does not expose usage, estimate from context size and output length and mark the value
as `estimated`. The point is a feedback loop, not accounting precision.
Useful ratios:
- tokens per accepted task;
- verifier tokens per confirmed defect;
- rework tokens caused by a missed contract;
- share of spend on recon / build / verify / integration.
## Budgets and reserves
- Set a **hard budget** for the milestone and a **soft cap** at ~70%. At the soft cap, stop expanding
scope; finish the current slice and verify.
- Reserve **20–30%** for verification, integration and one round of fixes. Do not spend the whole
budget on generation.
- Budget per phase, not only per wave: recon, build, verify, integrate.
- Stop at the cap and report partial results plus unverified areas. Silent overspend is worse than a
partial result.
- Calibrate from the first measured milestone; do not copy invented numbers from a template.
## Context discipline
The biggest savings without quality loss:
1. **Small files.** Split modules above ~800 lines (UI panels, viewport, inspector). A worker should
read 300–800 relevant lines, not 3,000. Smaller modules also compile and verify faster.
2. **Read ranges, not repositories.** Use `path:line`, symbol search and grep first. Do not read a
whole crate to change one function.
3. **Point to artifacts, do not paste them.** Task cards reference `.swarm/brief.md`,
`.swarm/contracts.md` and exact ranges; they do not duplicate them in the prompt.
4. **Cap reports and reviews.** Worker report: summary, files/artifacts, evidence, issues,
assumptions. Review: findings + commands + evidence; target 5–8k tokens, raw logs stay in files.
5. **One page per task.** If a card needs more, the task is too broad.
6. **No full-suite runs per worker.** Workers run targeted checks; the lead runs the full gate once
per wave.
7. **Fresh context only where independence matters.** The final verifier needs a clean read. A fix
re-check can be a **delta review**: diff + findings + acceptance commands, not the whole repo.
## Verification ladders
Do not spend LLM review tokens on a red build:
1. compile / typecheck / lint;
2. targeted tests;
3. artifact/render/source check;
4. independent verifier on the diff and evidence;
5. final full review once, on a frozen integrated build.
Freeze before step 4. If code changes, re-check only the affected delta; mark the old review stale.
This preserves quality while avoiding repeated full reviews.
## Orchestration shape
- **Fixed overhead dominates small tasks.** Each child carries system prompt, tools, brief and task
context. 30 small agents can cost more than 8 substantial ones.
- **Right-size:** 2–4 implementers + 1 verifier for a vertical slice; 6–10 agents for a broad
milestone; 30 only for genuinely independent breadth.
- **Model routing:** strong model for architecture, difficult fixes and final review; cheaper/faster
model for tests, docs, screenshots and mechanical edits.
- **Vertical slices:** ship one end-to-end feature at a time (selection → transform → undo → save),
with a checkpoint and verification after each. Do not generate the whole product and verify at the
end.
- **Reuse:** do not regenerate a working core, format or codegen. Extend it.
## Anti-patterns
| Pattern | Cost | Fix |
|---|---|---|
| 3k-line file edited by several agents | repeated reads, merge conflicts | split before dispatch |
| Full repo read for a one-function change | huge input | path:line + grep |
| Full re-review after every fix | duplicate verifier spend | delta review |
| Verifier runs on a failing build | wasted review | automated gate first |
| 20 tiny tasks | fixed overhead per child | merge into coherent units |
| Reports/reviews as essays | output + lead input | schema + evidence lines |
| Whole product in one wave | late integration, huge rework | vertical slices + checkpoints |
| Vague "max quality" with no budget | unbounded spend | hard/soft caps + reserve |
## Minimal operating rule
> Measure per phase, reserve for verification, keep files and packets small, verify the diff after
> fixes, and spend the saved tokens on one strong independent review rather than many redundant
> agents.