Use multiple models
Choose models and reasoning effort for research, coding, reviews and multi-agent workflows. Set defaults for each job or give specialists their own models.
Copy & share
On this page7 sections
Choose which model handles each kind of work: research, implementation, review, advice or workflow coordination. Set reasoning effort where supported. Delegation still happens automatically; these assignments do not require you to choose a helper for every task.
For named specialists, define custom agents. For a planner, executor, parallel reviewers and an arbiter, use a multi-agent workflow. Individual agent and judge steps can specify their own model and effort.
Ask the agent to set it upLink to this section
You can describe what you want: *"put the summaries and the tab names on the cheapest model that can do them."*
The agent looks up models with their published prices (in US dollars per million tokens, for input, output, and cached tokens where available) and updates the router for you:
haiku · 200k ctx · in $1 / out $5 / cache-r $0.1 / cache-w $1.25Prices come from the provider's own list or from models.dev. If a model has no published price, the agent says so instead of guessing. These are list prices: they do not include your discounts, taxes, or subscriptions where tokens are not billed. The agent changes one slot at a time and leaves the rest of your setup alone.
Set it up in the terminal appLink to this section
/routerPick a model for each job in the list.
Set it up in the desktop appLink to this section
Click Routing in the chat or the toolbar to open the routing panel. It stays open when you switch tabs, and each tab keeps its own setup.
- Main agent is the model that answers your messages.
- Dispatch covers the helper agents that research and edit for the main agent, including the switches for the cleanup pass and code review.
- If a model supports reasoning effort, you can set it next to the model.
- Save to this tab saves the models, effort levels, switches, and the limit on parallel agents for this tab. Finish or stop the current reply first.
- Apply to all tabs… copies this setup to your other open tabs, after asking you. It does not change your defaults or future tabs. Busy tabs are skipped, and you can retry them afterwards.
Backup models and other shared settings are in Settings → Agent behavior.
Up to 16 helper agents can run at once by default. Choose Unlimited to remove that limit (maxConcurrentAgents: 0 in the config). Your provider's rate limits and your machine's memory still apply.
Or edit the configLink to this section
In ~/.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
}
}Configuration referenceLink to this section
These are configuration keys, not a fixed roster of agents. The spark and ember keys name the internal research and editing defaults; you do not select those names to dispatch work.
| Slot | Used for | Good choice |
|---|---|---|
spark | Helper agents that read and research your code | Fast and cheap (Haiku, Flash) |
ember | Helper agents that edit files | A strong coding model (Sonnet, Opus) |
explore | The single explore agent. Uses spark if unset. | Fast and cheap |
webSearch | Web search | Fast and cheap |
desloppify | The cleanup pass after edits | Fast and cheap |
verify | The check after edits | Mid-range |
goalReview | The reviewer in the goal loop | Mid-range or strong |
review | /review. Uses goalReview if unset. | Mid-range or strong |
compact | Summarizing old context when the conversation gets long | Fast and cheap (Flash works well) |
semantic | One-line summaries of your code for the Genome, Empryo's code index | Fast and cheap |
advisor | A second opinion on the current task | A model with a different perspective |
duck | A separate conversation without repository access | Your preferred conversational model |
council | Seats in a multi-model discussion | Models with complementary strengths |
orchestrate | Designs and coordinates workflows | A strong planning model |
node | Agent steps in a workflow | Match the work being assigned |
judge | Review steps in a workflow | A strong independent reviewer |
routine | Scheduled runs | Match the scheduled task |
namer | Tab names | A fast model |
marionette | Finds relevant code before a turn | A fast research model |
default | Any job without its own slot, and the model a new tab opens on |
When default is set, a new tab opens on it rather than on the model of the tab you came from, on the desktop and on the phone. Saving a default model (/model with a saved scope, Settings, or the settings tool) moves default to the same model, so the two never disagree. Picking a model for one tab leaves default alone.
Some jobs inherit another job first, such as review and workflow judges. See the helper fallback table. General jobs fall back to default, then the model you are chatting with.
Leaving spark empty can be the cheaper choice. It then uses the same model as your chat, which lets it reuse the provider's prompt cache. A cheaper model has to start without that cache, which can cost more than it saves. Compare your costs in /usage before and after you change it.
If a slot names a model that cannot be found, Empryo uses the chat model instead of failing.
Example setupsLink to this section
A strong model for code, cheap models for everything else.
"spark": "anthropic/claude-haiku-4-5",
"ember": "anthropic/claude-sonnet-4-5",
"compact": "google/gemini-2.5-flash"Haiku for research and code. Good enough for many everyday tasks.
"spark": "anthropic/claude-haiku-4-5",
"ember": "anthropic/claude-haiku-4-5",
"compact": "google/gemini-2.5-flash"Sonnet for both code and research.
"spark": "anthropic/claude-sonnet-4-5",
"ember": "anthropic/claude-sonnet-4-5",
"compact": "google/gemini-2.5-flash"The same models through LLM Gateway, with a single key.
"spark": "llmgateway/claude-haiku-4-5",
"ember": "llmgateway/claude-sonnet-4-5"Why this saves moneyLink to this section
Much of an agent's work is reading: opening files, searching, and following references. That work rarely needs your strongest model. Sending it to a cheaper model keeps your strong model for the part that matters most, writing the code.