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:
1) run
--dry-run,
2) explicit confirmation for local deletion,
3) separate explicit confirmation for Telegram browser/session-controlled group deletion.
- - 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) - INLINECODE2 (yes/no)
- INLINECODE3 (yes/no; usually yes)
- INLINECODE4 (yes/no; requires explicit confirmation)
- INLINECODE5 (yes/no; usually yes)
Script-first Commands
Dry-run:
CODEBLOCK0
Execute (after confirmation):
CODEBLOCK1
Script Safety Guardrails
- -
scripts/delete_agent.py validates agent_id format: [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 matching agentId) - Telegram group routing entries linked by those bindings
-
channels.telegram.groups.<chat_id>
-
~/.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:
- 1. Require a separate explicit confirmation: user agrees to browser/session control and irreversible group deletion.
- Identify dedicated group
chat_id from removed bindings. - Use browser automation (Telegram Web) to open the group and run
Delete Group. - In Telegram delete dialog, enable
Delete for all members when 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.
删除代理(清理)
永久移除一个代理及其相关的本地配置/文件。
安全规则
- - 此操作具有破坏性。始终需要用户明确确认。
- 强制执行三步验证:
1) 运行 --dry-run,
2) 明确确认本地删除,
3) 单独明确确认Telegram浏览器/会话控制的群组删除。
- - 询问用户是否同时删除专属的Telegram群组。
- 未经单独确认,绝不自动删除Telegram群组。
- 优先使用脚本执行本地清理(稳定、低token消耗)。
输入项
收集以下信息:
- - agentid(必填)
- deleteworkspace(是/否)
- deletetelegramgroupconfig(是/否;通常为是)
- deletetelegramgroup(是/否;需要明确确认)
- deletecron_jobs(是/否;通常为是)
脚本优先命令
预运行:
bash
python3 scripts/deleteagent.py --agent-id id> --dry-run
执行(确认后):
bash
python3 scripts/deleteagent.py --agent-id id> --yes --delete-workspace --delete-telegram-group-config --delete-cron-jobs
脚本安全防护
- - scripts/deleteagent.py 验证 agentid 格式:[a-z0-9-]+。
- 当目标路径超出允许目录范围时,拒绝执行删除。
- 仅当工作区路径位于用户主目录下且文件夹名称以 claw- 开头时,才允许删除工作区。
- 在写入配置更改前会创建备份文件。
脚本删除的内容
- - ~/.openclaw/openclaw.json 中的代理条目(agents.list)
- 代理绑定(bindings[] 中匹配的 agentId)
- 由这些绑定关联的Telegram群组路由条目
- channels.telegram.groups.
- ~/.openclaw/agents/
- - 代理配置中的工作区目录(如果指定了 --delete-workspace)
- ~/.openclaw/cron/jobs.json 中属于该代理的定时任务(如果指定了 --delete-cron-jobs)
专属Telegram群组删除
本技能不包含Telegram删除自动化代码;使用外部浏览器自动化工具或用户手动操作。
在本地脚本删除完成后,且仅当用户确认 deletetelegramgroup=yes 时:
- 1. 要求单独明确确认:用户同意浏览器/会话控制及不可逆的群组删除操作。
- 从已删除的绑定中识别专属群组 chat_id。
- 使用浏览器自动化(Telegram Web)打开该群组并执行删除群组。
- 在Telegram删除对话框中,勾选同时删除所有成员(如可用),然后确认删除。
- 清晰报告群组最终状态:已删除 / 仅退出 / 待手动处理。
后续步骤
- - 展示脚本创建的备份文件(openclaw.json.bak.、jobs.json.bak.),以便用户保留恢复点。
- 如果网关支持热重载,则执行热重载。
- 如果未执行热重载,在重启网关前请求明确确认,然后验证日志。
- 返回包含已删除项目的简洁摘要。