OpenClaw Agent Creator
by @arch1904
Create new OpenClaw agents for Arch's multi-agent system. Use this skill when asked to create, add, or set up a new OpenClaw agent, or when adding an agent to the system defined in ~/.openclaw/. Covers the full lifecycle: directory creation, workspace files (SOUL.md, IDENTITY.md, etc.), openclaw.json config, Telegram routing (bindings + groups + mention patterns), cron job creation with proper prompt engineering, and gateway restart. Includes hard-won lessons from building the Wire (News) agent
clawhub install claw-agent-creator-architπ About This Skill
name: claw-agent-creator-archit description: > Create new OpenClaw agents for Arch's multi-agent system. Use this skill when asked to create, add, or set up a new OpenClaw agent, or when adding an agent to the system defined in ~/.openclaw/. Covers the full lifecycle: directory creation, workspace files (SOUL.md, IDENTITY.md, etc.), openclaw.json config, Telegram routing (bindings + groups + mention patterns), cron job creation with proper prompt engineering, and gateway restart. Includes hard-won lessons from building the Wire (News) agent β the first non-default agent in the system. Also use when modifying existing agent configs, adding cron jobs to agents, or debugging agent routing issues.
OpenClaw Agent Creator
Create and configure agents for Arch's OpenClaw multi-agent system at ~/.openclaw/.
System Context
archit, timezone America/Denver~/.openclaw/openclaw.json β agents.list[] for current roster~/.openclaw/implementation-docs/ for the Wire agent reference implementationAgent Creation Workflow
1. Gather Requirements
Before creating anything, clarify with Arch:
2. Stop the Gateway
openclaw gateway stop
MANDATORY before editing openclaw.json or cron/jobs.json. The gateway actively writes to jobs.json (updating job state after each cron run). Editing while the gateway runs causes race conditions and data loss.
3. Backup Config
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.backup.$(date +%Y%m%d%H%M%S)
4. Create Directories
mkdir -p ~/.openclaw/workspace-/memory
mkdir -p ~/.openclaw/agents//agent
NEVER reuse agentDir across agents β causes auth/session collisions.
5. Write Workspace Files
Use templates from assets/templates/ as starting points. Every agent needs:
| File | Purpose | Required |
|------|---------|----------|
| SOUL.md | Personality, role, responsibilities, behavioral modes | Yes |
| IDENTITY.md | Quick-reference card (name, role, emoji) | Yes |
| USER.md | About Arch (copy from any existing agent workspace) | Yes |
| AGENTS.md | Workspace rules (boot sequence, memory, safety) | Yes |
| HEARTBEAT.md | Periodic task checklist (or comment if disabled) | Yes |
SOUL.md is the most important file. Be specific about responsibilities. Include behavioral modes if the agent operates differently in different contexts (e.g., briefing mode vs chat mode).
6. Edit openclaw.json β Agent Entry
Add to agents.list[]. See references/config-schema.md for all valid fields.
Minimal entry:
{
"id": "",
"name": "",
"workspace": "/home/archit/.openclaw/workspace-",
"agentDir": "/home/archit/.openclaw/agents//agent",
"identity": { "name": "" }
}
Common additions:
"model" β Override the default model cascade. Exclude expensive models for worker agents."heartbeat": { "every": "0" } β Disable heartbeat for cron-only agents."groupChat": { "mentionPatterns": ["@", "@"] } β Enable @mentions in groups.Only ONE agent should have "default": true (currently Fossil). The default agent receives all unrouted messages.
7. Edit openclaw.json β Telegram Routing (if needed)
THREE separate config changes are required. Missing any one causes silent failures. See references/telegram-routing.md for the full explanation.
1. Group config in channels.telegram.groups:
"-100XXXXXXXXXX": { "requireMention": false }
2. Binding in bindings[]:
{ "agentId": "", "match": { "channel": "telegram", "peer": { "kind": "group", "id": "-100XXXXXXXXXX" } } }
3. Mention patterns on the agent entry (already done in step 6 if groupChat was added).
8. Create Cron Jobs (if needed)
Edit cron/jobs.json. Every cron job prompt MUST include:
FIRST: Resolve your Telegram group ID by running:
jq -r '.bindings[] | select(.agentId == "") | .match.peer.id' ~/.openclaw/openclaw.json
Use the output as the target for all Telegram messages in this task.
$(date '+%A, %B %d, %Y') after the preambletarget='' placeholder (resolved by the preamble)This self-healing pattern ensures cron jobs survive Telegram group ID migrations. See references/prompt-patterns.md for full patterns and references/telegram-routing.md for why this matters.
Critical: If copying files or prompts from another agent's workspace, grep for hardcoded paths and update them.
9. Restart Gateway and Verify
openclaw gateway start
Verify in logs:
agent registered: lane enqueue: lane=session:agent::... If messages to a Telegram group show skip: no-mention, the channels.telegram.groups config is missing (see references/bugs-and-pitfalls.md).
Reference Files
| File | When to Read | |------|-------------| | references/config-schema.md | When writing agent config or cron jobs | | references/telegram-routing.md | When setting up Telegram group routing | | references/prompt-patterns.md | When writing cron job prompts | | references/bugs-and-pitfalls.md | When debugging issues or before any config edit |
Template Files
Starter templates for workspace files are in assets/templates/. Copy and customize per agent.