介绍
# Clawdbot Update Skill
Clawdbot 安装的综合备份、更新和恢复工作流。
## 仓库
- **GitHub**: https://github.com/clawdbot/clawdbot - **上游**: `origin/main` - **本地克隆**: `~/code/clawdbot` (默认)
## 描述
该技能为 Clawdbot 提供了一套完整的、**模块化**的更新工作流,并具有**动态工作区检测**功能: - 配置文件 - 代理状态和会话 - 凭证和认证令牌 - **所有代理工作区(从配置自动检测)** - Cron 任务和沙箱 - 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 生成安全的文件名
## 使用场景
当被要求执行以下操作时触发此技能: - "update clawdbot"(更新 clawdbot) - "upgrade to latest version"(升级到最新版本) - "backup clawdbot before update"(更新前备份 clawdbot) - "restore clawdbot from backup"(从备份恢复 clawdbot) - "rollback clawdbot update"(回滚 clawdbot 更新)
## 用法
### 1. 预览备份(试运行)
```bash ~/.skills/clawdbot-update/backup-clawdbot-dryrun.sh ```
**显示:** - 将备份哪些文件 - 预计备份大小 - 工作区检测结果 - 磁盘空间可用性 - 将被跳过的文件
**不会创建或修改任何文件!**
### 2. 创建全量备份
```bash ~/.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/`
### 3. 更新 Clawdbot
遵循清单:
```bash cat ~/.skills/clawdbot-update/UPDATE_CHECKLIST.md ```
**关键步骤:** 1. 创建备份 2. 停止网关 3. 拉取最新代码 4. 调整配置以适应重大变更 5. 运行诊断 6. 测试功能 7. 以守护进程方式启动网关
### 4. 从备份恢复
```bash ~/.skills/clawdbot-update/restore-clawdbot.sh ~/.clawdbot-backups/pre-update-YYYYMMDD-HHMMSS ```
**恢复内容:** - 所有配置 - 所有状态文件 - 所有工作区 - 可选:git 版本
## 重要提示
### 多代理设置
该技能专为具有以下内容的多代理设置设计: - 拥有独立工作区的多个代理 - 沙箱配置 - 提供商路由(WhatsApp/Telegram/Discord/Slack 等)
### v2026.1.8 中的重大变更
**关键:** - **私信锁定**:私信现在默认为 `pairing` 策略,而非开放 - **群组**:`telegram.groups` 和 `whatsapp.groups` 现在是允许列表 - **沙箱**:默认范围从隐式更改为了 `"agent"` - **时间戳**:代理信封中现在为 UTC 格式
### 备份验证
备份后,始终验证: ```bash 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 切换为配对模式:** ```bash jq '.whatsapp.dmPolicy = "pairing"' ~/.clawdbot/clawdbot.json | sponge ~/.clawdbot/clawdbot.json ```
**示例:设置显式沙箱范围:** ```bash jq '.agent.sandbox.scope = "agent"' ~/.clawdbot/clawdbot.json | sponge ~/.clawdbot/clawdbot.json ```
## 工作流
### 标准更新流程
```bash # 1. Check for updates ~/.skills/clawdbot-update/check-upstream.sh
# 2. Validate current setup ~/.skills/clawdbot-update/validate-setup.sh
# 3. Dry run ~/.skills/clawdbot-update/backup-clawdbot-dryrun.sh
# 4. Backup ~/.skills/clawdbot-update/backup-clawdbot-full.sh
# 5. Stop gateway cd ~/code/clawdbot pnpm clawdbot gateway stop
# 6. Update code git checkout main git pull --rebase origin main pnpm install pnpm build
# 7. Run doctor pnpm clawdbot doctor --yes
# 8. Test pnpm clawdbot gateway start # foreground for testing
# 9. Deploy pnpm clawdbot gateway stop pnpm clawdbot gateway start --daemon ```
### 回滚流程
```bash # Quick rollback ~/.skills/clawdbot-update/restore-clawdbot.sh <backup-dir>
# Manual rollback cd ~/code/clawdbot git checkout <old-commit> pnpm install && pnpm build cp <backup-dir>/clawdbot.json ~/.clawdbot/ pnpm clawdbot gateway restart ```
## 更新后测试
### 功能测试
- [ ] 提供商私信正常(检查配对策略) - [ ] 群组提及有响应 - [ ] 输入指示器正常工作 - [ ] 代理路由正常 - [ ] 沙箱隔离正常 - [ ] 工具限制已强制执行
### 新功能 ```bash pnpm clawdbot agents list pnpm clawdbot logs --tail 50 pnpm clawdbot providers list --usage pnpm clawdbot skills list ```
### 监控
```bash # Live logs pnpm clawdbot logs --follow
# Or Web UI open http://localhost:3001/logs
# Check status pnpm clawdbot status pnpm clawdbot gateway status ```
## 故障排除
### 常见问题
**网关无法启动:** ```bash pnpm clawdbot logs --grep error pnpm clawdbot doctor ```
**认证错误:** ```bash # OAuth profiles might need re-login pnpm clawdbot providers login <provider> ```
**沙箱问题:** ```bash # Check sandbox config jq '.agent.sandbox' ~/.clawdbot/clawdbot.json
# Check per-agent sandbox jq '.routing.agents[] | {name, sandbox}' ~/.clawdbot/clawdbot.json ```
### 紧急恢复
如果出现问题:
```bash # 1. Stop gateway pnpm clawdbot gateway stop
# 2. Full restore LATEST_BACKUP=$(ls -t ~/.clawdbot-backups/ | head -1) ~/.skills/clawdbot-update/restore-clawdbot.sh ~/.clawdbot-backups/$LATEST_BACKUP
# 3. Restart pnpm clawdbot gateway start ```
## 安装
### 通过 ClawdHub
```bash clawdbot skills install clawdbot-update ```
### 手动安装
```bash git clone <repo-url> ~/.skills/clawdbot-update chmod +x ~/.skills/clawdbot-update/*.sh ```
## 许可证
MIT - 请参阅 [LICENSE](LICENSE)
## 作者
**Pascal Schott** ([@pasogott](https://github.com/pasogott))
为 Clawdbot 做出的贡献 https://github.com/clawdbot/clawdbot