How to change OpenClaw's thinking level (reasoning effort), for one chat or for good
/think sets the reasoning effort for the conversation you are in; agents.defaults.thinkingDefault sets the install-wide default, and unset it lands on medium. The levels, the resolution order, and how to check what actually ran.
Two places, two scopes. /think <level> in chat sets the reasoning effort for the conversation you are in and persists until you clear it with /think default. agents.defaults.thinkingDefault in the config sets the install-wide default every new conversation starts from. The ladder runs off, minimal, low, medium, high, xhigh, with adaptive, max and ultra available on models that support them. Left unset, the current docs resolve reasoning-capable models to medium. To see what a conversation is actually running, send /think with no argument.
The levels, and who supports which
The names map onto the familiar “think, think hard, think harder, ultrathink” progression, with two additions: adaptive hands the decision to the provider (Anthropic’s current models default to it), and ultra enables proactive sub-agent orchestration on top of maximum effort. Not every model exposes the full ladder. As of the current docs: Anthropic Claude 4.6 supports the whole range and defaults to adaptive; DeepSeek V4 exposes xhigh and max; Ollama models expose low through max; OpenAI GPT models vary by sign-in route, and /think off sends an explicit “no reasoning” on the routes that support it; MiniMax M2 models are simply on or off. Ask for a level a model lacks and OpenClaw maps it to the nearest supported one, so the request never fails, it just rounds.
Which setting wins
OpenClaw resolves the effort for each turn in a fixed order, and knowing it explains most “why is it still thinking so little” moments:
- An inline directive in the current message (
/t highat the start of a prompt) applies to that message only. - A session override, set by sending a directive on its own (
/think high,/think:highor/thinking high), persists for that conversation until/think default(aliases:inherit,clear,reset,unpin). - The per-agent default,
agents.entries.<id>.thinkingDefault. - The global default,
agents.defaults.thinkingDefault. - Otherwise the provider’s declared default, and failing that
mediumfor a reasoning-capable model.
The consequence people trip on: a conversation that carries its own /think pick ignores a later change to the config default, exactly as a session-scoped model pick does. Change the default and your existing chats keep thinking at whatever they were pinned to until you clear the pin.
The month we ran at low without noticing
In August 2026 we discovered that an agent of ours had no reasoning effort set anywhere. On the builds of that month, unset resolved to low, so an agent one of us had been using daily for coaching had run every answer at the lowest effort for weeks while its owner assumed the opposite. Nothing looked broken. The answers were just shallower than they needed to be. We found it only by reading the run traces, where the runtime stamps the effort it actually sent: an isolated openclaw agent --thinking xhigh run recorded effort=xhigh, and the ordinary turns recorded low.
The docs now say medium for the unset case, and the lesson survives the change: if the depth of the answers matters to you, set the default explicitly and check it once. The check is one message:
/think # prints the current thinking level for this conversation
/model # on recent builds also prints the effort, e.g. "Think: high"Do not ask the agent instead. On a pod running OpenClaw 2026.9.1 we watched an agent report its reasoning effort as “off” while the configured default was high and the run traces agreed with the config. The model does not see its own sampling parameters; it guesses. The command reads the setting.
Asking the agent to change it
You can, and it works, with one thing to understand about scope. Asked in plain chat to think harder from now on, an agent we watched in late August patched the session’s thinking level through the Gateway’s own CLI, verified it with a status call before claiming success, and the setting survived a session reset. What it did not touch was thinkingDefault, so every other conversation stayed where it was. That is the right behaviour, and it is the same session-versus-install distinction as the list above: “think harder” in a chat means this chat. If you want the install-wide default changed by the agent, say so; on OpenClaw 2 a configuration edit becomes a proposal you approve rather than something the agent does silently.
Setting the default yourself
openclaw config set agents.defaults.thinkingDefault '"high"' --strict-jsonPer-model parameters also exist, under the model’s entry in agents.defaults.models, for the cases where one model should run differently from the rest:
agents.defaults.models["<provider>/<model>"].paramsHigher effort costs more output tokens and more seconds per reply; on a metered key it is the second-largest dial after the model itself, and the model guide is where the two decisions meet. A sensible pattern is a strong default for the conversations you care about and /think low pinned on the chats that are really just lookups.