将 OpenClaw agent 的完整工作区(包括记忆、配置、凭据、技能、定时任务)备份并恢复至/自 Git 仓库。适用于:迁移到新环境……
Soul Transfer (QQ). 代理工作空间迁移通过 Git.是一项面向实际任务的技能,主要用于Concepts.;Soul = 工作空间文件(记忆,身份,技能,框架).;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
通过 Git 在不同 OpenClaw 实例之间迁移 Agent 工作区。
$WORKSPACE = Agent 的工作区目录(通过系统提示中的仓库路径解析,或默认回退至 ~/.openclaw/workspace)openclaw-config-backup.json = 导出的 OpenClaw 配置快照(含频道 token、API 密钥、运行时设置)。文件名可自定义,但必须置于工作区内并提交至备份仓库。cd $WORKSPACE git remote get-url origin || git remote add origin https:/// .git
保存一份当前活跃配置副本,用于后续恢复。该文件包含频道 token、API 密钥及服务器设置等信息,这些内容不会出现在工作区的 Markdown 文件中。
使用 gateway config.get 工具 → 提取其中的 parsed 对象 → 写入工作区内的 JSON 文件(例如:openclaw-config-backup.json)。
此步骤至关重要——若缺失该文件,则无法在新实例上恢复频道连接。
git add -A git commit -m "backup: $(date +%Y-%m-%d_%H%M)" git push origin master
git log --oneline -1 git diff --stat HEAD~1
配置周期性 cron 任务以实现自动备份。详见 references/cron-templates.md 中开箱即用的模板定义。
请严格按顺序执行以下步骤。切勿跳过第 5 步——这是最容易被遗漏的关键步骤。
git clone https://@github.com/ / .git /tmp/soul-backup
恢复前,请先审查仓库中所含内容:
find /tmp/soul-backup -type f | wc -l cat /tmp/soul-backup/IDENTITY.md
识别不应复制到 Markdown 文件中的敏感文件:独立凭证文件(如 API token、密钥文件等)。
将备份中的核心文件复制至 $WORKSPACE:
IDENTITY.md、USER.md、SOUL.mdMEMORY.md、AGENTS.md、HEARTBEAT.md、NOW.md、SESSION-STATE.mdheartbeat-state.jsonmemory/*.md(全部)skills/ 目录.md 或 .json 格式的策略/框架文件# 扫描凭证模式 grep -rl 'ghp_|AKIA[0-9A-Z]|sk-[a-zA-Z0-9]' $WORKSPACE/ \ --include='*.md' 2>/dev/null
在 Markdown 和日志文件中,将扫描到的凭证替换为 [REDACTED]。
注意:不要清除配置备份 JSON 文件中的凭证——它将在第 5 步中被 config.patch 所必需。
本步骤负责重建频道连接、注入 API 密钥及加载运行时设置。若跳过,所有频道将保持断开状态。
从工作区读取配置备份 JSON 文件,并提取以下字段:
exec 安全等级)通过 gateway config.patch 应用配置:
{
"channels": {
"discord": {
"enabled": true,
"token": "",
"groupPolicy": "allowlist",
"guilds": { "..." },
"dm": { "..." },
"actions": { "..." }
}
},
"tools": {
"web": { "search": { "apiKey": "" } },
"exec": { "security": "full" }
}
}
完成 patch 后,OpenClaw 将自动重启。可通过 openclaw status 验证——各频道状态应显示为已连接。
若当前 OpenClaw 版本与备份版本不一致,请使用 config.schema.lookup 查询字段名称是否变更。
cron 任务属于运行时状态,不会被 Git 跟踪。需依据文档记录或 references/cron-templates.md 重新构建。
对每个任务使用 cron add 命令添加。仅恢复当前仍需启用的任务。
# 验证频道连通性 openclaw status # 删除临时克隆目录 rm -rf /tmp/soul-backup # 若存在 BOOTSTRAP.md 则删除(表明不再是全新实例) rm -f $WORKSPACE/BOOTSTRAP.md # 提交恢复后的状态 cd $WORKSPACE git add -A && git commit -m "夺舍完成: $(date +%Y-%m-%d_%H%M)"
在当日的每日日志中记录本次转移操作,包括时间戳、文件数量及遇到的任何问题。
config.patch 是强制步骤。config.patch 所准备。仅需清除嵌入在 Markdown/日志文件中的凭证。config.schema.lookup 核查字段名是否变更;不同 OpenClaw 版本可能重命名字段。建议定期运行以下命令,验证备份完整性:
cd $WORKSPACE # 检查是否已配置远程仓库 git remote -v # 检查最近一次推送时间 git log --oneline -1 # 检查是否存在未提交更改 git status --short # 验证配置备份文件是否存在且包含 token 字段 grep -c '"token"' openclaw-config-backup.json 2>/dev/null || echo "⚠️ 未找到配置备份文件"
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.6万人学习
共89课时 | 133.4万人学习
共49课时 | 82.2万人学习