Short version: I don’t see a supported “approve this symlink across workspaces” setting for Read/Write/Edit. Those file tools intentionally canonicalize paths and block symlink/hardlink aliases that escape the tool root. The similar-looking allowSymlinkCommand knob is for provider secret exec command paths, not workspace file tools.
The thing I’d check first in your config is:
openclaw config get tools.fs.workspaceOnly
openclaw config get tools.exec.applyPatch.workspaceOnly
Even with sandbox mode off / YOLO, tools.fs.workspaceOnly: true fences filesystem tools to the agent workspace, and sibling symlinks will trip errors like path alias escape blocked / Symlink escapes sandbox root. Setting it false is all-or-nothing host filesystem access, not selective symlink approval, so I’d only use that if you really want the file tools to be unconstrained.
For the workspace layout: avoid sibling workspace symlinks. Use real descendants of the root each agent is allowed to see. Practical patterns:
- Copy or generate a bounded
shared/ folder into each agent workspace when the shared files are safe for that agent.
- Put shared knowledge in skills/memory/docs instead of filesystem symlinks if it’s mostly read-only context.
- If you do enable sandboxing later, use explicit Docker binds like
/host/shared:/shared:ro for shared resources; bind validation still resolves symlinks and blocks escapes.
Docs I checked: https://docs.openclaw.ai/concepts/agent-workspace, https://docs.openclaw.ai/concepts/multi-agent, https://docs.openclaw.ai/gateway/sandboxing#custom-bind-mounts, and the FAQ sandboxing section: https://docs.openclaw.ai/help/faq#sandboxing-and-memory
If you’re getting this while tools.fs.workspaceOnly is false and no sandbox is active, that smells like a bug or an unexpected tool wrapper. In that case I’d file an issue with the relevant agent config snippet plus one full tool error: https://github.com/openclaw/openclaw/issues