What ships in the DB
Every v1.3+ release includes these workspace='openclaw' nodes out of the box:
| Table | Nodes | What's there |
|---|---|---|
| Soul | 4 | Prime Directive · Identity (placeholder) · Safety · Heartbeat Protocol |
| Memory | 2 | Principal (placeholder) · Infrastructure (placeholder) |
| AgentConfig | 9 | Every Session · Delegation · Safety · Heartbeats · Memory · TOON · Search Resilience · Schema Rules · Path Aliases |
| Tool | 21 | All standard OpenClaw tools · sessions_spawn=true |
| QueryMetrics | grows | Auto-recorded by query.js on every GRAPH directive resolution — view with node sync-metrics.mjs |
These work out of the box. The placeholders tell you exactly what to fill in.
Verify the defaults loaded
node ladybugdb/scripts/query.js --cypher \ "MATCH (s:Soul {workspace:'openclaw'}) RETURN s.section, s.priority ORDER BY s.priority" node ladybugdb/scripts/query.js --cypher \ "MATCH (a:AgentConfig {workspace:'openclaw'}) RETURN a.key ORDER BY a.id"
You should see 4 Soul sections and 9 AgentConfig keys. If not, run node ladybugdb/scripts/seed-default-workspace.mjs to seed them.
Update your Identity
The Identity soul node ships as a placeholder. Replace it with your agent's name and role:
node ladybugdb/scripts/query.js --cypher \
"MATCH (s:Soul {id:'soul-openclaw-identity'}) \
SET s.content = 'Name: Aria | Role: DevOps automation agent | Emoji: 🛡️ | Workspace: openclaw'"Fill in your Principal and Infrastructure
These Memory nodes tell the agent who it works for and what environment it operates in.
# Principal — who you're helping node ladybugdb/scripts/query.js --cypher \ "MATCH (m:Memory {id:'mem-openclaw-principal'}) \ SET m.content = 'Name: Alice | Timezone: America/Chicago | Channel: signal | UUID: uuid:...'" # Infrastructure — your environment facts node ladybugdb/scripts/query.js --cypher \ "MATCH (m:Memory {id:'mem-openclaw-infrastructure'}) \ SET m.content = 'DB: ~/myapp/ladybugdb/db/alphaone-skills.db | Node: /usr/local/bin/node | Workspace: ~/.openclaw/workspace/'"
Add more Memory domains
Create additional memory nodes for any factual context your agent needs:
node ladybugdb/scripts/query.js --cypher \
"CREATE (m:Memory {
id: 'mem-openclaw-api-keys',
workspace: 'openclaw',
domain: 'API Keys',
content: 'Brave Search: \$BRAVE_API_KEY | xAI: \$XAI_API_KEY (env vars in shell profile)',
timestamp: '2026-01-01'
})"Store API keys as environment variable references, not raw values. The agent reads them from the shell at runtime.
Restrict or expand tools
Disable tools to create a restricted agent, or re-enable them for a capable one:
# Disable sub-agent delegation for a restricted agent node ladybugdb/scripts/query.js --cypher \ "MATCH (t:Tool {id:'tool-sessions-spawn'}) SET t.available = false, t.notes = 'BLOCKED — standalone agent'" # Re-enable it node ladybugdb/scripts/query.js --cypher \ "MATCH (t:Tool {id:'tool-sessions-spawn'}) SET t.available = true"
Running multiple workspaces (fleet setup)
For an 8-agent fleet, give each agent its own workspace ID:
# Seed separate workspaces from the default template node ladybugdb/scripts/seed-default-workspace.mjs --workspace intel-agent node ladybugdb/scripts/seed-default-workspace.mjs --workspace code-agent node ladybugdb/scripts/seed-default-workspace.mjs --workspace ops-agent # Each agent's workspace stubs point to its own workspace # ~/.openclaw/workspace-intel/SOUL.md: # <!-- GRAPH: MATCH (s:Soul) WHERE s.workspace = 'intel-agent' ... -->
See Fleet Management in the Admin Guide for the full topology and per-workspace tool overrides.
Forking the seed script
For full control, fork seed-default-workspace.mjs:
cp ladybugdb/scripts/seed-default-workspace.mjs ladybugdb/scripts/seed-myagent.mjs
Edit the SOUL, MEMORY, AGENT_CONFIG, and TOOLS arrays at the top of the file, then:
node ladybugdb/scripts/seed-myagent.mjs --workspace myagent --reset
--reset drops and recreates the tables before seeding — use for a clean slate. Existing workspace nodes will be deleted.
Keeping your customizations across DB upgrades
When you upgrade to a new LadybugDB release (install.sh), the DB is replaced. Your workspace nodes live in the DB, so they'll be gone.
Two strategies:
- Re-run your seed script after upgrade — keeps everything reproducible (recommended)
- Dump your workspace nodes before upgrading:
node ladybugdb/scripts/query.js --cypher \
"MATCH (s:Soul {workspace:'openclaw'}) RETURN s.id, s.section, s.content, s.priority" \
> my-workspace-backup.jsonSee Upgrading in the Admin Guide for the full workflow.
Quick reference — node IDs shipped in default workspace
| ID | Type | Section / Domain / Key |
|---|---|---|
soul-openclaw-prime-directive | Soul | Prime Directive |
soul-openclaw-identity | Soul | Identity |
soul-openclaw-safety | Soul | Safety |
soul-openclaw-heartbeat | Soul | Heartbeat Protocol |
mem-openclaw-principal | Memory | Principal |
mem-openclaw-infrastructure | Memory | Infrastructure |
agentcfg-openclaw-every-session | Config | Every Session |
agentcfg-openclaw-delegation | Config | Delegation |
agentcfg-openclaw-safety | Config | Safety |
agentcfg-openclaw-heartbeats | Config | Heartbeats |
agentcfg-openclaw-memory | Config | Memory |
agentcfg-openclaw-toon | Config | Token Optimization — TOON |
agentcfg-openclaw-search-resilience | Config | Search Resilience |
agentcfg-openclaw-schema-rules | Config | Schema Rules |
agentcfg-openclaw-path-aliases | Config | Path Aliases |
tool-sessions-spawn | Tool | sessions_spawn (available=true) |
| + 20 other tool-* nodes — all standard OpenClaw tools | ||