数据备份与恢复

wesclaw 的所有数据存储在本地,支持完整的导出、导入和备份操作。


数据目录

目录结构

~/Library/Application Support/wesclaw/    ← macOS
~/.local/share/wesclaw/                   ← Linux

├── hypervisor.db          ← Cell 注册表
├── cells/main/            ← 默认 Cell 数据
│   ├── meta.db            ← 元数据
│   ├── sessions.db        ← 对话和记忆
│   ├── state.db           ← 运行时状态
│   ├── skills/            ← 已安装技能
│   ├── knowledge/         ← 知识库索引
│   └── workspace/         ← 工作区文件
├── db/wesclaw.db          ← 应用数据
├── db/wescode_auth.db     ← 登录凭证
├── crashes/               ← 崩溃日志
└── logs/                  ← 运行日志

Cell 导出

导出当前 Cell

导出包含:

数据是否包含
对话历史✅
记忆数据✅
Agent 配置✅
技能✅
知识库✅
工作区文件✅(可排除)
.scratch 临时文件❌

导出格式

导出为 tar.gz 压缩包,可在其他设备导入。

选择性导出

可以选择排除工作区文件以减小体积:

导出选项:
  ☑ 对话历史
  ☑ 记忆数据
  ☑ Agent 配置
  ☑ 技能
  ☑ 知识库
  ☐ 工作区文件(排除以减小体积)

Cell 导入

导入 Cell

将导出的 tar.gz 导入到新设备:

  1. 打开设置
  2. 选择"导入 Cell"
  3. 选择 tar.gz 文件
  4. 确认导入

覆盖行为

选项说明
新建创建新 Cell,不影响现有数据
覆盖替换同名 Cell 的数据

备份策略

定期备份

建议的备份频率:

数据类型建议频率说明
记忆数据每周不可重建,最重要
对话历史按需量大但可接受丢失
Agent 配置变更后配置文件较小
配置文件变更后config.yaml 等

自动快照

wesgine 引擎提供数据韧性:


三层数据韧性

数据库分层

层文件内容损坏影响
元数据meta.dbCell 配置不影响对话和记忆
会话sessions.db对话、记忆不影响运行时状态
状态state.db追踪、观测不影响对话

启动恢复

Cell 启动时自动处理损坏:

Boot 检查
  → meta.db 损坏?归档,降级启动
  → sessions.db 损坏?归档,新对话可用
  → state.db 损坏?归档,追踪数据丢失
  → 结果:Boot 永远成功

进程排他锁

同一 Cell 同一时刻只有一个写入者:


设备迁移

迁移步骤

从旧设备迁移到新设备:

  1. 旧设备:导出 Cell 为 tar.gz
  2. 传输:通过 U 盘/网盘传输文件
  3. 新设备:安装 wesclaw
  4. 新设备:导入 Cell
  5. 新设备:重新配置 Provider(API Key 不随导出)

API Key 处理

导出不包含明文 API Key:


注意事项