Use multiple models
Assign cheap models to exploration and strong models to code edits with Empryo's task router slots, cutting token cost without losing quality on real work.
Assign different models to different tasks. Haiku searches your codebase, Sonnet writes the code, Flash compacts context.
Open the router
/routerOr edit ~/.empryo/config.json:
{
"taskRouter": {
"spark": "anthropic/claude-haiku-4-5",
"ember": "anthropic/claude-sonnet-4-5",
"explore": "anthropic/claude-haiku-4-5",
"webSearch": "anthropic/claude-haiku-4-5",
"desloppify": "anthropic/claude-haiku-4-5",
"verify": "anthropic/claude-haiku-4-5",
"goalReview": "anthropic/claude-sonnet-4-5",
"review": "anthropic/claude-sonnet-4-5",
"compact": "google/gemini-2.5-flash",
"semantic": "anthropic/claude-haiku-4-5",
"default": null
}
}What each slot does
| Slot | Runs when | Good choice |
|---|---|---|
spark | Dispatched read-only agents explore your code | Fast/cheap (Haiku, Flash) |
ember | Dispatched agents that edit files | Strong coding model (Sonnet, Opus) |
explore | The solo explore agent. Unset falls back to spark | Fast/cheap |
webSearch | Web search agents. Unset disables the agentic path | Fast/cheap |
desloppify | Cleanup pass after code edits | Fast/cheap |
verify | Adversarial review after code edits | Medium strength |
goalReview | The goal-loop reviewer, with its own clean context | Medium/strong |
review | On-demand /review. Unset falls back to goalReview | Medium/strong |
compact | Context compaction | Fast/cheap (Flash is ideal) |
semantic | Genome one-line symbol summaries | Fast/cheap |
default | Fallback when no slot matches | - |
Leaving a slot unset is a real choice, not just a blank. spark inherits the model your turn is already using, which means it shares that model's prompt-cache prefix — routing it to something cheaper can cost you more in cache misses than it saves per token. Measure before you split it. A slot pointing at a model that fails to resolve degrades to inherit rather than killing the turn.
Recommended setups
Strong code, cheap everything else.
"spark": "anthropic/claude-haiku-4-5",
"ember": "anthropic/claude-sonnet-4-5",
"compact": "google/gemini-2.5-flash"Why this saves money
Agents spend ~70% of their tokens on exploration (reading files, running greps, navigating the Genome). That work doesn't need an expensive model. Reserve your strong model for the ~30% that's actually writing code.