Advanced

Mix a cheap model with a strong one

This page is for you if your agent already works with one model and you want a better bill or better results. Most of an agent's steps are routine, such as reading a page, writing a short note, or naming a chat. A few are hard, such as planning a long job or recovering when a step fails. Mixing models means sending the routine steps to a cheap model and saving a frontier model for the hard ones, so you pay frontier prices only where they matter.

Applies to: Agent Zero, Atomic Agent, Hermes Agent, OpenClaw, Goose, NanoClaw, and QwenPaw have a documented way to give different jobs different models. Everfern can give screen reading its own model. Eigent and OpenManus only let you switch the one model by hand, as far as this guide could confirm.

Prices were checked on 14 November 2026, and they change.

What the hybrid costs

The hybrid on Pick your model and budget pairs DeepSeek-V4.1-Flash (deepseek-flash) for routine steps with Claude Opus 5.5 for hard ones. The math assumes every step sends 3,000 tokens in and gets 800 tokens back, with no caching and no discounts.

At those sizes, one DeepSeek Flash step costs about $0.00093 in DeepSeek's off-peak hours, and one Claude Opus 5.5 step costs about $0.028. So one strong step costs about as much as 30 cheap ones. DeepSeek's peak hours are 01:00–04:00 and 06:00–10:00 UTC, Monday to Friday, and a cheap step costs double then.

Month Steps Share on Claude Opus 5.5 Off-peak total Every cheap step at peak Same steps, all on Opus
Light 4,800 (8 jobs a day, 20 steps each, 30 days) 10%, or 480 steps about $17 about $21 about $134
Heavy 24,000 (40 jobs a day, 20 steps each, 30 days) 25%, or 6,000 steps about $185 about $201 $672

In the light month, the 480 Opus steps cost $13.44 and the 4,320 cheap steps cost about $4. The strong model is most of the bill even at 1 step in 10, so the setting that matters most is how many steps reach it. Your own steps may be larger or smaller than 3,000 tokens, so treat these totals as worked examples rather than a quote. The full arithmetic is in the hybrid notes.

Three ways agents split the work

Agents divide work between models in one of three ways, and some offer more than one.

The hybrid's 1-in-10 and 1-in-4 shares are assumptions about how often a job needs the strong model. This guide could not confirm which share any agent's own split produces, so check your provider's usage page after the first week.

Where each agent keeps the switch

Agent Zero: model presets

A model preset is a named set of models: a Main model, a Utility model, an Embedding model, and optionally a separate Vision Model. On a fresh install, Agent Zero downloads three presets called Default, Efficiency, and Power. The preset menu is the first dropdown on the left of the chat status bar.

  1. Click the current preset name, then click Edit Presets.
  2. Click Add, name the preset Cheap, choose DeepSeek and deepseek-flash for the Main model and the Utility model, and click Save.
  3. Click Add again, name it Strong, choose Anthropic for the Main model, and pick or type claude-opus-5-5, the Claude API ID on Anthropic's models page. Click Save.
  4. Open Settings → Agent → Models and choose Cheap as the global preset for new chats.

What you should see the preset menu shows Cheap and the short main-model name. When a chat needs harder thinking, you pick Strong from that menu for that chat only.

An agent profile can also pin a preset, and the Per-project / agent option in the same settings sets a different default for a project.

OpenClaw: primary, fallbacks, and utility model

OpenClaw's main model is agents.defaults.model.primary, and agents.defaults.model.fallbacks lists models to try in order when the primary fails. The separate agents.defaults.utilityModel is an optional lower-cost model for short internal jobs such as session titles, progress notes, and transcript summaries. Each agent can override these with agents.entries.*.model and agents.entries.*.utilityModel, and a scheduled job can name its own primary with --model.

openclaw models set <provider/model>
openclaw config set agents.defaults.utilityModel <provider/model>
openclaw models status

Replace <provider/model> with the model reference from openclaw models list. OpenClaw's own advice is to set the primary to the strongest current model you can use and to avoid older or weaker models for agents that use tools or read untrusted input.

