Hi everyone! 👋 Running into a weird Tool Calling issue with local models on OpenClaw 2026.3.24. Would love some insights!
[Setup]
• OpenClaw 2026.3.24 (cff6dc9)
• UI: Web UI (default main agent)
• Model: Qwen-2.5-72B (via vLLM) & Gemma 4
[The Issue]
I created a custom helloworld skill. I defined capabilities in SKILL.md and added ["helloworld"] to the main agent in openclaw.json.
When I prompt it in the Web UI:
- The model correctly reads
SKILL.md(tool=read). - However, it seems to "miss" the
helloworldtool in its schema. Instead, it hallucinates and tries to use the built-inexectool to runnode index.js. - It gets blocked by the sandbox (
exec denied: allowlist miss).
[What I've Tried]
YAML indentation is correct. Cleared all .jsonl session files. Restarted the gateway multiple times. Still falls back to exec.
Has anyone successfully triggered custom local skills with local models without them resorting to the exec tool hallucination?
(I've attached my openclaw.json, SKILL.md, and the raw gateway logs below!) 🙏