---
name: auto-rollback
description: OpenClaw 自动回滚 - 智能备份与出行模式守护。支持定时备份、自动健康检测、出差/黑盒子场景下的自动回滚。
metadata: {"openclaw":{"emoji":"🔄","requires":{"config":["auto-rollback"]}}}
---

# Auto Rollback 技能

## 功能

- 🔄 **自动备份**: 定时自动备份 OpenClaw 配置
- ✈️ **出行模式**: 专为黑盒子服务器/出差场景设计，自动监测 Gateway 健康并回滚
- 🌐 **Web UI**: 图形界面管理备份与出行模式
- ⚡ **一键回滚**: 快速恢复到任意备份点
- 🏥 **健康检测**: 深度检测 Gateway 状态（进程 + API）
- 🧹 **自动清理**: 保留最近 N 个备份，自动删除旧备份
- 🚨 **自动回滚**: Gateway 异常时自动回滚到最后已知良好配置

## 使用方式

### 1. Web UI（推荐）

```bash
oar webui
```

访问 http://localhost:3738

### 2. 命令行

```bash
# 查看状态
oar status

# 立即备份
oar backup

# 回滚到指定备份
oar restore <backup-id>

# 列出所有备份
oar list

# 开启/关闭出行模式
oar travel-mode on
oar travel-mode off

# 设置出行模式检查间隔 (10|120|480 分钟)
ar travel-interval 120

# 启动守护进程
oar daemon
```

### 3. 配置

编辑 `~/.openclaw/extensions/openclaw-auto-rollback/config.json`:

```json
{
  "autoBackup": true,
  "maxBackups": 10,
  "webUIPort": 3738,
  "backupItems": [],
  "travelMode": false,
  "travelModeInterval": 120,
  "travelModeMaxBackups": 20
}
```

## 出行模式 (Travel Mode)

### 适用场景

- **黑盒子服务器**: 机器不连接显示器，无法手动操作
- **出差期间**: 无法随时连接服务器查看状态
- **无人值守**: 需要 7×24 自动保护的场景

### 工作原理

1. **定时检测**: 按设定间隔（10分钟/2小时/8小时）检测 Gateway 健康
2. **健康时备份**: Gateway 正常 → 自动创建备份，标记为 "known-good"
3. **异常时回滚**: Gateway 异常 → 自动回滚到最后一个 "known-good" 备份
4. **循环保护**: 回滚后再次检测，确保服务恢复

### 安全机制

- 回滚前自动创建紧急备份
- 最多保留 20 个出行模式备份
- 连续失败计数，避免频繁回滚
- 验证关键配置文件有效性

## 备份内容

自动扫描并备份以下类型文件：
- `.md` - Markdown 文件
- `.json` - JSON 配置文件
- `.yaml/.yml` - YAML 配置文件
- `.toml` - TOML 配置文件
- `.ini/.conf/.config` - 其他配置文件

## API 接口

Web UI 提供以下 REST API：

| 接口 | 方法 | 说明 |
|------|------|------|
| `/api/config` | GET/POST | 获取/更新配置 |
| `/api/backups` | GET | 获取备份列表 |
| `/api/backup` | POST | 立即执行备份 |
| `/api/restore` | POST | 回滚到指定备份 |
| `/api/status` | GET | 获取 Gateway 健康状态 |
| `/api/last-good-backup` | GET | 获取最后已知良好备份 |
| `/api/travel-mode/check` | POST | 手动触发出行模式检测 |

## 安全说明

- 回滚前会自动创建紧急备份
- 仅在 Gateway 运行正常时执行备份
- 备份文件存储在本地，不会上传云端
- 出行模式下的自动回滚有安全验证机制
