Cell 可移植快照
wesgine Cell 的三位一体设计中的 Portable Snapshot 维度。
Cell 三位一体
| 维度 | 含义 |
|---|---|
| Runtime Instance | 运行中的 Agent 运行时 |
| Tenant Unit | 租户隔离单元 |
| Portable Snapshot | 可导出、可传输、可恢复的完整快照 |
快照包含什么
默认导出(tar.gz 流)包含:
| 内容 | 路径 | 说明 |
|---|---|---|
| 元数据库 | meta.db | Cell 配置、Agent 定义 |
| 状态库 | state.db | Run 追踪、Observe 数据 |
| 会话库 | sessions.db | 会话历史、记忆存储 |
| 知识库 | knowledge/ | 语料文件和索引 |
| 技能包 | skills/ | Tier C 技能 |
| 工作区 | workspace/ | 持久化产出文件 |
快照排除什么
| 排除项 | 原因 |
|---|---|
.scratch/ | 临时计算域,Run 结束后 GC |
| Provider 凭证 | 安全性,不随快照传播 |
.cell.lock | 进程级锁,无移植意义 |
CellPortableSpec
通过 CellSpec.CellPortableSpec 控制导出行为:
type CellPortableSpec struct {
SkipWorkspace bool // true = 不导出 workspace/
// 其他控制字段...
}
导出 API
// SDK
reader, err := hyp.Cells().Export(ctx, cellID)
// HTTP
GET /admin/cells/{id}/export → tar.gz 流
导入 API
// SDK
newID, err := hyp.Cells().Import(ctx, reader, ImportOpts{})
// HTTP
POST /admin/cells/import → tar.gz body, ?overwrite=1
凭证处理
导出时 Provider 凭证不包含在快照中。
导入后需要重新配置:
PrivateProviders的 API Key- IM Channel 的 Bot Token
- Email 的 SMTP 密码
用途场景
| 场景 | 操作 |
|---|---|
| 环境迁移 | Export → 传输 → Import |
| 灾难恢复 | 定期 Export 备份 |
| 模板复制 | Export → Import 到新 Cell |
| 团队分享 | 导出知识库和技能配置 |
与数据韧性的关系
- Export 使用
resilience.SQLiteBackup()(VACUUM INTO 原子快照) - INV-RESIL-05:每次快照后
PRAGMA quick_check - 损坏快照会被丢弃而非导入
相关文档
- Cell 导出导入 →
cell-export-import.md - Cell 导出格式 →
cell-export-format.md - 数据韧性 →
data-resilience.md - Cell 结构 →
cell-structure.md