名称: clawdbot-skill-update
描述: 包含动态工作空间检测的完整备份、更新与恢复工作流
主页: https://github.com/pasogott/clawdbot-skill-update
元数据: {"clawdbot":{"emoji":"💾","requires":{"bins":["bash","jq","tar","git"]},"tags":["backup","restore","update","multi-agent"]}}
为 Clawdbot 安装提供完整的备份、更新与恢复工作流。
origin/main~/code/clawdbot (默认)此技能为 Clawdbot 提供了一个完整、模块化的更新工作流,并具备动态工作空间检测功能,涵盖:
- 配置文件
- 代理状态与会话
- 凭证与认证令牌
- 所有代理工作空间(从配置自动检测)
- 定时任务与沙盒
- Git 仓库状态
✅ 动态工作空间检测 - 从配置文件中读取工作空间路径
✅ 多代理支持 - 自动处理多个代理
✅ 安全回滚 - 完整的恢复能力
✅ Git 集成 - 跟踪版本与远程仓库
✅ 验证检查 - 包含更新前后的检查
✅ 试运行 - 备份前预览
config.json - 技能配置(仓库 URL、路径)backup-clawdbot-dryrun.sh - 试运行预览脚本(不进行实际更改)backup-clawdbot-full.sh - 动态完整备份脚本restore-clawdbot.sh - 动态恢复脚本validate-setup.sh - 更新前后验证脚本check-upstream.sh - 检查可用更新UPDATE_CHECKLIST.md - 分步更新清单QUICK_REFERENCE.md - 快速命令参考SKILL.md - 本文档README.md - 快速入门指南备份与恢复脚本现在具备以下能力:
- 从 ~/.clawdbot/clawdbot.json 读取工作空间路径
- 支持任意数量的代理
- 优雅处理缺失的工作空间
- 根据代理 ID 生成安全的文件名
当被要求执行以下操作时,触发此技能:
- "更新 clawdbot"
- "升级到最新版本"
- "更新前备份 clawdbot"
- "从备份恢复 clawdbot"
- "回滚 clawdbot 更新"
~/.skills/clawdbot-update/backup-clawdbot-dryrun.sh
显示内容:
- 将被备份的文件
- 预估备份大小
- 工作空间检测结果
- 可用磁盘空间
- 将被跳过的文件
不会创建或修改任何文件!
~/.skills/clawdbot-update/backup-clawdbot-full.sh
备份内容:
- ~/.clawdbot/clawdbot.json (配置)
- ~/.clawdbot/sessions/ (会话状态)
- ~/.clawdbot/agents/ (多代理状态)
- ~/.clawdbot/credentials/ (认证令牌)
- ~/.clawdbot/cron/ (定时任务)
- ~/.clawdbot/sandboxes/ (沙盒状态)
- 所有代理工作空间(动态检测!)
- Git 提交与状态
输出目录: ~/.clawdbot-backups/pre-update-YYYYMMDD-HHMMSS/
遵循更新清单:
cat ~/.skills/clawdbot-update/UPDATE_CHECKLIST.md
关键步骤:
1. 创建备份
2. 停止网关
3. 拉取最新代码
4. 针对破坏性变更调整配置
5. 运行诊断
6. 测试功能
7. 以守护进程方式启动网关
~/.skills/clawdbot-update/restore-clawdbot.sh ~/.clawdbot-backups/pre-update-YYYYMMDD-HHMMSS
恢复内容:
- 所有配置
- 所有状态文件
- 所有工作空间
- (可选)Git 版本
此技能专为多代理设置设计,支持:
- 拥有独立工作空间的多个代理
- 沙盒配置
- 提供商路由(WhatsApp/Telegram/Discord/Slack 等)
关键变更:
- DM 限制:私聊(DM)现在默认为 pairing 策略,而非开放
- 群组:telegram.groups 和 whatsapp.groups 现在变为允许列表
- 沙盒:默认作用域从隐式更改为 "agent"
- 时间戳:代理信封中的时间戳现在采用 UTC 格式
备份后,务必验证:
BACKUP_DIR=~/.clawdbot-backups/pre-update-YYYYMMDD-HHMMSS
cat "$BACKUP_DIR/BACKUP_INFO.txt"
ls -lh "$BACKUP_DIR"
应包含:
- ✅ clawdbot.json
- ✅ credentials.tar.gz
- ✅ workspace-*.tar.gz (每个代理一个)
示例:将 WhatsApp 切换为配对策略:
jq '.whatsapp.dmPolicy = "pairing"' ~/.clawdbot/clawdbot.json | sponge ~/.clawdbot/clawdbot.json
示例:设置显式沙盒作用域:
jq '.agent.sandbox.scope = "agent"' ~/.clawdbot/clawdbot.json | sponge ~/.clawdbot/clawdbot.json
# 1. 检查更新
~/.skills/clawdbot-update/check-upstream.sh
# 2. 验证当前设置
~/.skills/clawdbot-update/validate-setup.sh
# 3. 试运行
~/.skills/clawdbot-update/backup-clawdbot-dryrun.sh
# 4. 备份
~/.skills/clawdbot-update/backup-clawdbot-full.sh
# 5. 停止网关
cd ~/code/clawdbot
pnpm clawdbot gateway stop
# 6. 更新代码
git checkout main
git pull --rebase origin main
pnpm install
pnpm build
# 7. 运行诊断
pnpm clawdbot doctor --yes
# 8. 测试
pnpm clawdbot gateway start # 前台运行以进行测试
# 9. 部署
pnpm clawdbot gateway stop
pnpm clawdbot gateway start --daemon
# 快速回滚
~/.skills/clawdbot-update/restore-clawdbot.sh <备份目录>
# 手动回滚
cd ~/code/clawdbot
git checkout <旧提交>
pnpm install && pnpm build
cp <备份目录>/clawdbot.json ~/.clawdbot/
pnpm clawdbot gateway restart
pnpm clawdbot agents list
pnpm clawdbot logs --tail 50
pnpm clawdbot providers list --usage
pnpm clawdbot skills list
# 实时日志
pnpm clawdbot logs --follow
# 或使用 Web UI
open http://localhost:3001/logs
# 检查状态
pnpm clawdbot status
pnpm clawdbot gateway status
网关无法启动:
pnpm clawdbot logs --grep error
pnpm clawdbot doctor
认证错误:
# OAuth 配置文件可能需要重新登录
pnpm clawdbot providers login <提供商>
沙盒问题:
# 检查沙盒配置
jq '.agent.sandbox' ~/.clawdbot/clawdbot.json
# 检查每个代理的沙盒
jq '.routing.agents[] | {name, sandbox}' ~/.clawdbot/clawdbot.json
如果出现问题:
# 1. 停止网关
pnpm clawdbot gateway stop
# 2. 完全恢复
LATEST_BACKUP=$(ls -t ~/.clawdbot-backups/ | head -1)
~/.skills/clawdbot-update/restore-clawdbot.sh ~/.clawdbot-backups/$LATEST_BACKUP
# 3. 重启
pnpm clawdbot gateway start
clawdbot skills install clawdbot-update
git clone <仓库地址> ~/.skills/clawdbot-update
chmod +x ~/.skills/clawdbot-update/*.sh
MIT - 详见 LICENSE
Pascal Schott (@pasogott)
为 Clawdbot 贡献
https://github.com/clawdbot/clawdbot