#LLM provider used that I not have configured for agent.
1 messages · Page 1 of 1 (latest)
First check: what does openclaw --version show?
Most likely places Claude/Anthropic can sneak in:
-
Session override —
/modelor Control UI model picker persists per session. Check the same chat/thread with:/model status /statusAnd globally:
openclaw sessions --all-agents --json -
Sub-agents inherit caller model unless configured:
agents: {
defaults: {
subagents: {
model: "minimax/...",
},
},
}
Heartbeat model settings do not control sub-agent model choice. Docs: https://docs.openclaw.ai/tools/subagents
- Heartbeat has only a single model override:
It is not a separate primary/fallback object. If fallback happens, check normalagents: { defaults: { heartbeat: { model: "minimax/..." } } }agents.defaults.model.fallbacks/ per-agent fallbacks. Docs: https://docs.openclaw.ai/gateway/heartbeat
-
Claude in
agents.defaults.modelsis only an allowlist/catalog, not active routing by itself. Active routing isagents.defaults.model.primary,fallbacks, per-agentagents.list[].model, session overrides, cron payloads, and sub-agent settings. -
Agent runtime — check for:
agentRuntime: { id: "claude-cli" }under
agents.defaultsoragents.list[].
Useful safe checks:
openclaw models status
openclaw config get agents.defaults.model
openclaw config get agents.defaults.heartbeat
openclaw config get agents.defaults.subagents
openclaw config get agents.list
openclaw logs --limit 1000 --plain | grep -Ei "anthropic|claude|fallback|modelOverride"
If you paste openclaw --version plus redacted output from those, I can help pinpoint exactly which layer selected Claude. Docs: https://docs.openclaw.ai/concepts/models / https://docs.openclaw.ai/concepts/model-failover
"key": "agent:neon:telegram:direct:@neonnajef",
"updatedAt": 1777228378141,
"ageMs": 265543368,
"sessionId": "beebe403-f080-4815-9648-3fcb33c5aa08",
"totalTokens": null,
"totalTokensFresh": false,
"model": "gpt-5.4",
"contextTokens": 200000,
"agentId": "neon",
"kind": "direct"
},
{
"key": "agent:neon:telegram:group:@najef",
"updatedAt": 1777225480629,
"ageMs": 268440880,
"sessionId": "fa124050-395d-4ce9-8f6a-c6608c962968",
"totalTokens": null,
"totalTokensFresh": false,
"model": "gpt-5.4",
"contextTokens": 200000,
"agentId": "neon",
"kind": "group"
I do not even have configured OpenAI token or oath,
That snippet is a session record, not proof that OpenAI was successfully called.
A few important bits:
"model": "gpt-5.4"can be a stored/stale session model value from when that session was created or selected.- It may also be only the model id, with provider omitted in that display. To know the actual provider, look for
modelProvider,providerOverride, andmodelOverride. - If you have no OpenAI auth configured, OpenClaw shouldn’t be able to complete an OpenAI call unless some compatible/provider alias is involved or it falls back elsewhere.
For these two sessions, try resetting the stale model state:
openclaw sessions --all-agents --json
Then in those Telegram chats/threads, send:
/reset
/model status
Also check the neon agent specifically:
openclaw config get agents.list
openclaw config get agents.defaults.model
openclaw config get agents.defaults.heartbeat
openclaw config get agents.defaults.subagents
The likely cause is one of:
agent:neonhas its ownagents.list[].model- the session has an old
/modeloverride
- a subagent inherited/overrode model separately
- heartbeat only set
heartbeat.model, while normal runs still used another model/fallback
Please also paste openclaw --version — that matters a lot here. Docs: https://docs.openclaw.ai/concepts/models
openclaw config get agents.list Only shows Minimax.
openclaw config get agents.defaults.model
"primary": "",
"fallbacks": [
"minimax/MiniMax-M2.5"
openclaw config get agents.defaults.heartbeat
"every": "25m",
"model": "minimax/MiniMax-M2.5",
"target": "none",
"lightContext": true
openclaw config get agents.defaults.subagents
"maxConcurrent": 8
OpenClaw 2026.4.22 (00bd2cf)
openclaw config get agents.defaults.subagents
najef@OpenClaw-Server:~$ openclaw --version
OpenClaw 2026.4.22 (00bd2cf)
najef@OpenClaw-Server:~$ ^C
najef@OpenClaw-Server:~$ openclaw logs --limit 1000 --plain | grep -Ei "anthropic|claude|fallback|modelOverride"
Gateway not reachable. Is it running and accessible?
Gateway target: ws://127.0.0.1:18789
Source: local loopback
Config: /home/najef/.openclaw/openclaw.json
Bind: loopback
Hint: run openclaw doctor.
Aha, the smoking gun is:
"primary": ""
An empty primary is treated as unset, so OpenClaw falls back to its built-in default model — in your version that can show up as gpt-5.4. Your MiniMax entry is only a fallback, not the first model.
Set the primary explicitly:
openclaw config set agents.defaults.model.primary "minimax/MiniMax-M2.7"
openclaw config set agents.defaults.model.fallbacks '["minimax/MiniMax-M2.5"]' --strict-json
openclaw gateway restart
Then reset the stale sessions/chats:
/reset
/model status
Also, since subagents has no model configured, subagents inherit whatever the caller/session resolved to. If you want them forced to MiniMax too:
openclaw config set agents.defaults.subagents.model "minimax/MiniMax-M2.7"
For those exact sessions, check the provider too:
openclaw sessions --all-agents --json
Look for modelProvider, providerOverride, modelOverride near those agent:neon... entries. The old gpt-5.4 is probably stale session state from before the MiniMax config.
Yep — now the immediate blocker is simpler: your CLI can’t reach the Gateway, so openclaw logs can’t inspect the live run history.
Run these next:
openclaw status --all
openclaw gateway status
openclaw doctor
If the gateway is just stopped:
openclaw gateway start
or:
openclaw gateway restart
Then re-run:
openclaw logs --limit 1000 --plain | grep -Ei "anthropic|claude|fallback|modelOverride|gpt-5.4|minimax"
But still fix this config first:
"primary": ""
That means “no primary configured”, so OpenClaw can resolve to the built-in default/stale session model. Set it explicitly:
openclaw config set agents.defaults.model.primary "minimax/MiniMax-M2.7"
openclaw config set agents.defaults.model.fallbacks '["minimax/MiniMax-M2.5"]' --strict-json
openclaw config set agents.defaults.subagents.model "minimax/MiniMax-M2.7"
Then restart gateway and /reset the affected chats.
Where does it get gpt-5.4? I do not have configured this model.. I cannot believe it just picks models that are not even configured
I get why that feels scary, but it’s not inventing a random model from your config.
gpt-5.4 is coming from OpenClaw’s built-in default model fallback path because this is effectively unset:
agents.defaults.model.primary: ""
So the chain becomes:
- primary is empty → “no primary configured”
- OpenClaw uses its internal default primary, in your version showing as
gpt-5.4 - then your configured
fallbacksare considered after that
Your config currently says: “no primary, fallback to MiniMax M2.5” — not “primary MiniMax M2.7”.
Set the primary explicitly:
openclaw config set agents.defaults.model.primary "minimax/MiniMax-M2.7"
openclaw config set agents.defaults.model.fallbacks '["minimax/MiniMax-M2.5"]' --strict-json
openclaw gateway restart
Then reset affected sessions:
/reset
If you want no subagent inheritance surprises:
openclaw config set agents.defaults.subagents.model "minimax/MiniMax-M2.7"
And yes: without OpenAI auth it should not be able to successfully call OpenAI. The session list can still display the resolved default model. The important fix is: don’t leave primary empty. Docs: https://docs.openclaw.ai/concepts/models
why is the fallback command line different that the primary one?
An error occurred while processing your request. You can retry your request, or contact us through our help center at help.openai.com if the error persists. Please include the request ID req_e59c6ae9645d45aa95e2064c92ea850a in your message.
why is the fallback command line different that the primary one?
Because they’re different data types:
primary: "minimax/MiniMax-M2.7" // one string
fallbacks: ["minimax/MiniMax-M2.5"] // array/list of strings
So the CLI has to write them differently:
openclaw config set agents.defaults.model.primary "minimax/MiniMax-M2.7"
…but fallbacks needs JSON array syntax:
openclaw config set agents.defaults.model.fallbacks '["minimax/MiniMax-M2.5"]' --strict-json
You can also set the whole model block in one go if that feels cleaner:
openclaw config set agents.defaults.model '{"primary":"minimax/MiniMax-M2.7","fallbacks":["minimax/MiniMax-M2.5"]}' --strict-json
Then restart/reset sessions. Docs: https://docs.openclaw.ai/gateway/configuration