Which AI models can a hosted OpenClaw agent use, and how do you switch?
Essentially all of them: the latest from DeepSeek, Qwen, OpenAI, Anthropic, Google, and more, switched with a sentence in chat. The two levers that work, and why a switch might seem not to land.
Essentially all of them. OpenClaw is model-neutral: it runs on whatever provider you connect, and a hosted agent riding a routing key can reach the whole current catalog. When we counted on one of our own pods in late August 2026, that was 400+ models from about 60 companies: DeepSeek, Qwen, OpenAI, Anthropic, Google, Meta, Mistral, xAI, and more. Switching is a sentence in chat: ask the agent, or type /model with the full model id yourself.
The reach, concretely
OpenClaw brings the harness and you bring the model: an API key from a single provider, a ChatGPT subscription sign-in, or a routing key that fronts many providers at once. The third shape is what makes the “which models” question almost disappear. On an Everpod pod, the included model usage reaches that whole catalog: read through a pod’s own key on August 26, 2026, it listed 417 text models from 60 companies, with 404 of them reachable. Every headline company was fully present; the 13 excluded were free or experimental variants, because the included usage never routes to endpoints that train on your prompts or publish them. The live list moves weekly; for today’s snapshot, read the public catalog itself.
Which of those models you should run is a different question, with real money consequences: our guide to choosing a model for OpenClaw covers the input-heavy economics, the cache, and the default trap.
The two levers that actually switch it
Ask the agent. This is the everyday path: “switch to the latest DeepSeek model” in chat, and the agent looks up the exact model id and does the rest. On OpenClaw 2, a fresh install carries no allowlist to extend, and the change is not the agent’s to make alone: it raises an “OpenClaw change” proposal that only you can approve, on the card or with a word in the chat, and the new default applies the moment you do, with no restart. If the agent’s turn ends before you answer, the proposal is cancelled and you will need to ask again. One conversation an approved change never reaches is one you have pointed at a model with /model yourself: that pick outranks the default until you clear it with /model default -s. We watched the whole sequence on one of our own pods on September 4, 2026. And don’t take the agent’s “done” on faith: the card’s “approved and applied” is the fact, and the real check is asking the agent what actually served its last reply, not what its configuration says.
Type /model yourself. An owner-typed /model <full id> in the chat applies to your next message when the agent is idle, and to the next clean point if a run is in progress. On the builds we ran through August it also worked while the current model was failing every turn, which is what makes it the recovery lever when an agent goes silent. Two rules decide whether it lands. First, the full id with every prefix: on a routed setup that means something like /model openrouter/openai/gpt-5.6-luna, and we have watched shortened ids either get refused or route through the wrong path. Second, if your install carries an allowlist, the model has to be on it. On OpenClaw 2 that list is agents.defaults.modelPolicy.allow, a fresh install has none, and a refused pick says so by name; for anything not yet allowed, the ask-the-agent path handles the edit for you. The command also takes a scope on 2.x: -s for this conversation only, -a for the agent’s default, -g for the shared default, and a bare /model from the owner updates the configured default, so an owner’s casual switch persists. The full /model guide covers the scopes and the allowlist that replaced the old models map.
Related chat commands worth knowing: /new starts a fresh conversation, /new <model> starts one on a chosen model, and /reset clears the session. On OpenClaw 2 a conversation otherwise runs until you end it; the daily reset older builds performed at 04:00 is off unless you configure one.
Why a switch might seem not to land
On OpenClaw 2 a model change is applied at the next clean point, so a reply already in flight finishes on the old model and the next one arrives on the new. The pick that lasts longer than it sounds is the session one: /model <id> -s stays on that conversation until you clear it with /model default -s. On a Telegram chat, /new gives you a fresh conversation and keeps the pick, which we watched on a 2026.9.1 pod in September 2026, and a changed default, whether you changed it or the agent did, does not reach a conversation still carrying a pick of its own. The trap that caught nearly everyone on the 2026.7.x builds was different, and we watched it cost real afternoons on our own machines: openclaw models set (or editing the config file) changed the configured default, and the conversation you were in kept answering on the old model anyway, because a running channel captured its configuration when it started and served that capture until the gateway restarted. If you are still on a 7.x install, the in-chat /model override is the lever that works immediately there. On any version, if your agent insists it switched while the replies say otherwise, verify from the model’s side: ask what model produced the last reply, or run /model status.
Subscriptions switch the same way
A ChatGPT subscription can power an OpenClaw agent, and moving between it and per-token usage is the same ask-the-agent sentence in both directions: on our August pods we watched “run on my ChatGPT subscription” and the switch back each land, verified from what served the turns. One precision tip from those runs: name the target exactly. A bare “switch back to the included usage” was once read as the ChatGPT plan’s own allowance rather than the pod’s; a full phrase like “the model usage included with my Everpod subscription” leaves no room. And remember that subscription model access follows the plan’s tier: the flagship models serve on paid plans, so a lapsed subscription keeps selecting a model it can no longer serve.
Reasoning effort is a dial too
The same model thinks harder or faster depending on its reasoning effort, and OpenClaw exposes it at both levels: /think <level> adjusts the conversation you are in, and agents.defaults.thinkingDefault sets the global default. Left unset, that default landed on low on the builds we ran through August (the current docs resolve reasoning-capable models to medium), and it is easy to run at low for a month without noticing; an Everpod pod starts with the default at high. For the conversation in front of you, /think is the lever that works now. The levels, the resolution order and the one-line check have their own page.