用于处理 OpenClaw 备份、恢复、回滚、验证、GitHub 备份、异地备份及工作区恢复相关请求。
OpenClaw 备份恢复是一项面向实际任务的技能,主要用于备份、 恢复、 验证和 GitHub- sync OpenClaw 工作空间状态( Suul. md、 USER. md、 AGents. md、 IDENTITY. md、 TOOLS. md、 HeartBEAT. md、 BOOTSTRAP. md、 代理标记下页)。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
对 OpenClaw 工作区状态(包括 SOUL.md、USER.md、AGENTS.md、IDENTITY.md、TOOLS.md、HEARTBEAT.md、BOOTSTRAP.md、各 agent 的 Markdown 文件,以及可选的真实 openclaw.json)执行备份、恢复、校验及 GitHub 同步操作,支持版本管理、回滚与离机恢复。
防止关键工作区配置文件被意外删除、损坏或错误配置;支持快速恢复与版本历史追踪。
工作区根目录下的核心 SOUL 文件:
SOUL.md — agent 的人格设定与使命USER.md — 用户档案与偏好设置AGENTS.md — agent 指令与工作流IDENTITY.md — agent 身份配置TOOLS.md — 本地工具配置HEARTBEAT.md — 周期性任务配置BOOTSTRAP.md — 初始化指令# 创建带时间戳的备份(含脱敏处理的 openclaw.json) node scripts/backup.mjs # 创建命名备份 node scripts/backup.mjs --name "pre-migration" # 带描述的备份 node scripts/backup.mjs --desc "Before major refactor" # 在备份集中包含真实的 ~/.openclaw/openclaw.json node scripts/backup.mjs --raw-openclaw-config
# 创建备份、执行 git add backups/、git commit 并推送到 origin/当前分支 node scripts/backup-and-push.mjs --remote origin # 推送至专用备份远程仓库 node scripts/backup-and-push.mjs --remote clawlite-backup # 仅推送脱敏配置备份(不包含真实配置) node scripts/backup-and-push.mjs --remote origin --sanitized-config-only
backup-and-push.mjs 已自动完成完整 Git 同步流程:
git add backupsgit commit -m "backup: ..."git push 如需无人值守运行,请使用内置的 GitHub Actions 工作流 .github/workflows/daily-backup.yml,或通过 cron / launchd 调用相同脚本。
# 列出全部备份 node scripts/list.mjs # 显示详细信息 node scripts/list.mjs --verbose
# 恢复最新备份 node scripts/restore.mjs # 按时间戳恢复特定备份 node scripts/restore.mjs --timestamp 2026-03-05T00-51-30 # 按名称恢复特定备份 node scripts/restore.mjs --name "pre-migration" # 预演模式(仅预览,不实际应用) node scripts/restore.mjs --dry-run
# 校验全部备份 node scripts/validate.mjs # 校验特定备份 node scripts/validate.mjs --timestamp 2026-03-05T00-51-30
backups/
├── 2026-03-05T00-51-30/
│ ├── manifest.json # 备份元数据
│ ├── SOUL.md
│ ├── USER.md
│ ├── AGENTS.md
│ ├── IDENTITY.md
│ ├── TOOLS.md
│ ├── HEARTBEAT.md
│ └── BOOTSTRAP.md
├── 2026-03-05T01-15-42/
│ └── ...
└── named/
├── pre-migration/
│ └── ...
└── stable-v1/
└── ...
每个备份均包含一个 manifest.json:
{
"timestamp": "2026-03-05T00:51:30.123Z",
"name": "pre-migration",
"description": "Before major refactor",
"workspace": "/Users/m1/.openclaw/workspace-YOUR-AGENT",
"files": {
"SOUL.md": {
"size": 1234,
"hash": "sha256:abc123...",
"exists": true
},
"USER.md": {
"size": 567,
"hash": "sha256:def456...",
"exists": true
}
},
"created_by": "hunter",
"openclaw_version": "1.0.0"
}
node scripts/list.mjsnode scripts/restore.mjs --timestamp --dry-run node scripts/restore.mjs --timestamp 若工作区已损坏且脚本无法运行:
# 手动从备份目录恢复 cd /Users/m1/.openclaw/workspace-hunter cp -r soul-backup-skill/backups/LATEST_TIMESTAMP/* .
每次恢复操作均会自动生成前置恢复备份:
# 恢复操作将创建:backups/pre-restore-2026-03-05T01-20-00/ # 回滚命令如下: node scripts/restore.mjs --timestamp pre-restore-2026-03-05T01-20-00
添加到 OpenClaw heartbeat 或系统 cron 中:
# 每日凌晨 2 点执行备份 0 2 * * * cd /Users/m1/.openclaw/workspace-YOUR-AGENT/openclaw-backup-restore && node scripts/backup.mjs --name "daily-$(date +%Y-%m-%d)" # 每周日早上 3 点执行备份 0 3 * * 0 cd /Users/m1/.openclaw/workspace-YOUR-AGENT/openclaw-backup-restore && node scripts/backup.mjs --name "weekly-$(date +%Y-W%V)"
# 部署变更前执行 cd /Users/m1/.openclaw/workspace-hunter/soul-backup-skill node scripts/backup.mjs --name "pre-deploy-$(git rev-parse --short HEAD)"
校验脚本执行以下检查:
# 立即恢复 node scripts/restore.mjs --file SOUL.md # 或执行全量恢复 node scripts/restore.mjs
# 预览即将恢复的内容 node scripts/restore.mjs --dry-run # 恢复上一版本 node scripts/restore.mjs --timestamp
# 校验全部备份 node scripts/validate.mjs # 查找最近有效的备份 node scripts/list.mjs --verbose # 从最近有效备份恢复 node scripts/restore.mjs --timestamp
# 重建工作区目录 mkdir -p /Users/m1/.openclaw/workspace-YOUR-AGENT # 克隆备份技能 cd /Users/m1/.openclaw/workspace-YOUR-AGENT git cloneopenclaw-backup-restore # 恢复最新备份 cd openclaw-backup-restore node scripts/restore.mjs
validate.mjs,尽早发现损坏--desc 参数说明备份创建原因TOOLS.md 中的 API 密钥、USER.md 中的用户信息)“未找到备份目录”
mkdir -p backups“权限被拒绝”
ls -la ..chmod +x scripts/*.mjs“校验时哈希不匹配”
“恢复失败:文件冲突”
--force 参数强制覆盖现有文件相关专题
热门下载
相关下载
精品课程
共1课时 | 153人学习
共0课时 | 0人学习
共1课时 | 200人学习
最新文章