ClawSkills logoClawSkills

Clawdbot Skill Update

具有动态工作区检测功能的综合备份、更新和还原工作流

介绍

# 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

更多产品