Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Build high-performing OpenClaw agents end-to-end with comprehensive safety features. Use when you want to design a new agent (persona + operating rules) and generate required OpenClaw workspace files (SOUL.md, IDENTITY.md, AGENTS.md, USER.md, HEARTBEAT.md, optional MEMORY.md + memory/YYYY-MM-DD.md). Includes anti-deadlock protection, timeout handling, error recovery, loop breaker, message overload protection, token limit protection, retry mechanism, health check, degraded mode, monitoring & logg
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 286% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 140% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 241% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 215% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 311% | 0% |
Design and generate a complete OpenClaw agent workspace with strong defaults and advanced-user-oriented clarifying questions.
bash# 1. Read skill documentation Read SKILL.md and references/openclaw-workspace.md # 2. Answer interview questions Provide answers for: job statement, surfaces, autonomy level, prohibitions, memory, tone, tool posture # 3. Generate workspace files The skill will create: IDENTITY.md, SOUL.md, AGENTS.md, USER.md, HEARTBEAT.md # 4. Verify and test Run acceptance tests to validate behavior
references/openclaw-workspace.mdreferences/templates.mdreferences/architecture.mdAsk only what you need; keep it tight. Prefer multiple short rounds over one giant questionnaire.
Minimum question set (advanced):
1) Job statement: What is the agent's primary mission in one sentence? 2) Surfaces: Which channels (Telegram/WhatsApp/Discord/iMessage/Feishu)? DM only vs groups? 3) Autonomy level:
4) Hard prohibitions: Any actions the agent must never take? 5) Memory: Should it keep curated MEMORY.md? What categories matter? 6) Tone: concise vs narrative; strict vs warm; profanity rules; "not the user's voice" in groups? 7) Tool posture: tool-first vs answer-first; verification requirements.
Error recovery:
Generate these files (minimum viable OpenClaw agent):
IDENTITY.mdSOUL.mdAGENTS.mdUSER.mdHEARTBEAT.md (often empty by default)BOOTSTRAP.md (for first-run guidance)Optionals:
MEMORY.md (private sessions only)memory/YYYY-MM-DD.md seed (today) with a short "agent created" entryTOOLS.md starter (if the user wants per-environment notes)File creation commands:
bash# Create workspace directory mkdir -p /path/to/workspace/memory # Create files (use write tool with correct parameters) # Important: Use `file_path` parameter, not `path` # Example: # write: # file_path: /path/to/workspace/IDENTITY.md # content: "content here" # For large files (>2000 bytes), consider using file-writer skill # or split content into smaller chunks
Note: If you encounter "Missing required parameter: path (path or file_path)" error, ensure you're using file_path parameter in your write tool calls.
Error handling:
Error recovery:
Use templates from references/templates.md but tailor content to the answers.
⚠️ CRITICAL WARNING: Channel Conflict Prevention
NEVER bind a new agent to the same channel as the main agent!
This will cause the new agent to hijack the main agent's channel, making it impossible to communicate with the main agent.
Before registering, check existing agent bindings:
bash# List all agents and their bindings openclaw agents list # Check which channels are already in use openclaw channels list
Channel binding rules:
/agentname command binding for testingBackup configuration first:
bash# Backup openclaw.json before modification cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.backup
Register the agent:
bash# Add agent to OpenClaw configuration openclaw agents add <agent-name> --workspace /path/to/workspace # Example 1: Use independent workspace (recommended - each agent has its own workspace) openclaw agents add my-assistant --workspace ~/.openclaw/workspace-my-assistant # Example 2: Use default workspace (for single agent setup only) openclaw agents add my-assistant --workspace ~/.openclaw/workspace
Channel binding options:
Feishu:
/agentname in Feishu messages (for testing)Telegram:
WhatsApp:
Discord:
iMessage:
Authentication configuration (if needed):
bash# Edit auth-profiles.json for external service access # Location: ~/.openclaw/auth-profiles.json # Example structure: { "feishu": { "appId": "cli_xxxxx", "appSecret": "xxxxx" }, "telegram": { "botToken": "your-bot-token" } }
Model provider configuration (optional):
If the new agent needs to use custom model providers, you need to configure API keys:
Step 1: Check main agent's model configuration
bash# View main agent's model configuration cat ~/.openclaw/agents/main/agent/models.json # View global model providers cat ~/.openclaw/openclaw.json | grep -A 20 "providers"
Step 2: Choose configuration approach
Option A: Use same model as main agent (recommended)
Option B: Configure new model provider
Step 3: Configure model provider (if needed)
bash# Add provider to openclaw.json # Location: ~/.openclaw/openclaw.json # Example structure: { "models": { "providers": { "custom-provider": { "baseUrl": "https://api.example.com/v1", "apiKey": "key_id:secret", "api": "openai-completions", "models": [...] } } } }
Step 4: Configure agent-specific auth (if needed)
bash# Edit auth-profiles.json for the agent # Location: ~/.openclaw/agents/<agent-name>/agent/auth-profiles.json # Example structure: { "custom-provider": { "apiKey": "key_id:secret", "baseUrl": "https://api.example.com/v1" } }
⚠️ IMPORTANT: Model providers vs Channel providers
Do not confuse these two types of providers!
Common error:
⚠️ Agent failed before reply: No API key found for provider "provider-name"Solution:
⚠️ IMPORTANT: Never reuse credentials from main agent!
Error recovery:
openclaw agents add fails: Restores from backup and checks syntaxCommon errors and solutions:
Error 1: "No API key found for provider 'provider-name'"
Causes:
Solutions:
bash cat ~/.openclaw/openclaw.json | grep -A 10 "providers"
Error 2: "Agent failed before reply"
Causes:
Solutions:
bash ls -la /path/to/workspace/
bash openclaw agents list
bash openclaw agents test <agent-name>
bash openclaw logs --follow
Error 3: "Missing required parameter: path (path or file_path)"
Causes:
Solutions:
file_path instead of pathmarkdown write: file_path: /path/to/file.md content: "content here"
Error 4: "Could not find exact text in file"
Causes:
Solutions:
bash read /path/to/file.md
markdown <!-- SECTION_START --> [content] <!-- SECTION_END -->
Verification steps:
bash# 1. Check agent is registered openclaw agents list # 2. Verify workspace files exist ls -la /path/to/workspace/ # 3. Test agent can load (dry run) openclaw agents test <agent-name>
Success criteria:
openclaw agents list outputIf verification fails:
openclaw agents testError recovery:
Ensure the generated agent includes:
AGENTS.md.Error recovery:
Provide 5-10 short scenario prompts to validate behavior, e.g.:
Error recovery:
Automated test commands:
bash# Run OpenClaw's built-in agent tests openclaw agents test <agent-name> --verbose # Test workspace file syntax openclaw validate workspace /path/to/workspace # Test configuration loading openclaw config test
Test script example:
bash#!/bin/bash # test-agent.sh - Automated agent testing script AGENT_NAME="my-assistant" WORKSPACE="/path/to/workspace" echo "Testing agent: $AGENT_NAME" # Test 1: File existence echo "Test 1: Checking required files..." for file in IDENTITY.md SOUL.md AGENTS.md USER.md HEARTBEAT.md; do if [ ! -f "$WORKSPACE/$file" ]; then echo "❌ Missing: $file" exit 1 fi done echo "✅ All required files present" # Test 2: Configuration syntax echo "Test 2: Validating configuration..." openclaw agents list | grep -q "$AGENT_NAME" if [ $? -eq 0 ]; then echo "✅ Agent registered correctly" else echo "❌ Agent not found in configuration" exit 1 fi # Test 3: Agent loading echo "Test 3: Testing agent load..." openclaw agents test "$AGENT_NAME" if [ $? -eq 0 ]; then echo "✅ Agent loads successfully" else echo "❌ Agent failed to load" exit 1 fi echo "🎉 All tests passed!"
Error recovery:
For production deployments, the agent can run as a systemd service:
Service file example:
bash# Create systemd service file sudo tee /etc/systemd/system/openclaw-agent.service > /dev/null <<EOF [Unit] Description=OpenClaw Agent Service After=network.target [Service] Type=simple User=<your-username> WorkingDirectory=/home/<your-username>/.openclaw ExecStart=/usr/bin/node /home/<your-username>/.npm-global/lib/node_modules/openclaw/dist/index.js Restart=always RestartSec=10 [Install] WantedBy=multi-user.target [Install] WantedBy=multi-user.target EOF
Enable and start service:
bash# Reload systemd configuration sudo systemctl daemon-reload # Enable service to start on boot sudo systemctl enable openclaw-agent.service # Start service now sudo systemctl start openclaw-agent.service # Check status sudo systemctl status openclaw-agent.service # View logs sudo journalctl -u openclaw-agent.service -f
Error recovery:
When improving an existing agent, ask:
1) What are the top 3 failure modes you have seen? (loops, overreach, verbosity, etc.) 2) What autonomy changes do you want? 3) Any new safety boundaries? 4) Any changes to heartbeat behavior?
Then propose targeted diffs to:
SOUL.md (persona/tone/boundaries)AGENTS.md (operating rules + memory + delegation)HEARTBEAT.md (small checklist)Keep changes minimal and surgical.
Error recovery:
Other measured skills in the registry, with their headline benchmark lift.