Customize Your Workspace

Personalize identity, memory, tools, and agent behavior — step by step.

What ships in the DB

Every v1.3+ release includes these workspace='openclaw' nodes out of the box:

TableNodesWhat's there
Soul4Prime Directive · Identity (placeholder) · Safety · Heartbeat Protocol
Memory2Principal (placeholder) · Infrastructure (placeholder)
AgentConfig9Every Session · Delegation · Safety · Heartbeats · Memory · TOON · Search Resilience · Schema Rules · Path Aliases
Tool21All standard OpenClaw tools · sessions_spawn=true
QueryMetricsgrowsAuto-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.

1

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.

2

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'"
3

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/'"
4

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.

5

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:

  1. Re-run your seed script after upgrade — keeps everything reproducible (recommended)
  2. 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.json

See Upgrading in the Admin Guide for the full workflow.

Quick reference — node IDs shipped in default workspace

IDTypeSection / Domain / Key
soul-openclaw-prime-directiveSoulPrime Directive
soul-openclaw-identitySoulIdentity
soul-openclaw-safetySoulSafety
soul-openclaw-heartbeatSoulHeartbeat Protocol
mem-openclaw-principalMemoryPrincipal
mem-openclaw-infrastructureMemoryInfrastructure
agentcfg-openclaw-every-sessionConfigEvery Session
agentcfg-openclaw-delegationConfigDelegation
agentcfg-openclaw-safetyConfigSafety
agentcfg-openclaw-heartbeatsConfigHeartbeats
agentcfg-openclaw-memoryConfigMemory
agentcfg-openclaw-toonConfigToken Optimization — TOON
agentcfg-openclaw-search-resilienceConfigSearch Resilience
agentcfg-openclaw-schema-rulesConfigSchema Rules
agentcfg-openclaw-path-aliasesConfigPath Aliases
tool-sessions-spawnToolsessions_spawn (available=true)
+ 20 other tool-* nodes — all standard OpenClaw tools