I am running openclaw locally with ollama, using gemma4:e4b model.
Whenever model tries to call any tool, for example Notion skill, it gets a response "Tool notion not found"
Problem cannot be with this integration as even builtin integrations such as weather behave the same.
Only web search does work. How to resolve this issue?
#All Skills that get called end up returning "Tool x not found"
1 messages ยท Page 1 of 1 (latest)
This pattern usually means the model is hallucinating tool names, not that Notion/weather are broken. OpenClaw only has the tools exposed in the current session; a skill is instructions for how to use tools, it does not automatically create a tool literally named notion.
Two things to check first:
- Please paste your version:
openclaw --version
- If you configured Ollama manually, make sure you are using the native Ollama endpoint, not the OpenAI-compatible
/v1endpoint:
models: {
providers: {
ollama: {
api: "ollama",
baseUrl: "http://127.0.0.1:11434" // no /v1
}
}
}
Docs: https://docs.openclaw.ai/providers/ollama
If that is already correct, the practical fix is to switch to a stronger/tool-capable model for agent/tool use. Small or heavily quantized local models often output pseudo-tools like notion / weather instead of calling the actual OpenClaw tool schema. Web search working doesnโt disprove this โ itโs a simple/common tool name, while skills require the model to follow the loaded instructions and call the real underlying tools.
Useful checks:
openclaw status --all
openclaw models list --provider ollama
openclaw doctor
For security/tool-enabled agents, the docs also recommend larger models: https://docs.openclaw.ai/help/faq-models#can-i-use-self-hosted-models-llamacpp-vllm-ollama
openclaw --version
OpenClaw 2026.5.7 (eeef486)
Thanks โ 2026.5.7 is new enough, so Iโd focus on config/model behavior rather than an old-version bug.
The likely causes are:
- Ollama configured through
/v1
If your provider useshttp://127.0.0.1:11434/v1orapi: "openai", tool calling can break exactly like this. It should be native Ollama:
models: {
providers: {
ollama: {
api: "ollama",
baseUrl: "http://127.0.0.1:11434"
}
}
}
- Tool allowlist/profile only exposing web tools
Since web search works but everything else โbecomesโTool x not found, check whether you havetools.profile,tools.allow,tools.byProvider, or per-agenttools.allowrestricting the tool surface. Local onboarding may default totools.profile: "coding", which does not include messaging/integration tools.
Relevant docs: https://docs.openclaw.ai/gateway/config-tools
- The model is inventing tool names
notionandweatherare usually not literal tool names. Skills are instructions; the model still has to call the real exposed OpenClaw tools. Smaller/local models often emit pseudo-tools likenotioninstead of following the actual schema.
Please paste the relevant redacted parts of:
openclaw status --all
and especially any models.providers.ollama, agents.defaults.model, tools.*, or agents.list[].tools config. That should tell us whether itโs endpoint/config vs model capability.
openclaw status --all
๐ฆ OpenClaw 2026.5.7 (eeef486) โ iMessage green bubble energy, but for everyone.
โ
OpenClaw status --all
Overview
โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Item โ Value โ
โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Version โ 2026.5.7 โ
โ OS โ linux 6.8.0-106-generic (x64) โ
โ Node โ 22.14.0 โ
โ Config โ ~/.openclaw/openclaw.json โ
โ Dashboard โ http://127.0.0.1:18789/ โ
โ Tailscale exposure โ off โ
โ Channel โ stable (default) โ
โ Update โ pnpm ยท up to date ยท npm latest 2026.5.7 โ
โ Gateway โ local ยท ws://127.0.0.1:18789 (local loopback) ยท reachable 12ms ยท auth token โ
โ Security โ Run: openclaw security audit --deep โ
โ Gateway self โ unknown โ
โ Gateway service โ systemd user installed ยท enabled ยท running (pid 1882, state active) โ
โ Node service โ systemd user not installed โ
โ Agents โ 1 total ยท 0 bootstrapping ยท 1 active ยท 4 sessions โ
โ Secrets โ none โ
โโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Channels
โโโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Channel โ Enabled โ State โ Detail โ
That output got cut off right before the useful bits ๐
Can you paste the sections further down from status --all, especially anything mentioning:
Models/ active modelTools/ tool profile / allowlist- warnings
- config/runtime issues
If youโre comfortable, this is even better because it shows exactly the knobs involved:
cat ~/.openclaw/openclaw.json | sed -n '/models:/,/channels:/p'
cat ~/.openclaw/openclaw.json | sed -n '/tools:/,/agents:/p'
cat ~/.openclaw/openclaw.json | sed -n '/agents:/,/channels:/p'
redact tokens/API keys before posting.
Right now my top suspicion is still either baseUrl accidentally ending in /v1, or a restrictive tools.profile / tools.allow causing only web tools to be available.
โโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Telegram โ ON โ OK โ token config (sha256:643a46f1 ยท len 46) ยท accounts 1/1 โ
โโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Telegram accounts
โโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Account โ Status โ Notes โ
โโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ default โ OK โ token:config ยท credential available in gateway runtime โ
โโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Agents
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Agent โ Bootstrap file โ Sessions โ Active โ Store โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ main โ ABSENT โ 4 โ just now โ ~/.openclaw/agents/main/sessions/sessions.json โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Diagnosis (read-only)
Gateway connection details:
Gateway target: ws://127.0.0.1:18789
Source: local loopback
Config: /home/justkowal/.openclaw/openclaw.json
Bind: loopback
โ Config: /home/justkowal/.openclaw/openclaw.json
โ Secret diagnostics (0)
โ Restart sentinel: none
! Port 18789
Port 18789 is already in use.
- pid 1882 justkowal: /home/justkowal/.nvm/versions/node/v22.14.0/bin/node /home/justkowal/.nvm/versions/node/v22.14.0/lib/node_modules/openclaw/dist/index.js gateway --port 18789 (127.0.0.1:18789)
- Gateway already running locally. Stop it (openclaw gateway stop) or use a different port.
! Tailscale exposure: off ยท daemon unknown
โ Skills: 16 eligible ยท 0 missing ยท /home/justkowal/.openclaw/workspace
โ Plugin compatibility (none)
โ Channel issues (none)
Pasteable debug report. Auth tokens redacted.
Troubleshooting: https://docs.openclaw.ai/troubleshooting
โ
Still only the overview table โ the smoking gun will be lower in the report.
Try this narrower command and paste the output:
openclaw models status
openclaw models list --provider ollama
openclaw config get models.providers.ollama
openclaw config get agents.defaults.model
openclaw config get tools
openclaw config get agents.list
Redact secrets if any appear.
Also: if youโre testing Notion specifically, make sure the Notion skill docs say which underlying tool it expects. A skill named notion does not mean there will be a callable tool named notion; if the model literally calls notion, thatโs usually model/tool-schema failure.
No worries โ status --all is getting pasted in chunks and Discord is making this painful. The channel section still isnโt the part we need.
Please run these instead; theyโre much shorter:
openclaw models status
openclaw config get models.providers.ollama
openclaw config get tools
openclaw config get agents
If openclaw config get ... says the key doesnโt exist, thatโs useful too.
The specific thing Iโm looking for is whether your Ollama config says baseUrl: ".../v1" or api: "openai" โ that would break native Ollama tool calling. If the endpoint is clean, then weโll check whether tools.profile/tools.allow is narrowing the available tools so the model only sees web search.
Yep, this is still just the Telegram/channel section. Letโs avoid the giant status --all paste entirely.
Please run only these and paste the results in one code block:
openclaw models status
openclaw config get models.providers.ollama
openclaw config get tools
openclaw config get agents
What I need to confirm:
- Ollama must be
api: "ollama"withbaseUrl: "http://127.0.0.1:11434"โ not/v1. tools.profile/tools.allowmust not be limiting you to web-only tools.- Your active agent model should be the exact provider-prefixed ref, e.g.
ollama/gemma4:e4bor whateveropenclaw models list --provider ollamashows.
Once we see those four outputs, this should be quick to pin down.
That part is okay โ the Port 18789 is already in use warning just means the gateway is already running on the expected port. Not the cause.
The useful clue there is: Skills: 16 eligible ยท 0 missing, so OpenClaw can see the skill files. The failure is almost certainly happening at tool-call selection/execution, not skill discovery.
Please run these exact commands instead of more status --all chunks:
openclaw models status
openclaw config get models.providers.ollama
openclaw config get tools
openclaw config get agents
If you want a quick experiment while we wait: switch to a cloud/stronger model for one message and ask it to use the same skill/tool. If it works there, then gemma4:e4b is not reliably following OpenClawโs tool schema. Thatโs common with small local models: they invent calls like notion / weather even though the real exposed tools have different names.
Docs Iโm checking against:
https://docs.openclaw.ai/providers/ollama
https://docs.openclaw.ai/gateway/config-tools
๐ฆ OpenClaw 2026.5.7 (eeef486) โ If you can describe it, I can probably automate itโor at least make it funnier.
Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : ollama/gemma4:e4b
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (0) : -
Configured models (1): ollama/gemma4:e4b
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=marker(ollama-local) | models.json=OL...EY | source=models.json: ~/.openclaw/agents/main/agent/models.json | synthetic=plugin-owned | source=models.providers.ollama (synthetic local key)
OAuth/token status
- none
Good, this confirms the active model is ollama/gemma4:e4b and Ollama auth is being picked up. Nothing obviously wrong there.
Now we need the tool policy/config, because models status doesnโt show it. Please run:
openclaw config get models.providers.ollama
openclaw config get tools
openclaw config get agents
But based on what we have so far: if the error is literally Tool notion not found, that is probably the model calling a tool named notion. OpenClaw doesnโt expose skills as tools with the skill name. A Notion skill normally tells the model how to use some underlying tool/API/MCP/plugin; if the model calls notion, itโs not following the tool schema.
So the likely resolution is one of these:
- If your Ollama provider has
baseUrlending in/v1, change it to native Ollama (http://127.0.0.1:11434) and restart. - If
tools.profile/tools.allowis restrictive, expose the actual tools the skill needs. - If config is clean,
gemma4:e4bis just not reliable enough for OpenClaw tool use. Use a stronger model for tool-enabled sessions, or keep this local model for chat/simple web search only.
The โweb search worksโ part fits this: web_search is a real simple tool name. notion/weather are pseudo-tool names the model is inventing.
{
"baseUrl": "http://127.0.0.1:11434",
"apiKey": "OPENCLAW_REDACTED",
"api": "ollama",
"models": [
{
"id": "gemma4",
"name": "gemma4",
"api": "ollama",
"reasoning": true,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 128000,
"maxTokens": 8192,
"compat": {
"supportsUsageInStreaming": true
}
},
...
{
"id": "gemma4:e4b",
"name": "gemma4:e4b",
"api": "ollama",
"reasoning": true,
"input": [
"text",
"image"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 131072,
"maxTokens": 8192,
"compat": {
"supportsUsageInStreaming": true,
"supportsTools": true
}
},
Great โ your Ollama endpoint/config is correct. baseUrl has no /v1, api is ollama, and OpenClaw thinks gemma4:e4b supports tools.
Important nuance: compat.supportsTools: true only means OpenClaw will send tool schemas to the model. It does not guarantee the model will choose valid tool names. If it emits notion or weather, OpenClaw will reject it because those are not necessarily actual callable tool IDs.
Next check the tool surface:
openclaw config get tools
openclaw config get agents
If that looks normal, the fix is probably model-side: gemma4:e4b is not reliably doing OpenClaw tool calling. Try one turn with a stronger model and the same prompt. If it works there, youโve confirmed it.
Two practical paths:
- Use
gemma4:e4bfor chat/simple search, but use a stronger model for tool-heavy sessions. - Narrow the available tools/skills so the model has fewer schemas to choose from โ local models often degrade when the tool list is large.
Also for Notion specifically: make sure the skill actually installed/enabled the underlying integration/tool it expects. A skill file is instructions; it doesnโt automatically create a callable notion tool by name.
openclaw config get tools
openclaw config get agents
๐ฆ OpenClaw 2026.5.7 (eeef486) โ iMessage green bubble energy, but for everyone.
{
"profile": "coding",
"web": {
"search": {
"enabled": true,
"provider": "ollama"
}
}
}
๐ฆ OpenClaw 2026.5.7 (eeef486) โ Deployed locally, trusted globally, debugged eternally.
{
"defaults": {
"model": {
"primary": "ollama/gemma4:e4b"
},
"models": {
"ollama/gemma4:e4b": {}
},
"workspace": "/home/justkowal/.openclaw/workspace",
"maxConcurrent": 4,
"subagents": {
"maxConcurrent": 8
}
},
"list": [
{
"id": "main",
"tools": {
"alsoAllow": [
"browser",
"canvas",
"message",
"heartbeat_respond",
"gateway",
"nodes",
"agents_list",
"tts",
"dir_fetch",
"dir_list",
"file_fetch",
"file_write"
]
}
}
]
}
Aha, this config explains the โonly web search worksโ part.
You have:
"tools": {
"profile": "coding",
"web": { "search": { "enabled": true, "provider": "ollama" } }
}
coding includes web/search, filesystem/runtime/session/memory basics, but it is not the unrestricted tool surface. Optional/plugin/integration tools are not generally exposed unless you use full or explicitly allow the real tool IDs. Docs: https://docs.openclaw.ai/tools#tool-profiles
Fastest test fix:
openclaw config set tools.profile full
openclaw gateway restart
Then start a fresh session/chat and try again.
If you want to keep coding, you need to add the actual callable tool IDs via tools.alsoAllow / agents.list[].tools.alsoAllow. Skill names like notion or weather are not automatically tool IDs; skills are instruction files. So if the model literally calls notion, OpenClaw will say Tool notion not found unless some plugin actually registered a tool with that exact name and itโs allowed.
So likely resolution path:
- Set
tools.profile: "full"to confirm the tools are exposed. - If it works, tighten later with explicit
alsoAllowentries. - If it still calls fake tools like
notion/weather, thengemma4:e4bis hallucinating tool names despitesupportsTools: true; use a stronger model for tool-heavy tasks or reduce the skills/tool surface.
Sat 9 May - 18:09 ๎ฐ ~ ๎ฐ
@stiff garnet ๎ฐ openclaw config get tools
openclaw config get agents
๐ฆ OpenClaw 2026.5.7 (eeef486) โ Gateway onlineโplease keep hands, feet, and appendages inside the shell at all times.
{
"profile": "full",
"web": {
"search": {
"enabled": true,
"provider": "ollama"
}
}
}
๐ฆ OpenClaw 2026.5.7 (eeef486) โ No $999 stand required.
{
"defaults": {
"model": {
"primary": "ollama/gemma4:e4b"
},
"models": {
"ollama/gemma4:e4b": {}
},
"workspace": "/home/justkowal/.openclaw/workspace",
"maxConcurrent": 4,
"subagents": {
"maxConcurrent": 8
}
},
"list": [
{
"id": "main",
"tools": {
"alsoAllow": [
"browser",
"canvas",
"message",
"heartbeat_respond",
"gateway",
"nodes",
"agents_list",
"tts",
"dir_fetch",
"dir_list",
"file_fetch",
"file_write"
]
}
}
]
}
still notion nor weather didnt appear
Thatโs expected โ and itโs the key misunderstanding here.
weather and notion are skills, not necessarily tools. They will not show up in the tool list as callable tools unless a plugin/MCP integration registers an actual tool with that exact ID.
For example, the bundled weather skill does not create a weather tool. It teaches the model to use exec/curl against wttr.in. So the correct flow is roughly:
- model sees the
weatherskill - model reads/follows the skill instructions
- model calls
execwithcurl "wttr.in/..."
If the model instead calls a tool literally named weather, OpenClaw correctly says Tool weather not found.
Check skill visibility with:
openclaw skills list --eligible
openclaw skills info weather
openclaw skills info notion
If theyโre eligible, your config is now basically fine. The remaining issue is model behavior: gemma4:e4b is seeing skill names and treating them as tool names. Thatโs a local-model tool-following failure, not an integration failure.
Try this exact prompt in a fresh session:
Use the weather skill. Do not call a tool named weather. Read/follow the skill instructions and use the actual available tool it requires.
If it still calls weather, switch the tool-heavy agent to a stronger model. You can keep Gemma for normal chat/search, but skills that require following instructions + choosing the underlying tool usually need a more reliable tool-calling model.
openclaw skills list --eligible
openclaw skills info weather
๐ฆ OpenClaw 2026.5.7 (eeef486) โ Say "stop" and I'll stopโsay "ship" and we'll both learn a lesson.
Skills (16/16 ready)
โโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโ
โ Status โ Skill โ Description โ Source โ
โโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโค
โ โ ready โ ๐ฐ blogwatcher โ Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI. โ openclaw-bundled โ
โ โ ready โ ๐ฆ browser-automation โ Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts. โ openclaw-extra โ
โ โ ready โ ๐ธ camsnap โ Capture frames or clips from RTSP/ONVIF cameras. โ openclaw-bundled โ
โ โ ready โ ๐ฆ gh-issues โ Fetch GitHub issues, delegate fixes to subagents, open PRs, watch reviews, or run /gh-issues workflows. โ openclaw-bundled โ
โ โ ready โ ๐ github โ Use gh for GitHub issues, PR status, CI/logs, comments, reviews, releases, and API queries. โ openclaw-bundled โ
โ โ ready โ ๐ฎ gog โ Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs. โ openclaw-bundled โ
โ โ ready โ ๐ฆ healthcheck โ Audit and harden hosts running OpenClaw for SSH, firewall, updates, exposure, cron checks, and risk posture. โ openclaw-bundled โ
โ โ ready โ ๐ง himalaya โ Use himalaya to list, read, search, compose, reply, forward, and organize IMAP/SMTP email. โ openclaw-bundled โ
โ โ ready โ ๐ฆ node-connect โ Diagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures. โ openclaw-bundled โ
โ โ ready โ ๐ notion โ Notion API for creating and managing pages, databases, and blocks. โ openclaw-workspace โ
โ โ ready โ ๐ฆ skill-creator โ Create, edit, improve, tidy, review, audit, or restructure AgentSkills and SKILL.md files. โ openclaw-bundled โ
โ โ ready โ ๐ช taskflow โ Coordinate multi-step detached tasks as one durable TaskFlow job with owner context, state, waits, and child tasks. โ openclaw-bundled โ
โ โ ready โ ๐ฅ taskflow-inbox-triage โ Example TaskFlow pattern for inbox triage, intent routing, waiting on replies, and later summaries. โ openclaw-bundled โ
โ โ ready โ ๐งต tmux โ Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output. โ openclaw-bundled โ
โ โ ready โ ๐ฌ video-frames โ Extract frames or short clips from videos using ffmpeg. โ openclaw-bundled โ
โ โ ready โ โ weather โ Get current weather, rain, temperature, and forecasts for locations or travel planning. โ openclaw-bundled โ
๐ฆ OpenClaw 2026.5.7 (eeef486) โ I've seen your commit messages. We'll work on that together.
โ weather โ Ready
Get current weather, rain, temperature, and forecasts for locations or travel planning.
Details:
Source: openclaw-bundled
Path: ~/.nvm/versions/node/v22.14.0/lib/node_modules/openclaw/skills/weather/SKILL.md
Homepage: https://wttr.in/:help
Visible to model: yes
Available as command: yes
Requirements:
Binaries: โ curl
Tip: use openclaw skills search, openclaw skills install, and openclaw skills update for ClawHub-backed skills.
That confirms the skill is eligible, not missing. So the fix is not โinstall weatherโ โ itโs getting the model to use the skill correctly.
For weather, there is no weather tool. The bundled weather skillโs instructions say to run curl via exec, e.g. curl "wttr.in/London?format=3". So if the model calls weather, itโs doing the wrong thing.
Try a fresh session with this exact prompt:
What is the weather in London? Use the weather skill. Do not call a tool named weather; read/follow the weather SKILL.md and use exec/curl as instructed.
If it still returns Tool weather not found, thatโs a strong confirmation that gemma4:e4b is not reliable enough for skills/tool use in this setup.
You can also test whether the underlying tool surface is fine by asking:
Run this command with exec: curl -s "wttr.in/London?format=3"
Expected outcomes:
- If
execworks โ OpenClaw tools are exposed correctly; Gemma is misusing the skill name as a tool name. - If
execdoes not work โ tool policy/sandbox issue remains.
For Notion: same concept, but it depends on the Notion skill you installed. Run:
openclaw skills info notion
Look for what it actually expects underneath: MCP tool, browser, exec CLI, API script, etc. Unless a plugin registers a literal notion tool, Tool notion not found is expected when the model calls notion directly.
Practical recommendation: use a stronger cloud model for tool-heavy/skill-heavy sessions, or keep Gemma for simple chat/search and give very explicit prompts for skills. Local models can technically advertise tool support but still fail at schema-following. ๐ฆ
Yep โ that list actually reinforces the same thing: those are skills, not callable tool IDs.
Examples from your list:
githubskill โ uses theghCLI, usually throughexecgogskill โ uses the Google Workspace CLI, usually throughexechimalayaskill โ uses thehimalayaCLI, usually throughexecweatherskill โ usescurl, usually throughexec
So the model should not call tools named github, gog, himalaya, or weather. It should read/follow the skill instructions and call the actual available OpenClaw tool, most often exec.
Quick proof test:
Use exec to run: curl -s "wttr.in/London?format=3"
If that works, OpenClaw tools are fine. Your local model is treating skill names as tool names.
For gemma4:e4b, Iโd try either:
Use the weather skill, but do not call a tool named weather. The skill requires shell commands; call exec with curl.
or switch tool-heavy sessions to a stronger model. This is exactly the kind of failure smaller/local models hit: supportsTools: true means OpenClaw can send tool schemas, not that the model reliably follows skill instructions.
Yep, notion being โ ready means the skill instructions are available. It still doesnโt mean there is a callable tool named notion.
The important distinction:
- Skill name:
notion,weather,github, etc. - Actual callable OpenClaw tools:
exec,browser,web_fetch,message, etc.
Most bundled skills are โhow-to guidesโ for the model. For example weather says โuse curlโ, so the model should call exec, not weather.
For your workspace Notion skill, inspect what it tells the model to use:
openclaw skills info notion --json
or open the SKILL.md shown by that command. Look for whether it says to use an MCP tool, exec, browser, an API script, etc.
If the model literally calls notion, thatโs the bug: gemma4:e4b is confusing skill names with tool names. Try asking:
Use the notion skill. Do not call a tool named notion. First follow the notion SKILL.md instructions and call only the actual available OpenClaw tool it specifies.
If it still does Tool notion not found, switch this agent to a stronger tool-calling model. Your OpenClaw config looks basically correct now; this is model compliance, not skill discovery.
That output is good: it proves the weather skill is loaded and visible.
But Available as command: yes still does not mean โthere is a tool called weatherโ. It means the skill can be invoked as a user slash command, e.g. /weather ..., so OpenClaw can bias/load that skill for the turn.
The weather skillโs actual instructions are shell-based. It requires curl, and the model should call exec with something like:
curl -s "wttr.in/London?format=3"
So there are two separate tests:
- Direct command route:
/weather London
- Tool route:
Use exec to run: curl -s "wttr.in/London?format=3"
If #2 works but asking โwhatโs the weather?โ causes Tool weather not found, then OpenClaw is configured fine and gemma4:e4b is misinterpreting skill names as tool names.
For a skill to directly dispatch to a tool, its SKILL.md would need frontmatter like command-dispatch: tool plus command-tool: <actual_tool_name>. The bundled weather skill does not do that; itโs a model-instruction skill.
any way to modify the "system prompt" or similar to force the model to use the SKILL.md instead of tool calling directly?
Yes โ the best place is the workspace AGENTS.md, not a full system-prompt override.
Add something like this to:
~/.openclaw/workspace/AGENTS.md
## Skill/tool discipline for local models
Skills are not tools. Never call a tool whose name is only a skill name, such as `weather`, `notion`, `github`, `gog`, or `himalaya`, unless that exact tool appears in the available tools list.
When a request matches a skill:
1. Treat the skill name as instructions, not as a callable tool.
2. Read or follow the skillโs `SKILL.md` instructions first.
3. Call only real OpenClaw tools from the available tools list, such as `exec`, `browser`, `web_fetch`, `message`, etc.
For the weather skill specifically: use `exec` with `curl` as described in the weather SKILL.md. Do not call a tool named `weather`.
Then restart or start a fresh session:
openclaw gateway restart
Docs: AGENTS.md is loaded into the system prompt as operating instructions: https://docs.openclaw.ai/concepts/agent-workspace
I would not use agents.defaults.systemPromptOverride unless youโre doing controlled prompt experiments, because it replaces the whole OpenClaw-assembled prompt and can accidentally remove important tool/skill guidance. Docs: https://docs.openclaw.ai/gateway/config-agents#agentsdefaultssystempromptoverride
One more useful knob for local models: reduce the skill list so Gemma has fewer names to confuse as tools:
agents: {
defaults: {
skills: ["weather", "notion"]
}
}
Or per-agent:
agents: {
list: [
{ id: "main", skills: ["weather", "notion"] }
]
}
That wonโt force correctness, but with small/local models it often helps a lot.
still tried to use weather as a tool
Then Iโd stop trying to prompt-patch this model. If it still calls weather after explicit AGENTS.md instructions, gemma4:e4b is failing the tool/skill discipline step.
There are only three realistic fixes:
-
Use a stronger tool-calling model for skill/tool sessions
This is the recommended fix.supportsTools: truemeans the transport accepts tool schemas; it doesnโt mean the model reliably follows them. Your model is treating skill names as callable tools. -
Donโt rely on model-invoked skills with this model
Use direct commands/prompts instead, e.g.:
Use exec to run: curl -s "wttr.in/London?format=3"
If that works, OpenClaw is fine; the model is the weak link.
- Create real tools/wrappers for the names it insists on calling
For example, a plugin/MCP tool actually namedweatherornotion. Skills alone wonโt do that. Skills are instructions; plugins/MCP register tools.
For Notion specifically, if you want the model to call a Notion API tool, you need an actual Notion MCP/plugin/tool exposed and allowed. A workspace notion skill only tells the model how to use something; it does not create a notion tool.
So the short version: your config now looks okay. The behavior left is model non-compliance. Iโd switch this agentโs primary model for tool-heavy work, and ask in #old-models for current local-model/tool-calling recommendations.
no bigger model will fit efficiently into RX6700 XT
Yeah, that constraint is real. On an RX 6700 XT, โjust use a bigger modelโ may not be practical.
In that case Iโd avoid model-invoked skills for this workflow and use one of these patterns instead:
- Use slash-command style skill invocation where possible
Try:
/weather London
This may route the skill more directly than asking the model โwhatโs the weather?โ. If the model still has to reason through it, though, it may still fail.
- Make tiny wrapper scripts and call
execexplicitly
For weather, donโt ask it to use the weather skill. Ask:
Use exec to run: curl -s "wttr.in/London?format=3"
For Notion, create a small CLI/script like notion-create-page or notion-search, then prompt Gemma to call exec with that exact command. Local models often handle โrun this exact shell commandโ better than โchoose the right skill/tool abstractionโ.
-
Turn the integrations into real tools
If you want the model to callnotion, there must be an actual plugin/MCP tool namednotionexposed to OpenClaw. A skill alone wonโt create that. Skills are instructions; plugins/MCP register callable tools. -
Reduce ambiguity hard
Limit visible skills to only the one youโre testing, and keepAGENTS.mdstrict. It may still fail, but fewer skill names means fewer fake tool names for the model to invent:
agents: {
defaults: {
skills: ["weather"]
}
}
Then fresh session.
My honest read: with this model, the most reliable local setup is โexplicit command execution / wrapper scriptsโ, not general skill orchestration. For current local-model picks that fit your GPU, ask in #old-models โ people there will have fresher hands-on recs than I should pretend to know. Docs: https://docs.openclaw.ai/concepts/models#model-discussions-community-notes