OpenClaw Workspace Import
MindRoom supports a practical OpenClaw-compatible workflow focused on workspace portability:
- Reuse your OpenClaw markdown files (
SOUL.md,AGENTS.md,USER.md,MEMORY.md, etc.) after copying them into the agent's canonical MindRoom workspace - Use the
openclaw_compatpreset to enable a native MindRoom tool bundle - Use MindRoom's unified memory backend (
memory.backend) for persistence - Optionally add semantic recall over workspace files via knowledge bases
What this is (and is not)
MindRoom is compatible with OpenClaw workspace patterns, not a full OpenClaw gateway clone.
Works well:
- File-based identity and memory documents
- OpenClaw-inspired behavior and instructions
- Native MindRoom tool bundle via the
openclaw_compatpreset - Native Matrix messaging via the
matrix_messagetool in the preset bundle - Native sub-agent session orchestration via the
subagentstool in the preset bundle
Not included:
- OpenClaw gateway control plane
- Device nodes and canvas platform tools
- OpenClaw alias-name wrapper APIs like
exec,process,web_search, andweb_fetch ttsandimagealiases (use MindRoom's native TTS/image tools directly)- Heartbeat runtime - schedule heartbeats via
cron/schedulerinstead
The openclaw_compat preset
openclaw_compat is a config macro, not a runtime toolkit.
Config.get_agent_tools expands it into native MindRoom tools and dedupes while preserving order.
Preset expansion:
shellcodingduckduckgowebsitebrowserschedulersubagentsmatrix_messageattachments(auto-implied bymatrix_messageviaIMPLIED_TOOLS, not listed in the preset directly)
Memory is not a separate OpenClaw subsystem in MindRoom. It uses the normal MindRoom memory backend.
Drop-in config
Use this as a starting point for importing an OpenClaw workspace into MindRoom's canonical agent workspace:
agents:
openclaw:
display_name: OpenClawAgent
include_default_tools: false
learning: false
memory_backend: file
model: opus
role: OpenClaw-style personal assistant with persistent file-based identity and memory.
rooms: [personal]
instructions:
- You wake up fresh each session with no memory of previous conversations. Your context files are already loaded into your system prompt.
- Important long-term context is persisted by the configured MindRoom memory backend. If something must be preserved exactly, write/update the relevant file directly.
- MEMORY.md is curated long-term memory; daily files are short-lived notes and logs.
- Ask before external/public actions and destructive operations.
- Before answering prior-history questions, search memory files first with `search_knowledge_base` when configured.
context_files:
- SOUL.md
- AGENTS.md
- USER.md
- IDENTITY.md
- TOOLS.md
- HEARTBEAT.md
knowledge_bases: [openclaw_memory]
tools:
- openclaw_compat
- python
skills:
- transcribe
knowledge_bases:
openclaw_memory:
path: ${MINDROOM_STORAGE_PATH}/agents/openclaw/workspace/memory
watch: true
memory:
file:
max_entrypoint_lines: 200
auto_flush:
enabled: true
When using memory_backend: file, the file backend automatically loads MEMORY.md from the canonical workspace root, so there is no need to add it to context_files.
If you switch to mem0, add MEMORY.md back to context_files if you still want it preloaded.
The openclaw_compat preset already expands to native shell, coding, duckduckgo, website, browser, scheduler, sub-agent orchestration, and matrix_message tools (attachments is auto-implied by matrix_message), so listing those tools individually is not necessary.
Copy or sync your OpenClaw files into agents/openclaw/workspace/ before using this config so context_files, file memory, and openclaw_memory all read the same live workspace.
Recommended workspace layout
mindroom_data/
└── agents/
└── openclaw/
└── workspace/
├── SOUL.md
├── AGENTS.md
├── USER.md
├── IDENTITY.md
├── MEMORY.md
├── TOOLS.md
├── HEARTBEAT.md
└── memory/
├── YYYY-MM-DD.md
└── topic-notes.md
Unified memory behavior
OpenClaw-compatible agents use the same memory system as every other MindRoom agent:
memory.backend: mem0for vector memory (global default)memory.backend: filefor file-first memory (global default)memory_backend: fileon an individual agent to override the global default- agents that use file memory store it under
agents/<name>/workspace/, not under the shared globalmemory.file.pathtree context_filesand OpenClaw-style knowledge paths should point into that same canonical workspace if you want one consistent file-first workflow- optional
knowledge_basesfor semantic recall over arbitrary workspace folders
Recommended for OpenClaw-style setups: memory_backend: file with the canonical workspace layout and memory.auto_flush.enabled: true.
Context Management
MindRoom includes built-in context controls for OpenClaw-style agents:
- Conversation history is stored in Agno sessions, but MindRoom decides what replay summary and raw history messages are injected into each run. Control replay depth with
num_history_runsornum_history_messages, and optional auto-compaction withcompaction(see Agents). - Preloaded role context from
context_filesis hard-capped bydefaults.max_preload_chars(configured inconfig.yamlunderdefaults). When the combined context exceeds this limit, chunks are trimmed from the end and a truncation marker is inserted.
Known limitations
Threading model: MindRoom responds in Matrix threads by default. OpenClaw uses continuous room-level conversations. To match this behavior on mobile or via bridges (Telegram, Signal, WhatsApp), set thread_mode: room on the agent - this sends plain room messages with a single persistent session per room instead of creating threads.
Privacy guidance
context_files apply to all rooms for that agent. If MEMORY.md is sensitive:
- Keep the agent in private rooms only, or
- Split into private/public agents and exclude sensitive files from the public agent
Skills
For details on skill eligibility gating (openclaw.os, openclaw.requires, openclaw.always) and command dispatch (command-dispatch, command-tool, command-arg-mode), see Skills.
Skills are loaded from ~/.mindroom/skills/<name>/. To use an OpenClaw skill like transcribe, copy the skill directory from your OpenClaw workspace:
Set required environment variables (for example WHISPER_URL) as defined in the skill's SKILL.md frontmatter.