#In Discord, getting: "I can't use the tool "read_file" here because it isn't available."
1 messages · Page 1 of 1 (latest)
That specific wording is a clue: read_file is not the OpenClaw tool name. The built-in filesystem tool is read under group:fs, and the coding tool profile includes it.
With OpenClaw 2026.5.12 + Ollama + Gemma4:e4b, my first suspect is the local model/tool-calling side, not SOUL.md itself. Smaller local models often invent tool names like read_file / file_read instead of calling the actual tool schema.
Things to check:
- Make sure your agent has filesystem tools enabled:
{
tools: {
profile: "coding"
// or: allow: ["group:fs"]
}
}
- If you configured Ollama manually, use the native Ollama API URL, not the OpenAI-compatible
/v1URL:
{
models: {
providers: {
ollama: {
baseUrl: "http://127.0.0.1:11434",
api: "ollama"
}
}
}
}
Docs: https://docs.openclaw.ai/providers/ollama
- If the tools are enabled and it still says
read_file, try a stronger/tool-reliable model for agent work. The local-model docs call out that small/strict local backends can choke on OpenClaw's tool schemas:
https://docs.openclaw.ai/gateway/local-models
Useful diagnostics to paste if it keeps happening:
openclaw status --all
openclaw models status
openclaw logs --follow
For this exact task, you can also try wording it as: “Use the read tool to read SOUL.md.” If that fixes it, it confirms the model was guessing the wrong tool name.
Good, that means the first issue is fixed: it is calling read now. Read File: SOUL.md failed usually means the file is not visible from the agent’s active workspace/sandbox, or the log has a path/permission error hidden behind the UI message.
Please check these on the machine running the gateway:
openclaw --version
openclaw status --all
ls -la ~/.openclaw/workspace/SOUL.md
openclaw logs --follow
Then ask it again and look for the full read error in the logs. The exact bit we need is usually something like ENOENT, outside workspace, permission denied, or a sandbox path.
Two likely causes:
- Your agent workspace is not
~/.openclaw/workspace, soSOUL.mdexists somewhere else or not at all. Checkagents.defaults.workspace/agents.list[].workspace. - Sandboxing/workspace access is hiding the host workspace. If you have sandbox mode on,
workspaceAccess: "none"gives the agent a separate sandbox workspace, so hostSOUL.mdmay not be there.roshould mount the agent workspace read-only.
Relevant docs:
https://docs.openclaw.ai/gateway/configuration-reference#agentsdefaultsworkspace
https://docs.openclaw.ai/gateway/configuration-reference#agentsdefaultssandbox
https://docs.openclaw.ai/gateway/troubleshooting
Also: SOUL.md is normally injected into the agent’s startup context, so if your goal is “tell me what SOUL.md says,” it may already know it. But if you specifically want the filesystem read tool to work, the logs + workspace path are the next evidence we need.
-rw-r--r--@ 1 cmhippyhf2 staff 1806 May 8 14:07 /Users/cmhippyhf2/.openclaw/workspace/SOUL.m
That path shows SOUL.m, not SOUL.md.
If that is the actual filename, the read failed because the agent asked for a file that does not exist. Check with:
ls -lb /Users/cmhippyhf2/.openclaw/workspace/SOUL*
If it really is SOUL.m, rename it:
mv /Users/cmhippyhf2/.openclaw/workspace/SOUL.m /Users/cmhippyhf2/.openclaw/workspace/SOUL.md
Then ask again: “Use the read tool to read SOUL.md”.
The @ on macOS just means extended attributes are present; it is probably not the blocker here. The missing d is the suspicious bit.
Sorry. -rw-r--r--@ 1 cmhippyhf2 staff 1806 May 8 14:07 /Users/cmhippyhf2/.openclaw/workspace/SOUL.md
No problem. That file exists and the basic permissions look readable, so the next suspects are “the running agent is using a different workspace/user” or “sandbox path mapping.”
Can you paste these outputs?
openclaw config get agents.defaults.workspace
openclaw config get agents.list --json
openclaw config get agents.defaults.sandbox --json
openclaw status --all
Also, right after reproducing the failed read, grab the actual log line:
openclaw logs --follow