What you should see openclaw models status shows your strong model as the primary and the cheap one as the utility model.

Hermes Agent: auxiliary tasks and delegation

Hermes sends side jobs, such as image analysis, chat titles, and squeezing a long conversation down, to auxiliary models. By default every auxiliary task uses your main model, and Hermes's docs warn that this adds real cost on an expensive model.

  1. Run hermes model and pick Configure auxiliary models.
  2. Pick a task, such as title_generation or compression, then pick a provider and a cheap model.
  3. To send subagents to a cheaper model, pick the delegation entry. That writes delegation.provider and delegation.model in config.yaml.

What you should see config.yaml now names a provider and model under auxiliary for each task you changed, and every other task still uses your main model.

The list also includes an approval task. That is the model that decides, in Hermes's default smart approval mode, which risky commands to allow or deny on its own. Think twice before you move that one to a cheap model.

Goose: switching and subagents

In a Goose session, the /model command changes the model without losing the session. Subagents are separate Goose instances that can use their own provider and model, which you set with GOOSE_SUBAGENT_PROVIDER and GOOSE_SUBAGENT_MODEL. A recipe's settings.goose_provider and settings.goose_model take priority over those variables for its subagents.

export GOOSE_SUBAGENT_PROVIDER=<provider>
export GOOSE_SUBAGENT_MODEL=<model>

That example is for a Mac terminal. In PowerShell on Windows, the same lines start with $env: instead, for example $env:GOOSE_SUBAGENT_MODEL="<model>".

What you should see a job that hands work to subagents shows those subagents running on the model you named. Setting GOOSE_CLI_SHOW_COST to true shows cost estimates in the terminal.

A scheduled recipe ignores its own settings.goose_provider and settings.goose_model and runs on Goose's global provider and model. A source check in a GitHub issue thread found this in v1.46.0 and again on the main branch. Before you schedule a recipe, set the global model to the one you want the schedule to pay for.

Atomic Agent: Fusion mode

Fusion gives one job to two models: an orchestrator that plans, writes a brief for each part, and checks the results, and workers that do the parts, several at once. The default pairing is a cloud orchestrator with local workers on your computer, but two cloud models from two different providers also work.

  1. Set up two providers in Atomic Agent, for example Anthropic and DeepSeek.
  2. In the terminal app, run /runmode fusion.
  3. Run /runmode status to see which provider plans and which one works.
  4. If the roles are the wrong way round, run /runmode swap.

What you should see /runmode status names the orchestrator and the worker provider, and each running worker shows its tokens and an estimated cost, for example · 41.2k tok · $0.03.

The settings live under llm.runMode.fusion in ~/.atomic-agent/config.json, and atomic-agent config set cannot change them. The terminal app will not put one provider in both seats. Pin a specific model for each cloud provider, because a router such as openrouter/auto can pick small models that ignore Fusion's instructions.

The turnBudgetUsd setting caps one Fusion turn in US dollars, counting the orchestrator and every worker. Atomic Agent estimates that cost from the provider's price list, not from your bill.

NanoClaw: a model per chat group

NanoClaw sets the model for each chat group. With the default Claude provider, the model can be the short name sonnet, opus, or haiku, or a full model ID. A group with no model set uses NANOCLAW_DEFAULT_MODEL.

ncl groups config update --id <group-id> --provider claude --model haiku
ncl groups restart --id <group-id>

What you should see after the restart, that group answers on the model you set, while your other groups keep theirs.

The OpenCode provider, added with /add-opencode, reaches DeepSeek, OpenRouter, and other companies. It also has an optional OPENCODE_SMALL_MODEL setting in .env.

QwenPaw: a default and a per-chat choice

Settings → Models → Default LLM sets the global default model. The dropdown in the upper right of the Chat page picks a different provider and model for the current agent and chat only. Provider settings are shared by all your agents.

  1. Set a cheap model as the default under Settings → Models → Default LLM and click Save.
  2. In a chat that needs more, pick the strong model from the dropdown in the upper right.

