Delete Agent (Clean)
Permanently remove an agent and its related local config/files.
Safety Rules
- This is destructive. Always require explicit user confirmation.
- Enforce 3-step gate:
- run
--dry-run, - explicit confirmation for local deletion,
- separate explicit confirmation for Telegram browser/session-controlled group deletion.
- run
- Ask user whether to also delete the dedicated Telegram group.
- Never auto-delete Telegram groups without the separate confirmation.
- Prefer script execution for local cleanup (stable, low token).
Inputs
Collect:
agent_id(required)delete_workspace(yes/no)delete_telegram_group_config(yes/no; usually yes)delete_telegram_group(yes/no; requires explicit confirmation)delete_cron_jobs(yes/no; usually yes)
Script-first Commands
Dry-run:
python3 scripts/delete_agent.py --agent-id <agent_id> --dry-run
Execute (after confirmation):
python3 scripts/delete_agent.py --agent-id <agent_id> --yes --delete-workspace --delete-telegram-group-config --delete-cron-jobs
Script Safety Guardrails
scripts/delete_agent.pyvalidatesagent_idformat:[a-z0-9-]+.- It refuses deletion when target paths are outside allowed directories.
- Workspace deletion is allowed only when path is under user home and folder name starts with
claw-. - It creates backup files before writing config changes.
What the script removes
- Agent entry in
~/.openclaw/openclaw.json(agents.list) - Agent bindings (
bindings[]with matchingagentId) - Telegram group routing entries linked by those bindings
channels.telegram.groups.<chat_id>
- Agent directory:
~/.openclaw/agents/<agent_id>
- Workspace directory from agent config (if
--delete-workspace) - Cron jobs owned by this agent from
~/.openclaw/cron/jobs.json(if--delete-cron-jobs)
Dedicated Telegram Group Deletion
This skill does not bundle Telegram deletion automation code; it uses external browser automation tooling or manual user actions.
After local script deletion and only if user confirmed delete_telegram_group=yes:
- Require a separate explicit confirmation: user agrees to browser/session control and irreversible group deletion.
- Identify dedicated group
chat_idfrom removed bindings. - Use browser automation (Telegram Web) to open the group and run
Delete Group. - In Telegram delete dialog, enable
Delete for all memberswhen available, then confirm deletion. - Report final group status clearly:
deleted/left-only/pending-manual.
Post-step
- Surface backup files created by the script (
openclaw.json.bak.*,jobs.json.bak.*) so user can retain recovery points. - If gateway reload is available, let hot reload apply.
- If not applied, ask for explicit confirmation before restarting gateway, then verify logs.
- Return concise summary with removed items.