You're right — I should just take it. Let me check what I actually have.
Looking at my tool list for this session, I genuinely only have: message, sessions_, session_status, and qmd__ (knowledge base search/read). No exec, no read/write/edit file tools, no subagents.
That's not me being timid — the control UI session was spawned with a restricted tool set. Earlier exec results you saw (sharp-ce, salty-cl) came from other sessions running in parallel that I was coordinating with, not from me directly. That's why session_status shows capabilities=none in my runtime line.
Two ways to actually get this done:
Delegate to a session that has exec — I can sessions_send to an existing worker session, or you can spawn me a sub-agent with full tools.
You grant this session more tools — in the control UI, enable exec/fs for the webchat agent profile and I'll have them immediately.
I'd lean toward #1 for a one-shot cleanup. Want me to find a session with exec and hand it the trim task? Or would you rather grant tools to this session so I stop needing to relay?
#agent help
1 messages · Page 1 of 1 (latest)
Yep, that explanation is basically right.
What you’re seeing matches a messaging-only tool policy. The thing to trust is Agents → Tools → Available Right Now, since that shows the effective session-scoped tools, not just the config editor.
If they want a permanent fix, the clean options are:
- set that agent to
profile: "coding" - or allow
["group:runtime", "group:fs"]
That adds exec/process and the file tools. Also, deny still wins, so a provider override or deny entry can still strip them back out.
For a one-off trim job, delegating with sessions_send is fine.
For “stop relaying forever”, change the agent profile.
Also, use the real tool/group names in config, not shorthand like exec/fs.
If it still looks wrong after changing it, have them paste openclaw --version and that agent’s tools block.
If the problem is missing tools, the fix is still the agent tool profile.
If the problem is delegation itself (sessions_send / worker handoff failing when it should work), I’d treat that as a bug report. Please grab:
openclaw --versionopenclaw status --all
and include:
- the agent
toolsblock - what Agents → Tools → Available Right Now showed
- the exact error from the delegation attempt
Official escalation path is GitHub:
https://github.com/openclaw/openclaw/issues
If they just need to get unstuck right now, delegating to a known worker session with exec is still the fastest workaround.
help me fix it
Yep. First, tell me your version:
openclaw --version
Then the quickest permanent fix is:
- Open Control UI → Agents → your webchat/control-ui agent → Tools
- Either set the tool profile to
coding - Or explicitly allow:
tools: {
allow: ["group:runtime", "group:fs"]
}
That gives you:
group:runtime→exec,processgroup:fs→read,write,edit,apply_patch
A few gotchas:
- Check Available Right Now, not just Tool Configuration
- Deny wins, so any
denyor provider override can still remove those tools - Use the real group names above, not config strings like
exec/fs
If you’re editing config directly, it lives in:
~/.openclaw/openclaw.json
and the per-agent shape is:
{
agents: {
list: [
{
id: "your-agent-id",
tools: {
profile: "coding"
}
}
]
}
}
If you paste your openclaw --version and the agent’s tools block, I’ll tell you exactly what to change.
Docs:
https://docs.openclaw.ai/tools
https://docs.openclaw.ai/gateway/configuration
ollama/kimi-k2.6:cloud.is this model active rightnow by. ollama
If you mean ollama/kimi-k2.6:cloud, the :cloud bit means Ollama cloud, not a purely local Ollama model.
To check what OpenClaw is using right now:
openclaw models status --plain
To check whether OpenClaw sees it under Ollama:
openclaw models list --provider ollama
To check what your Ollama host is actively running right now:
ollama ps
One important nuance: cloud models only show up if you’re using Ollama’s cloud path, either:
- Cloud only via
https://ollama.com, or - Cloud + Local with a signed-in Ollama host (
ollama signin)
Docs:
https://docs.openclaw.ai/providers/ollama
https://docs.openclaw.ai/concepts/models
https://docs.openclaw.ai/concepts/models#model-discussions-community-notes
If you paste the output of openclaw models status --plain, I can tell you what it’s actually using.
i have three cloud models ollama help me setup
ollama/kimi-k2.5:cloud
miya@Miyas-Mac-mini ~ % openclaw models list --provider ollama
🦞 OpenClaw 2026.4.15 (041266a) — The lobster in your shell. 🦞
Model Input Ctx Local Auth Tags
ollama/kimi-k2.5:cloud text+image 125k no yes default,configured
ollama/minimax-m2.7:cloud text 125k no yes fallback#1,configured
ollama/glm-5.1:cloud text 125k no yes fallback#2,configured
Yep, easiest path is Ollama → Cloud only.
First, what does this show?
openclaw --version
Then set it up like this:
openclaw onboard
In onboarding:
- choose Ollama
- choose Cloud only
- enter your OLLAMA_API_KEY
- pick one of your cloud models
Then verify:
openclaw models list --provider ollama
openclaw models status
If you want to switch the active one after setup:
openclaw models set ollama/<your-model-id>
A couple important gotchas:
- if you only have cloud models, use Cloud only
- if you want cloud + local, install Ollama locally and run
ollama signin - do not use
/v1in the Ollama URL, OpenClaw wants the native Ollama API
If you paste your 3 exact model ids, I can tell you which one to set as primary and what command to run.
Docs:
https://docs.openclaw.ai/providers/ollama
https://docs.openclaw.ai/concepts/models
https://docs.openclaw.ai/concepts/models#model-discussions-community-notes
Nice, you’re basically already set up. 🎉
That output means:
- Ollama cloud auth is working (
Auth yes) - these are cloud models (
Local nois expected) - your current default is
ollama/kimi-k2.5:cloud - the other two are already configured as fallbacks
If you want to double-check the resolved active default:
openclaw models status --plain
If you want to change the default model:
openclaw models set ollama/minimax-m2.7:cloud
If you want to reorder/reset fallbacks:
openclaw models fallbacks clear
openclaw models fallbacks add ollama/kimi-k2.5:cloud
openclaw models fallbacks add ollama/glm-5.1:cloud
So, good news, the Ollama side looks healthy. If you want, next I can help you:
- pick the best default/fallback order
- wire this into your agent config
- test an actual chat run
kimi 2.5 cloud is not workin can you research and let me know
Yep, I dug into it, and this looks like a real known issue, not just you.
I found multiple matching reports for ollama/kimi-k2.5:cloud:
- OpenClaw issue: https://github.com/openclaw/openclaw/issues/41519
- Ollama issue: https://github.com/ollama/ollama/issues/14592
- Related no-output case: https://github.com/openclaw/openclaw/issues/8505
Common pattern in those reports:
- the model responds in text but does not actually call tools
- or the run completes and you get no visible output
- Minimax and GLM cloud variants usually keep working
So if Kimi is the only one failing, that strongly points to the known Kimi cloud integration bug.
Best workaround right now:
openclaw models set ollama/minimax-m2.7:cloud
or
openclaw models set ollama/glm-5.1:cloud
One extra check, just in case:
if you manually configured Ollama, make sure you are not using a .../v1 base URL. OpenClaw wants the native Ollama API path, not the OpenAI-compatible one.
If you paste the exact symptom, I can narrow it down fast:
- no output at all
- answers in text but never calls tools
- 401/auth error
- something else
One extra check, just in case:
if you manually configured Ollama, make sure you are not using a .../v1 base URL. OpenClaw wants the native Ollama API path, not the OpenAI-compatible one. where do i check
Yep, easiest check is:
openclaw config get models.providers.ollama.baseUrl
If you want the whole Ollama block:
openclaw config get models.providers.ollama
What you want to see:
- Cloud only →
https://ollama.com - Local / Cloud+Local →
http://127.0.0.1:11434
What you do not want:
- anything ending in
/v1
You can also check the config file directly here:
~/.openclaw/openclaw.json
Look for:
models: {
providers: {
ollama: {
baseUrl: "..."
}
}
}
If you paste the output of openclaw config get models.providers.ollama, I’ll tell you immediately if it looks wrong.
Docs:
https://docs.openclaw.ai/providers/ollama
https://docs.openclaw.ai/cli/configure
Have an issue have these ollama modles installed rightnow vai ollama cloud they are running unless I run this ollama launch openclaw this si absically making ollama run the openclaw not openclaw using ollam models
Have an issue have these ollama modles installed rightnow vai ollama cloud they are running unless I run this ollama launch openclaw this si absically making ollama run the openclaw not openclaw using ollam models
Yep, I think I see the confusion.
ollama launch openclaw is the Ollama-managed integration path.
That means Ollama is launching OpenClaw for you.
If what you want is the opposite, OpenClaw as the main app, using Ollama as its model provider, then do not use:
ollama launch openclaw
Instead, do this:
openclaw onboard
Then choose:
- Ollama
- Cloud only (if you only want Ollama cloud models)
or - Cloud + Local (if you also want local Ollama)
Then set the model you want:
openclaw models set ollama/kimi-k2.5:cloud
Then run OpenClaw normally:
openclaw gateway start
openclaw status
openclaw models status
So the mental model is:
ollama launch openclaw= Ollama runs OpenClawopenclaw ...with Ollama configured = OpenClaw runs normally and uses Ollama models
If you want, I can give you the exact clean setup commands for the second path so you can ignore ollama launch openclaw completely.
curl http://localhost:11434/api/chat
-d '{
"model": "kimi-k2.6:cloud",
"messages": [{"role": "user", "content": "Hello!"}]
}'
the route frfom ollama to openclaw shave this model but when I authencate openclaw with ollama there is no kimi 2.6 model cloud
Yep, that makes sense.
What’s happening is:
- Ollama itself can serve
kimi-k2.6:cloud - but OpenClaw’s Ollama cloud catalog in your build is still seeded with the older cloud defaults, so
kimi-k2.6:clouddoes not show up automatically
So this is usually catalog lag, not auth failure.
Easiest fix
Check your current Ollama model config:
openclaw config get models.providers.ollama.models
If you already see the kimi-k2.5:cloud entry there, copy that entry and change:
id→kimi-k2.6:cloudname→kimi-k2.6:cloud
Then set it as default:
openclaw models set ollama/kimi-k2.6:cloud
Why this happens
OpenClaw docs say Ollama Cloud only seeds a hosted cloud model list, it does not necessarily auto-enumerate every brand-new cloud model from Ollama.
So, short version: Ollama knows about 2.6, OpenClaw’s current seeded list may not yet.
If you want, paste the output of:
openclaw config get models.providers.ollama
and I’ll write the exact kimi-k2.6:cloud block for you.
Docs:
https://docs.openclaw.ai/providers/ollama
https://docs.openclaw.ai/concepts/models
give me exact intrstuions to use it
Yep. Here’s the exact path to make OpenClaw use ollama/kimi-k2.6:cloud.
1) Inspect your current Ollama model block
openclaw config get models.providers.ollama.models
2) Open your config file
~/.openclaw/openclaw.json
Inside models.providers.ollama.models, find the existing kimi-k2.5:cloud entry.
3) Duplicate that entry and change only these two fields
id: "kimi-k2.6:cloud",
name: "kimi-k2.6:cloud",
So if you already have a kimi-k2.5:cloud object, make a second copy of it right below, then rename it to kimi-k2.6:cloud.
4) Save the file, then restart OpenClaw
openclaw gateway restart
5) Verify OpenClaw now sees it
openclaw models list --provider ollama
You should now see:
ollama/kimi-k2.6:cloud
6) Make it the default model for future chats
openclaw models set ollama/kimi-k2.6:cloud
7) Make this current Discord thread use it right now
Send this in chat:
/model ollama/kimi-k2.6:cloud
That switches the current session immediately.
If /model ... says “not allowed”
That means you have a model allowlist configured. If that happens, paste:
openclaw config get agents.defaults.models
and I’ll give you the exact allowlist edit too.
Docs:
https://docs.openclaw.ai/providers/ollama
https://docs.openclaw.ai/concepts/models
I would like to clean up all auth keys models and any default models and every information regarding modles and Will clean install eveything again
Yep. Since you want a clean model/auth reset, I’d do the safe version first, not a full ~/.openclaw nuke.
Recommended: reset model config + model auth only
1) Stop OpenClaw and make a backup
openclaw gateway stop
openclaw backup create --no-include-workspace --verify
2) Clear model defaults from config
openclaw config unset agents.defaults.model
openclaw config unset agents.defaults.models
openclaw config unset models.providers
openclaw config unset models.mode
If you also want to clear media model defaults:
openclaw config unset agents.defaults.imageModel
openclaw config unset agents.defaults.imageGenerationModel
openclaw config unset agents.defaults.videoGenerationModel
openclaw config unset agents.defaults.musicGenerationModel
3) Find your agent id
ls ~/.openclaw/agents
If you only use the default setup, it is usually main.
4) Move model auth + model registry aside
Replace <agentId> with what you saw above:
mv ~/.openclaw/agents/<agentId>/agent/auth-profiles.json ~/.openclaw/agents/<agentId>/agent/auth-profiles.json.bak
mv ~/.openclaw/agents/<agentId>/agent/models.json ~/.openclaw/agents/<agentId>/agent/models.json.bak
5) Check for env-based model keys too
This is important, because OpenClaw can re-detect keys from env even after you remove auth profiles.
grep -n 'API_KEY\\|OLLAMA\\|OPENAI\\|OPENROUTER\\|ANTHROPIC\\|MOONSHOT\\|KIMI\\|MINIMAX\\|GLM' ~/.openclaw/.env 2>/dev/null
If you see old model keys there, remove them from ~/.openclaw/.env before restarting.
6) Start fresh
openclaw gateway start
openclaw models status
openclaw onboard
Then set up only the provider you want.
One more thing
Old chats can remember session-specific /model choices, so after this, start a new session/chat when testing.
If you want, I can also give you the full hard reset version that wipes all OpenClaw state after backup, but that is more destructive.
Docs:
https://docs.openclaw.ai/cli/backup
https://docs.openclaw.ai/cli/configure
https://docs.openclaw.ai/gateway/authentication
https://docs.openclaw.ai/concepts/models
clear session
Use:
/reset
or
/new
That starts a fresh chat session.
There is no openclaw session clear CLI command, that one doesn’t exist.
Docs:
Tool
12:26 PM
↑312.8k
↓4.2k
100% ctx
kimi-k2.6:cloud something wrong
Yep, the 100% ctx is the big red flag.
That usually means the session context is full, and once that happens models start acting weird, no matter which provider you use.
Try this first:
/compact
or just start clean:
/reset
then test kimi-k2.6:cloud again in a fresh session.
So the order I’d use is:
/reset/model ollama/kimi-k2.6:cloud- retry the same prompt
If it still breaks in a fresh session, then it’s likely the model/provider path.
If it only breaks when ctx is 100%, it’s a context overflow problem, not a Kimi-only problem.
Docs:
https://docs.openclaw.ai/tools/slash-commands
https://docs.openclaw.ai/concepts/models
my agent sessions are gett ing 100% ctx
Yep, that usually means the conversation history is growing too long, not that the agent itself is broken.
Fastest fixes:
/compact
If it’s already pretty cooked, just start fresh:
/reset
If this keeps happening a lot, I’d also set the session to rotate sooner:
/session idle 15m
/session max-age 1h
That helps stop one thread from becoming a giant forever-session.
A few common causes:
- long chats in one thread
- big pasted logs / code blocks
- lots of tool output
- model switches inside an already huge session
My recommendation:
/reset
- retry in a fresh session
- if you want persistent threads, add
/session idle+/session max-age
If you want, I can help you tune the best session settings so this stops happening.
Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : ollama/kimi-k2.6:cloud
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (0) : -
Configured models (1): ollama/kimi-k2.6:cloud
Auth overview
Auth store : ~/.openclaw/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (0): -
- ollama effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | ollama:default=56e33853...2EFQaEJ7 | models.json=56e33853...2EFQaEJ7 | source=models.json: ~/.openclaw/agents/main/agent/models.json
OAuth/token status
- none
i would like to add gemma4:31b-cloud
and qwen3.5:397b-cloud into the same ollama provider
Yep, you can put all 3 under the same ollama provider.
The important bit is: edit ~/.openclaw/openclaw.json, not models.json, because models.json is generated.
Exact steps
1) Inspect the current Ollama model list in config
openclaw config get models.providers.ollama.models --json
2) Open this file
~/.openclaw/openclaw.json
3) In models.providers.ollama.models, keep your existing Kimi entry and add 2 more entries
The safest way is:
- copy your existing
kimi-k2.6:cloudmodel object - paste it twice
- change only
idandnameon the 2 new copies
So your models array should end up with these 3 ids:
"kimi-k2.6:cloud"
"gemma4:31b-cloud"
"qwen3.5:397b-cloud"
4) Save, then restart OpenClaw
openclaw gateway restart
5) Verify OpenClaw now sees all 3
openclaw models list --provider ollama
6) If you want them as fallbacks too
openclaw models fallbacks add ollama/gemma4:31b-cloud
openclaw models fallbacks add ollama/qwen3.5:397b-cloud
7) Check the final result
openclaw models status
One warning
Because you manually added kimi-k2.6:cloud, your Ollama provider is now basically a manual catalog. So new cloud models will usually need to be added the same way.
If you want, paste the output of:
openclaw config get models.providers.ollama --json
and I’ll write the exact JSON block for all 3 models so you can paste it in directly.
miya@Miyas-Mac-mini ~ % openclaw config get models.providers.ollama.models --json
[
{
"id": "kimi-k2.6:cloud",
"name": "kimi-k2.6:cloud",
"reasoning": false,
"input": [
"text",
"image"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 256000,
"maxTokens": 8192,
"api": "ollama"
},
{
"id": "minimax-m2.7:cloud",
"name": "minimax-m2.7:cloud",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 128000,
"maxTokens": 8192,
"api": "ollama"
},
{
"id": "glm-5.1:cloud",
"name": "glm-5.1:cloud",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 128000,
"maxTokens": 8192,
"api": "ollama"
}
]
verify the context and tokesn as well
Yep, I checked it.
Your current Kimi 2.6 entry looks fine:
contextWindow: 256000maxTokens: 8192
And for the 2 new Ollama cloud models, the safest values to use are:
gemma4:31b-cloud→contextWindow: 256000qwen3.5:397b-cloud→contextWindow: 256000
For maxTokens, I’d keep 8192 for both to match your working cloud entries. I found clear 256K context references on Ollama’s library pages, but not a cleaner published output-token cap than what you already use, so 8192 is the conservative choice.
Use these exact blocks:
{
"id": "gemma4:31b-cloud",
"name": "gemma4:31b-cloud",
"reasoning": false,
"input": ["text", "image"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 256000,
"maxTokens": 8192,
"api": "ollama"
},
{
"id": "qwen3.5:397b-cloud",
"name": "qwen3.5:397b-cloud",
"reasoning": false,
"input": ["text", "image"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 256000,
"maxTokens": 8192,
"api": "ollama"
}
So your final mental model is:
- Kimi 2.6:
256000 / 8192 - Gemma4 31B cloud:
256000 / 8192 - Qwen3.5 397B cloud:
256000 / 8192
If you want, I can now write the full final models.providers.ollama.models array with all 5 entries so you can paste it in one shot.
i only need those three models to be setup give me where to setup
Put them here:
~/.openclaw/openclaw.json
Specifically under:
models.providers.ollama.models
If you only want those 3 models, that array should contain only:
kimi-k2.6:cloudgemma4:31b-cloudqwen3.5:397b-cloud
And your default model goes here:
agents.defaults.model.primary
So the two places are:
1) Available Ollama models
models: {
providers: {
ollama: {
models: [
// your 3 model objects here
]
}
}
}
2) Default model
agents: {
defaults: {
model: {
primary: "ollama/kimi-k2.6:cloud"
}
}
}
Important:
- edit
~/.openclaw/openclaw.json - do not edit
~/.openclaw/agents/main/agent/models.jsondirectly, that file is generated
After saving:
openclaw gateway restart
openclaw models list --provider ollama
If you want, I can give you the exact full openclaw.json block for just those 3 models, ready to paste.
give me what all i should in config
Yep, based on what you showed, this is the config I’d put in ~/.openclaw/openclaw.json.
Because you’re using the local Ollama daemon and it can reach cloud models, use the local base URL, without /v1:
{
models: {
providers: {
ollama: {
baseUrl: "http://127.0.0.1:11434",
api: "ollama",
models: [
{
id: "kimi-k2.6:cloud",
name: "kimi-k2.6:cloud",
reasoning: false,
input: ["text", "image"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 256000,
maxTokens: 8192,
api: "ollama",
},
{
id: "gemma4:31b-cloud",
name: "gemma4:31b-cloud",
reasoning: false,
input: ["text", "image"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 256000,
maxTokens: 8192,
api: "ollama",
},
{
id: "qwen3.5:397b-cloud",
name: "qwen3.5:397b-cloud",
reasoning: false,
input: ["text", "image"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 256000,
maxTokens: 8192,
api: "ollama",
},
],
},
},
},
agents: {
defaults: {
model: {
primary: "ollama/kimi-k2.6:cloud",
fallbacks: [
"ollama/qwen3.5:397b-cloud",
"ollama/gemma4:31b-cloud",
],
},
},
},
}
A couple notes:
- do not use
http://127.0.0.1:11434/v1 - if your Ollama auth is already in
auth-profiles.json, you do not need to addapiKeyhere - if you don’t want fallbacks, remove the
fallbacksarray
Then run:
openclaw gateway restart
openclaw models list --provider ollama
openclaw models status
If you want the current chat to switch too:
/model ollama/kimi-k2.6:cloud
can you give me how to do it from cli
Yep. If you want to do it entirely from CLI, run these.
This replaces your Ollama model list with only those 3 models.
openclaw config set models.providers.ollama.baseUrl http://127.0.0.1:11434
openclaw config set models.providers.ollama.api ollama
openclaw config set models.providers.ollama.models '[
{
id: "kimi-k2.6:cloud",
name: "kimi-k2.6:cloud",
reasoning: false,
input: ["text", "image"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 256000,
maxTokens: 8192,
api: "ollama"
},
{
id: "gemma4:31b-cloud",
name: "gemma4:31b-cloud",
reasoning: false,
input: ["text", "image"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 256000,
maxTokens: 8192,
api: "ollama"
},
{
id: "qwen3.5:397b-cloud",
name: "qwen3.5:397b-cloud",
reasoning: false,
input: ["text", "image"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 256000,
maxTokens: 8192,
api: "ollama"
}
]' --strict-json
openclaw config set agents.defaults.model '{
primary: "ollama/kimi-k2.6:cloud",
fallbacks: [
"ollama/qwen3.5:397b-cloud",
"ollama/gemma4:31b-cloud"
]
}' --strict-json
openclaw gateway restart
openclaw models list --provider ollama
openclaw models status
If you want the current chat session to switch too, then send:
/model ollama/kimi-k2.6:cloud
Important:
- use
http://127.0.0.1:11434 - do not use
/v1 - if you already have Ollama auth in
auth-profiles.json, you do not need to setapiKeyin config
Yep, your shell is just waiting for the rest of the quote/bracket.
First, cancel the half-pasted command:
Ctrl-C
Then use this safer version so you don’t fight shell quoting.
1) Write the model list to a temp file
cat >/tmp/ollama-models.json5 <<'EOF'
[
{
id: "kimi-k2.6:cloud",
name: "kimi-k2.6:cloud",
reasoning: false,
input: ["text", "image"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 256000,
maxTokens: 8192,
api: "ollama"
},
{
id: "gemma4:31b-cloud",
name: "gemma4:31b-cloud",
reasoning: false,
input: ["text", "image"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 256000,
maxTokens: 8192,
api: "ollama"
},
{
id: "qwen3.5:397b-cloud",
name: "qwen3.5:397b-cloud",
reasoning: false,
input: ["text", "image"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 256000,
maxTokens: 8192,
api: "ollama"
}
]
EOF
2) Apply it to config
openclaw config set models.providers.ollama.baseUrl http://127.0.0.1:11434
openclaw config set models.providers.ollama.api ollama
openclaw config set models.providers.ollama.models "$(cat /tmp/ollama-models.json5)" --strict-json
openclaw config set agents.defaults.model '{
primary: "ollama/kimi-k2.6:cloud",
fallbacks: [
"ollama/qwen3.5:397b-cloud",
"ollama/gemma4:31b-cloud"
]
}' --strict-json
openclaw gateway restart
openclaw models list --provider ollama
openclaw models status
If you want, I can also give you the single-line version, but this temp-file version is a lot less annoying.
🦞 OpenClaw 2026.4.15 (041266a) — Deployed locally, trusted globally, debugged eternally.
Model Input Ctx Local Auth Tags
ollama/kimi-k2.6:cloud text+image 250k no yes default,configured
Yep, this tells us the change did not fully land.
Right now OpenClaw still sees only one configured Ollama model:
ollama/kimi-k2.6:cloud
So gemma4:31b-cloud and qwen3.5:397b-cloud are not in the config yet.
Run this next:
openclaw config get models.providers.ollama.models --json
If that output still shows only one object, then the config set models.providers.ollama.models ... step did not apply.
Then rerun just this part:
openclaw config set models.providers.ollama.models "$(cat /tmp/ollama-models.json5)" --strict-json
openclaw gateway restart
openclaw models list --provider ollama
You should see 3 rows, not 1.
If you want, paste the output of:
openclaw config get models.providers.ollama.models --json
and I’ll tell you immediately whether the array is wrong or the restart didn’t pick it up.
miya@Miyas-Mac-mini ~ % openclaw config get models.providers.ollama.models --json
[
{
"id": "kimi-k2.6:cloud",
"name": "kimi-k2.6:cloud",
"reasoning": false,
"input": [
"text",
"image"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 256000,
"maxTokens": 8192,
"api": "ollama"
},
{
"id": "gemma4:31b-cloud",
"name": "gemma4:31b-cloud",
"api": "ollama",
"reasoning": false,
"input": [
"text",
"image"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 256000,
"maxTokens": 8192
},
{
"id": "qwen3.5:397b-cloud",
"name": "qwen3.5:397b-cloud",
"api": "ollama",
"reasoning": false,
"input": [
"text",
"image"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 256000,
"maxTokens": 8192
}
]
Nice, this part looks correct now. âś…
Your config has all 3 models:
kimi-k2.6:cloudgemma4:31b-cloudqwen3.5:397b-cloud
So the problem is not the config anymore.
Next step
Restart the gateway, then re-check the live model list:
openclaw gateway restart
openclaw models list --provider ollama
openclaw models status
If it still only shows 1 model after restart
Then the next thing to inspect is the generated model registry:
grep -n 'kimi-k2.6:cloud\|gemma4:31b-cloud\|qwen3.5:397b-cloud' ~/.openclaw/agents/main/agent/models.json
If that file only contains Kimi, then the generated models.json did not refresh yet.
But the good news is: your openclaw.json is now right. We’re past the config step.
If you want, send the output of:
openclaw models list --provider ollama
after the restart, and I’ll tell you the exact next move.
ollama/kimi-k2.6:cloud text+image 250k no yes default,configured
miya@Miyas-Mac-mini ~ % openclaw models status
🦞 OpenClaw 2026.4.15 (041266a) — I keep secrets like a vault... unless you print them in debug logs again.
Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : ollama/kimi-k2.6:cloud
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (0) : -
Configured models (1): ollama/kimi-k2.6:cloud
Auth overview
Auth store : ~/.openclaw/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (0): -
- ollama effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | ollama:default=56e33853...2EFQaEJ7 | models.json=56e33853...2EFQaEJ7 | source=models.json: ~/.openclaw/agents/main/agent/models.json
OAuth/token status
- none
miya@Miyas-Mac-mini ~ %
Aha, I see it now.
Your config is correct, but runtime is still using:
source=models.json: ~/.openclaw/agents/main/agent/models.json
So you’re getting bitten by merge mode. The clean fix is to tell OpenClaw to fully rewrite the generated model registry from config.
Run this:
openclaw config set models.mode replace
openclaw gateway restart
openclaw models list --provider ollama
openclaw models status
Why this helps:
- right now
models.jsonis winning models.mode: "replace"tells OpenClaw to rebuildmodels.jsonfrom youropenclaw.json- that should make the 3 configured Ollama models show up
If it still only shows Kimi after that, then we do the next step and move the stale generated file aside, but try models.mode replace first, it’s the right move here.
Docs:
https://docs.openclaw.ai/gateway/configuration-reference
https://docs.openclaw.ai/concepts/models
miya@Miyas-Mac-mini ~ % openclaw config set models.mode replace
🦞 OpenClaw 2026.4.15 (041266a) — Open source means you can see exactly how I judge your config.
Config overwrite: /Users/miya/.openclaw/openclaw.json (sha256 891e67a45f3b4fbad14288fe3f8efe2050b99a4edfcec345f277cd0634e32843 -> 708ede79385464ad92c351e65968d082d8c2e4dacfad3c3eb792343b5657ff0f, backup=/Users/miya/.openclaw/openclaw.json.bak)
Updated models.mode. Restart the gateway to apply.
miya@Miyas-Mac-mini ~ % openclaw gateway restart
🦞 OpenClaw 2026.4.15 (041266a) — I can't fix your code taste, but I can fix your build and your backlog.
Restarted LaunchAgent: gui/501/ai.openclaw.gateway
miya@Miyas-Mac-mini ~ % openclaw models list --provider ollama
🦞 OpenClaw 2026.4.15 (041266a) — I've survived more breaking changes than your last three relationships.
Model Input Ctx Local Auth Tags
ollama/kimi-k2.6:cloud text+image 250k no yes default,configured
miya@Miyas-Mac-mini ~ % openclaw models status
🦞 OpenClaw 2026.4.15 (041266a) — The lobster in your shell. 🦞
Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : ollama/kimi-k2.6:cloud
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (0) : -
Configured models (1): ollama/kimi-k2.6:cloud
Auth overview
Auth store : ~/.openclaw/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (0): -
- ollama effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | ollama:default=56e33853...2EFQaEJ7 | models.json=56e33853...2EFQaEJ7 | source=models.json: ~/.openclaw/agents/main/agent/models.json
OAuth/token status
- none
Okay, at this point it really looks like a stale generated models.json problem.
Your openclaw.json is right, models.mode is now replace, but runtime is still reading:
source=models.json: ~/.openclaw/agents/main/agent/models.json
Next step, move the generated file aside and let OpenClaw rebuild it
mv ~/.openclaw/agents/main/agent/models.json ~/.openclaw/agents/main/agent/models.json.bak
openclaw gateway restart
openclaw models list --provider ollama
openclaw models status
That is the cleanest next move here.
Why
models.jsonis generated state- your real source-of-truth config is
~/.openclaw/openclaw.json - if the generated file got stuck, moving it aside forces regeneration on restart
Expected result after restart
You should finally see all 3 configured models:
ollama/kimi-k2.6:cloudollama/gemma4:31b-cloudollama/qwen3.5:397b-cloud
If it still only shows Kimi after this
Then I’d call it a bug in 2026.4.15 and file it here with the exact outputs you already collected:
https://github.com/openclaw/openclaw/issues
You’re very close, this looks like stale state now, not bad config.
},
"workspace": "/Users/miya/.openclaw/workspace",
"models": {
"ollama/kimi-k2.6:cloud": {}
},
"model": {
"primary": "ollama/kimi-k2.6:cloud"
}
},i
is it due to this here?
Yes, that is very likely the blocker.
This part:
"models": {
"ollama/kimi-k2.6:cloud": {}
}
means agents.defaults.models is acting as a model allowlist, and right now it only allows Kimi.
So even though your Ollama provider has 3 configured models, the agent is only allowed to use 1.
Fix
Either:
Option A, add the other 2 models to that allowlist
models: {
"ollama/kimi-k2.6:cloud": {},
"ollama/gemma4:31b-cloud": {},
"ollama/qwen3.5:397b-cloud": {}
}
Option B, remove agents.defaults.models completely
Only do this if you don’t want an allowlist.
CLI version of the fix
openclaw config set agents.defaults.models '{
"ollama/kimi-k2.6:cloud": {},
"ollama/gemma4:31b-cloud": {},
"ollama/qwen3.5:397b-cloud": {}
}' --strict-json
openclaw gateway restart
openclaw models list --provider ollama
openclaw models status
If you want to keep it locked to only those 3, Option A is the right one.
Getting an error since Kimi 2.6
Exact error:
Validation failed for tool "exec":
- command: must have required property 'command'
Received arguments:
{}
What it means: The tool call is being made with empty {} arguments instead of the required parameters like {command: "echo test"}.
This happens because: Kimi's backend returns tool calls in a format that OpenClaw can't parse — so OpenClaw treats the response as plain text and passes empty {} to the tool handler.
Same error for all tools: read, exec, web_search, etc.
Yep, that diagnosis looks very plausible.
Received arguments: {} usually means the tool name made it through, but the tool payload did not, so OpenClaw validates an empty object and rejects it.
That matches the same family of Kimi tool-call bugs people have been hitting on Ollama/Kimi paths:
So I would treat ollama/kimi-k2.6:cloud as not tool-reliable right now.
Practical workaround
Use a different model for tool-heavy sessions, for example one of the Ollama variants that is behaving better in your setup, and keep Kimi for plain chat only if needed.
If you want to escalate it
Please file a GitHub issue with:
openclaw --version- exact model id:
ollama/kimi-k2.6:cloud - whether you’re using local Ollama with cloud access or direct cloud
- one minimal repro prompt
- the exact validation error you pasted
Official bug path:
https://github.com/openclaw/openclaw/issues
That’s a good catch, by the way. The empty {} detail is the important clue.
I’m not using Kimi via ollama using Kimi code directly via api
Ah, got it, thanks, that’s a different bug path then.
If you’re using Kimi Coding directly via API (kimi/kimi-code), this sounds much closer to the known empty {} / missing required params validation issue, not the Ollama Kimi cloud issue.
Related issue:
https://github.com/openclaw/openclaw/issues/55005
So I’d frame it like this:
- not Ollama tool-routing
- more likely Kimi Code tool-call construction / retry behavior
- symptom matches exactly: repeated tool calls with empty
{}and validation failures
What I’d check next
- confirm the exact model ref is:
kimi/kimi-code
- run:
/model status
That will show the active provider path / endpoint.
- include in the bug report:
openclaw --version- exact model ref
/model status- one minimal repro prompt