Install
openclaw skills install agent-deployDeploy a new isolated OpenClaw agent with its own Telegram bot, workspace, and session storage. Use when user asks to create a new agent, add a new bot, or set up multi-agent routing. Uses openclaw config set for safe config updates with doctor validation and auto-rollback.
openclaw skills install agent-deployUse this skill when the user says ANY of the following (or similar):
Before running any deploy script, you MUST collect these two values from the user:
| Required | Example | How to get it |
|---|---|---|
| agentId | research | Ask: "What should I name this agent?" (lowercase, no spaces, no special chars) |
| botToken | 123456:ABC-xyz | Ask: "What is the Telegram Bot Token?" (user gets this from @BotFather) |
If the user provides both in their message, proceed immediately. If the user is missing one or both, ask for the missing value(s) before proceeding.
Run this exact command, replacing <agentId> and <botToken> with the user's values:
bash {baseDir}/scripts/deploy.sh <agentId> <botToken>
Example: If user says "deploy agent called research with token 123456:ABCdef":
bash {baseDir}/scripts/deploy.sh research 123456:ABCdef
After the script finishes:
DO NOT run systemctl restart unless the script output explicitly says to.
The script handles hot-reload automatically for channels and bindings.
bash {baseDir}/scripts/list.sh
Show the output table to the user as-is.
Run this exact command, replacing <agentId>:
bash {baseDir}/scripts/remove.sh <agentId>
Example: If user says "remove the research agent":
bash {baseDir}/scripts/remove.sh research
write, edit, apply_patch, or any file editing tool on openclaw.json. The deploy script uses openclaw config set which is the only safe way.openclaw config set commands yourself.digits:alphanumeric (e.g., 123456789:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw).remove.sh script refuses to remove the main agent. Do not try to work around this.You do NOT need to do any of these manually. The script handles everything:
~/.openclaw/workspace-<agentId>/agents.list with safe defaults:
tools.deny: ["gateway"] (agent cannot modify core config)sandbox.mode: "non-main" (non-main sessions are sandboxed)sandbox.scope: "agent" (one container per agent)sandbox.workspaceAccess: "none" (sandbox cannot access host workspace)<agentId> -> telegram:<agentId>openclaw doctoropenclaw.json auth.profiles) AND main agent's auth-profiles.jsonIf the user says the new bot is not responding after deploy:
journalctl --user -u openclaw-gateway --no-pager -n 20[telegram] [<agentId>] starting provider in logssystemctl --user restart openclaw-gatewaybash {baseDir}/scripts/list.sh to verify configThese are optional. The scripts use sensible defaults:
| Variable | Default | Description |
|---|---|---|
OPENCLAW_CONFIG_PATH | ~/.openclaw/openclaw.json | Custom config file path |
OPENCLAW_BIN | openclaw | Custom openclaw CLI path |