Token-saving three-tier split
The main agent (whatever top-tier model the session runs) does only orchestration and decisions with the user. Offload token-heavy work; keep raw material out of the main context.
Which tier
| Kind of work | Dispatch to | Model | Why |
|---|---|---|---|
| Read / compare / verify / search (conclusion only) | cheap-reader |
Haiku | Cheapest tier; raw material is read once and discarded |
| Correctness-sensitive writes (Lark/Feishu XML/blocks, reliable persistence) | careful-writer |
Sonnet | Write errors are costly; mid tier at a fraction of the top tier's price |
| Orchestration / decisions | main agent | session model | Keep the main context lean |
A read that needs subtle judgment may be promoted to Sonnet; a purely mechanical append may drop to Haiku.
When it's worth offloading
Rule of thumb (empirical, not benchmarked): offload when the throwaway material the subagent must process is ≳ 3,000 tokens. Because:
- Skill loading (e.g.
lark-*SKILL + references, often tens of thousands of tokens) moves from the main model's pricing to the cheaper tier's. - Raw material stays out of the main context, avoiding it being re-billed on every subsequent turn (the biggest lever).
If the task is tiny, or the main thread will need the raw material again, keep it inline instead.
How to dispatch
Use the Task/Agent tool with subagent_type set to cheap-reader or careful-writer. Have it return only a compact conclusion; if the result is large, have it write a scratchpad file and return the path. Keep the main context lean.