~/.openclaw/workspace 是 OpenClaw 的大脑和长期记忆核心。里面包含 SOUL.md、 AGENTS.md、记忆日志、技能等关键内容。一旦损坏,Agent 的“人格”和记忆可能丢失。因此,做好版本控制 + 备份 + 同步 是重度用户必须掌握的核心技能。
1. 为什么必须把 workspace 纳入 Git 版本控制?
核心原因:
- Agent 会频繁自我修改配置文件和记忆,容易出现错误配置,需要快速回滚。
- 实现真正的“可追溯” —— 知道什么时候、因为什么原因发生了变更。
- 方便多机迁移或重建环境(只需
git clone即可恢复)。 - 为未来多 Agent 协作打基础。
结论:必须用 Git 管理 workspace。
2. 基础配置:初始化 Git
cd ~/.openclaw/workspace
git init
git add SOUL.md AGENTS.md USER.md HEARTBEAT.md skills/ tools/
git commit -m "Initial OpenClaw workspace commit"
推荐 .gitignore:
*.log
*.tmp
memory/lancedb/
.unison.ar*
*.key
*.pem
.env
.DS_Store
3. 自动提交策略(重点更新)
有两种主流自动提交方式,它们不是同一个方案,而是不同层级的选择:
方案一:Cron 定时智能提交(强烈推荐,大多数用户首选)
优点:简单、稳定、易维护
缺点:固定时间检查(但有变更才真正提交)
实现脚本(推荐):
cd ~/.openclaw/workspace
nano auto-commit.sh
#!/bin/bash
cd ~/.openclaw/workspace
LOG="git-auto-commit.log"
echo "=== Git Auto Commit Check at $(date) ===" >> "$LOG"
if git status --porcelain | grep -q .; then
git add .
git commit -m "Auto: Workspace snapshot $(date +'%Y-%m-%d %H:%M')" >> "$LOG" 2>&1
echo "✅ Committed changes at $(date)" >> "$LOG"
else
echo "No changes" >> "$LOG"
fi
echo "----------------------------------------" >> "$LOG"
chmod +x auto-commit.sh
Cron 设置(每小时执行):
crontab -e
添加:
0 * * * * /home/cc/.openclaw/workspace/auto-commit.sh
方案二:inotify 事件驱动提交(进阶方案)
优点:文件一修改立即提交,历史记录最干净
缺点:需要常驻进程,配置稍复杂,在 VMware 环境下稳定性稍差
适用人群:对 commit 历史极致追求的用户。
我目前的建议:
- 新手 / 大多数用户 → 使用 Cron 定时方案(方案一)
- 重度用户 + 追求干净历史 → 后期再升级到 inotify
4. 其他 Workspace 管理最佳实践
- 定期 review SOUL.md 和 AGENTS.md(建议每月手动检查一次)
- 定期清理 memory/lancedb(向量数据库会持续增长)
- 把常用操作做成 Skill(如
folder-bidirectional-sync、workspace-auto-commit) - 远程备份:定期
git push到私有 GitHub / GitLab 仓库 - 重要时刻手动提交:重大修改 SOUL 或添加新技能后,手动写清晰 commit message
总结:我的当前 Workspace 管理架构
- 版本控制:Git + Cron 定时智能提交(每小时)
- 实时备份:Unison 双向同步(每 2 分钟)到 Windows 主机
- 远程保险:Git 私有仓库
这套组合目前使用下来非常稳定,几乎无需手动干预。