|
|
# OpenClaw Agent 回滚恢复指南 |
|
|
|
|
|
## 🚨 **紧急情况:当 Agent 失去功能时** |
|
|
|
|
|
本文档提供了完整的回滚和恢复流程,确保在配置错误或系统崩溃时能够快速恢复服务。 |
|
|
|
|
|
## 🔧 **回滚操作步骤** |
|
|
|
|
|
### 1. **确认当前问题** |
|
|
```bash |
|
|
# 检查 OpenClaw 状态 |
|
|
openclaw status |
|
|
|
|
|
# 检查系统日志 |
|
|
journalctl --user -u openclaw-gateway --no-pager -n 50 |
|
|
|
|
|
# 检查工作区状态 |
|
|
cd /root/.openclaw/workspace |
|
|
git status |
|
|
``` |
|
|
|
|
|
### 2. **查看 Git 历史记录** |
|
|
```bash |
|
|
# 查看最近的提交历史 |
|
|
git log --oneline -10 |
|
|
|
|
|
# 查看特定文件的修改历史 |
|
|
git log --oneline <filename> |
|
|
|
|
|
# 查看两次提交之间的差异 |
|
|
git diff HEAD~1 HEAD |
|
|
``` |
|
|
|
|
|
### 3. **执行回滚操作** |
|
|
|
|
|
#### **方案 A: 回滚到上一个稳定版本(推荐)** |
|
|
```bash |
|
|
# 回滚到最后一个已知良好的提交 |
|
|
git reset --hard HEAD~1 |
|
|
|
|
|
# 如果需要回滚多个版本,先查看日志找到正确的 commit hash |
|
|
git log --oneline -5 |
|
|
git reset --hard <commit-hash> |
|
|
|
|
|
# 重新加载 Systemd 配置 |
|
|
systemctl --user daemon-reload |
|
|
|
|
|
# 重启 OpenClaw 服务 |
|
|
openclaw gateway restart |
|
|
``` |
|
|
|
|
|
#### **方案 B: 仅恢复特定配置文件** |
|
|
```bash |
|
|
# 恢复单个文件到上一版本 |
|
|
git checkout HEAD~1 -- <filename> |
|
|
|
|
|
# 恢复多个文件 |
|
|
git checkout HEAD~1 -- MEMORY.md AGENTS.md CORE_INDEX.md |
|
|
|
|
|
# 提交恢复操作(可选) |
|
|
git add . |
|
|
git commit -m "Rollback: restore configuration after error" |
|
|
``` |
|
|
|
|
|
#### **方案 C: 完全重置到远程仓库状态** |
|
|
```bash |
|
|
# 如果本地修改完全混乱,直接重置到远程最新状态 |
|
|
git fetch origin |
|
|
git reset --hard origin/master |
|
|
|
|
|
# 重新部署所有配置 |
|
|
systemctl --user daemon-reload |
|
|
openclaw gateway restart |
|
|
``` |
|
|
|
|
|
### 4. **验证恢复结果** |
|
|
```bash |
|
|
# 检查服务状态 |
|
|
openclaw status |
|
|
|
|
|
# 测试基本功能 |
|
|
openclaw health --json |
|
|
|
|
|
# 验证配置文件完整性 |
|
|
ls -la ~/.openclaw/workspace/ |
|
|
``` |
|
|
|
|
|
## 📋 **关键文件备份策略** |
|
|
|
|
|
### **核心配置文件清单** |
|
|
- `MEMORY.md` - 长期记忆和重要决策 |
|
|
- `CORE_INDEX.md` - 记忆索引和身份信息 |
|
|
- `AGENTS.md` - 工作区约定和操作指南 |
|
|
- `~/.openclaw/openclaw.json` - OpenClaw 主配置文件 |
|
|
- `agent-monitor.js` - 监控脚本 |
|
|
- `start-agent-monitor.sh` - 监控启动脚本 |
|
|
|
|
|
### **Systemd 服务文件** |
|
|
- `~/.config/systemd/user/openclaw-gateway.service` |
|
|
|
|
|
### **Git 仓库位置** |
|
|
- **本地**: `/root/.openclaw/workspace/` |
|
|
- **远程**: `git@gl.tigerone.tech:sw_dm/openClaw_agent_dm.git` |
|
|
|
|
|
## ⚠️ **重要注意事项** |
|
|
|
|
|
### **回滚前必做** |
|
|
1. **记录当前状态**: `git status` 和 `git log --oneline -3` |
|
|
2. **备份当前配置**: 如果可能,手动复制关键文件 |
|
|
3. **通知相关人员**: 如果是生产环境,通知团队成员 |
|
|
|
|
|
### **回滚后必做** |
|
|
1. **验证功能**: 确保所有服务正常运行 |
|
|
2. **记录原因**: 在新的 commit 中说明回滚原因 |
|
|
3. **分析根本原因**: 找出导致问题的配置变更 |
|
|
4. **更新文档**: 如果发现文档不足,及时补充 |
|
|
|
|
|
### **避免常见错误** |
|
|
- ❌ 不要直接编辑生产配置而不 commit |
|
|
- ❌ 不要在回滚前强制推送 (`git push --force`) |
|
|
- ❌ 不要删除 Git 历史记录 |
|
|
- ✅ 始终先在测试环境中验证配置变更 |
|
|
|
|
|
## 🔍 **故障诊断辅助** |
|
|
|
|
|
### **常见问题症状及解决方案** |
|
|
|
|
|
#### **症状: OpenClaw 无法启动** |
|
|
- **可能原因**: 配置文件语法错误 |
|
|
- **解决方案**: 回滚 `~/.openclaw/openclaw.json` 到上一版本 |
|
|
|
|
|
#### **症状: 记忆功能失效** |
|
|
- **可能原因**: CORE_INDEX.md 或 MEMORY.md 损坏 |
|
|
- **解决方案**: 回滚相关记忆文件 |
|
|
|
|
|
#### **症状: 监控通知停止** |
|
|
- **可能原因**: agent-monitor.js 脚本错误 |
|
|
- **解决方案**: 回滚监控脚本并重启服务 |
|
|
|
|
|
#### **症状: Git 无法推送** |
|
|
- **可能原因**: SSH 密钥或网络配置问题 |
|
|
- **解决方案**: 检查 `/root/.ssh/config` 和网络连接 |
|
|
|
|
|
## 🔄 **自动化回滚脚本(可选)** |
|
|
|
|
|
创建快速回滚脚本 `/root/.openclaw/workspace/quick-rollback.sh`: |
|
|
|
|
|
```bash |
|
|
#!/bin/bash |
|
|
echo "⚠️ Starting emergency rollback..." |
|
|
cd /root/.openclaw/workspace |
|
|
|
|
|
# 回滚到最后一个提交 |
|
|
git reset --hard HEAD~1 |
|
|
|
|
|
# 重启服务 |
|
|
systemctl --user daemon-reload |
|
|
openclaw gateway restart |
|
|
|
|
|
echo "✅ Rollback completed. Check service status with 'openclaw status'" |
|
|
``` |
|
|
|
|
|
## 📞 **紧急联系人** |
|
|
|
|
|
- **Gitea 仓库**: https://gl.tigerone.tech/sw_dm/openClaw_agent_dm.git |
|
|
- **SSH 访问**: 使用已配置的 SSH 密钥 |
|
|
- **文档维护者**: Eason (陈医生) - AI Agent 架构师 |
|
|
|
|
|
--- |
|
|
|
|
|
**最后更新**: 2026-02-20 |
|
|
**适用版本**: OpenClaw 2026.2.19+ |
|
|
**维护策略**: 此文档会随每次重大架构变更自动更新 |