Skip to content

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.

Recipes5 minutes to read
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:

text
haiku · 200k ctx · in $1 / out $5 / cache-r $0.1 / cache-w $1.25

Prices 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

/router

Pick 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:

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.

SlotUsed forGood choice
sparkHelper agents that read and research your codeFast and cheap (Haiku, Flash)
emberHelper agents that edit filesA strong coding model (Sonnet, Opus)
exploreThe single explore agent. Uses spark if unset.Fast and cheap
webSearchWeb searchFast and cheap
desloppifyThe cleanup pass after editsFast and cheap
verifyThe check after editsMid-range
goalReviewThe reviewer in the goal loopMid-range or strong
review/review. Uses goalReview if unset.Mid-range or strong
compactSummarizing old context when the conversation gets longFast and cheap (Flash works well)
semanticOne-line summaries of your code for the Genome, Empryo's code indexFast and cheap
advisorA second opinion on the current taskA model with a different perspective
duckA separate conversation without repository accessYour preferred conversational model
councilSeats in a multi-model discussionModels with complementary strengths
orchestrateDesigns and coordinates workflowsA strong planning model
nodeAgent steps in a workflowMatch the work being assigned
judgeReview steps in a workflowA strong independent reviewer
routineScheduled runsMatch the scheduled task
namerTab namesA fast model
marionetteFinds relevant code before a turnA fast research model
defaultAny 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.

json
"spark": "anthropic/claude-haiku-4-5",
"ember": "anthropic/claude-sonnet-4-5",
"compact": "google/gemini-2.5-flash"

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.