What you should see new chats use the cheap model, and only the chat you changed uses the strong one.

Eigent, Everfern, and OpenManus

Eigent uses your preferred provider as the default for new tasks, and you can choose a model in the task composer when that choice is offered. This guide could not confirm a setting that gives each agent in an Eigent workforce its own model.

Everfern's README says you can switch providers at any time. Its v1.3.0 settings have a separate Vision Grounding section, so the model that reads your screen can differ from the one you chat with.

OpenManus documents a main [llm] block and an optional [llm.vision] block for image work in config/config.toml. Its source code also looks for a block named after each agent, but this guide could not confirm that as a supported setting.

Set a spend limit at every provider

A hybrid bills two companies, so it needs two limits. Set them before you paste either key into an agent, and keep them small at first, because a stuck agent repeats its steps until something stops it. Only a few agents have a dollar limit of their own, so the provider limit is your backstop.

Provider Where the limit lives What happens at the limit Catch
Anthropic Spend limits page, Monthly spend limit Requests fail with an error that starts "You have reached your specified API usage limits." Safe official. The limit cannot go above your account tier's cap.
DeepSeek No monthly limit found. You prepay a balance. Requests fail with 402, Insufficient Balance. Safe official. The balance you top up is your limit.
OpenAI Organization limits → Spend, or Project settings → Limits With Enforce a hard limit on, requests fail with HTTP 429. Surprise bill. Enforcement can lag, so the bill can pass the number slightly.
Google Gemini Spend tab in Google AI Studio, Monthly spend cap Spending for that project is held to the cap. Surprise bill. Google says the cap takes about 10 minutes to act, and you pay for use in that window.
OpenRouter Key limit in each key's settings Requests on that key are rejected until the limit resets. Safe official. A key with no limit can spend your whole balance.

For the light hybrid, an Anthropic limit near $15 and a DeepSeek balance near $10 would cover a month like the one above. Raise them only after you have seen a few weeks of real use.

  1. Anthropic. Open platform.claude.com/settings/spend-limits. Next to Monthly spend limit, click Set limit or Adjust limit, and enter your amount.
  2. DeepSeek. On the DeepSeek platform, top up a small balance, and add more only after you have checked what the agent used.
  3. OpenAI. Open Organization limits → Spend → Edit spend limit, enter a Monthly spend limit, turn on Enforce a hard limit, and click Save. A spend alert alone only sends a notice.
  4. Google Gemini. In Google AI Studio, open the Spend tab, find Monthly spend cap, click Edit spend cap, and enter your amount.
  5. OpenRouter. Open the key's settings, set a Credit limit under Key limit, and pick a monthly reset. OpenRouter recommends a limit on every key.

What you should see each provider shows the limit or balance you set. When the agent reaches one, its next step fails with an error instead of running on.

Some agents add a limit of their own, but none of these is your provider bill:

No monthly dollar limit was found inside OpenClaw, Goose, or Agent Zero, so the provider limit is the one that counts.

Trade-offs: safety versus capability

A cheap model as the main model. This is the setting that brings a bill close to the hybrid totals, because most steps then go to the cheap model.

A cheap model in a judging seat. Some side jobs are not routine at all. In Hermes, the approval task decides which risky commands to allow on its own in smart mode, and in Fusion, the orchestrator checks the workers' results.

Many workers at once. Fusion, Hermes delegation, and Goose subagents can run several workers side by side. Goose allows 5 at once by default, and Fusion allows up to 4 cloud workers by default.

Two providers instead of one. A hybrid sends your prompts, and any files the agent reads, to both companies.

A chat-plan sign-in can also serve as the strong model on some agents. It is an unofficial route on most of them, and Subscription sign-ins covers the terms, ban risk, and billing first. For the three questions behind these choices, see Safety versus capability.

Sources

Checked 14 November 2026.