0.2.x 架构路线图
规划规格从工作区运行时走向 Ephemeral Sandbox Fabric。
面向隔离式多智能体开发、并行 RL rollout 与 MCTS 搜索的检查点原生平台;OCI/Linux 与 WASI 执行共享同一个持久 LayerStack 状态平面。
干净分支 0 B
会话写入前不会克隆 lower 载荷
首次写入 O(F)
仅存在于 lower 的 F 字节文件可能被完整 copy-up
Lhot + Hcold
squash 与 GC 后的条件性稳定载荷目标
目标架构
一个状态图,多种隔离执行。
不同工作负载控制器共享同一套编排与状态原语。只有有界数量的选中节点会成为运行中的沙箱,其余图节点保持持久化并驻留磁盘。
工作负载控制器
多智能体开发
任务 · 评审 · 合并
RL 协调器
策略 · 种子 · 轨迹
MCTS 控制器
选择 · 扩展 · 反向传播
沙箱编排平面
SandboxGroup
不可变检查点图
搜索状态
访问 · 奖励 · 前沿
调度器
租约 · 配额 · 局部性
评估器
测试 · 奖励 · 接受
LayerStack 持久状态平面
逻辑清单
与运行时无关的工作区身份
CAS
内容 · 元数据 · 逻辑状态
事务
OCC · 租约 · 恢复 · GC
产物
日志 · 补丁 · 轨迹
有界执行 Fabric
OCI/Linux 执行器
原生不可变 lower + 私有 OverlayFS upper
WASI 执行器
能力约束的 LayerStack 文件系统
密封的检查点结果
评估 → 接受、合并、反向传播或裁剪
物理存储生命周期
共享干净根;准确计算隔离会话真正持有的字节。
LayerStack 在会话启动时不会克隆合并工作区,但这不表示每个被编辑的会话都没有空间成本:OverlayFS copy-up 可能把完整结果文件放入私有 upperdir。CDC 优化的是发布后保留的不可变历史;它不会把活跃 upperdir 变成字节 patch 存储。
total(t) = Lhot(t) + Hcold(t) + ΣUactive(t) + Pstaging(t) + M(t)必须计算热原生根、唯一冷历史、每个在线私有 upper、发布 staging,以及所有元数据/恢复状态。仅报告 CAS 字节绝不是 LayerStack 总存储。
- 01+ O(1) 元数据
干净分支
子节点租用同一个不可变 lower 根,并从空的私有 upperdir 开始。
- 02upper 可能增加约 F
首次编辑仅存在于 lower 的文件 F
OverlayFS 可能先 copy-up 完整文件,再应用很小的逻辑写入。upper 条目是结果文件,不是字节增量。
- 03仍是一份 upper 文件
一个会话内编辑十次
重复写入会复用该会话已 copy-up 的 inode;发布前不会产生十份私有历史版本。
- 04ΣUactive;最坏约 N·F
N 个已修改会话
隔离需要独立可写 upper。干净会话仍然便宜,但独立修改的副本是真实物理载荷。
发布决定峰值;squash 决定保留历史。
- 发布
- stream-build 可能暂时增加另一份 staging 载荷。满足条件时,带日志的同文件系统 carrier transfer 可以密封已静止 upperdir,而不产生第二份载荷复制;merge 与兼容性 fallback 仍需构建新载体。
- Squash + CDC
- 只有当被取代的原生载体可安全退役后,内容身份才能跨版本复用未变化区域。旧租约根必须持续可读,并继续固定其所需字节。
- 稳定目标
- 接近一份当前逻辑副本是有条件的:一份当前热原生视图、没有已修改的在线 upper、没有需要其他原生载体的旧租约,且 GC 已稳定完成。它不是分支时或发布峰值保证。
- 执行
- exec_command、文件 I/O、PTY 与 stdin 始终走原生 OverlayFS 路径,不会把 CAS 重建加入命令执行。
迁移计划
四个按依赖顺序推进的里程碑。
每个里程碑都有明确目标和可证伪的退出门槛。后续阶段不能掩盖存储、隔离或恢复契约的失败。
阶段 01
通用 LayerStack
- 目标
- 让 LayerStack 成为可移植的工作区事实来源,同时避免把 CAS 重建放到命令执行热路径。
- 交付范围
- 与运行时无关的逻辑目录树清单和内容身份。
- 为普通 OCI/Linux 文件与 PTY 执行提供原生物化。
- 严格区分可移植身份与工作节点本地 extent 位置。
退出门槛
同一不可变根可通过 OCI 与 WASI 工作区视图打开并验证逻辑等价;OCI 命令读取不会逐次重建 CAS。
解锁能力
- 可移植检查点
- 后端独立性
阶段 02
SandboxGraph 运行时
- 目标
- 让不可变检查点节点而不是运行中的会话成为持久分支抽象。
- 交付范围
- 持久化 SandboxGroup、SandboxNode 与 ExecutionAttempt 记录。
- 按根执行 activate、checkpoint、merge、promote、prune 与 retry。
- 私有可写增量,以及 OCC、租约、崩溃恢复和有界 GC。
退出门槛
兄弟节点写入保持隔离;热本地分支不会重复 lowerdir 数据载荷;过期提升无法覆盖更新工作。
解锁能力
- 多智能体分支
- 评审与合并
阶段 03
Rollout Fabric
- 目标
- 把大型持久搜索图调度到小规模、有界且隔离的在线沙箱池。
- 交付范围
- 基于租约的调度,以及并发、资源和局部性限制。
- 版本化评估器、策略、种子、轨迹与接受记录。
- 把 MCTS 统计移出不可变检查点,并实现幂等 rollout 重试。
退出门槛
重试不会重复应用奖励或反向传播;非活跃节点驻留磁盘;前沿租约在恢复与 GC 期间保持有效。
解锁能力
- 并行 RL rollout
- MCTS 扩展
阶段 04
Ephemeral Sandbox Fabric
- 目标
- 以相同的检查点与评估契约统一异构执行器和局部性感知工作节点。
- 交付范围
- 在共享状态平面之上提供 OCI/Linux 与 WASI 工作区适配器。
- 能力感知的工作节点注册和缓存局部性调度。
- 固定环境语义、来源、可观测性与结果密封。
退出门槛
Sandbox Group 可在所有受支持后端上可复现地调度,无需目标镜像工具、不共享可写状态,也不存在后端专属检查点事实。
解锁能力
- 异构工作节点
- 集群规模调度
产品需求
0.2.x 必须保持的系统契约。
必要结果
- 每个可选择节点都由不可变根、持久逻辑状态和来源信息组成。
- 每个活跃 attempt 独占私有可写增量、命名空间、租约与资源预算。
- 逻辑分支相对工作区大小为 O(1);热分支新增 lowerdir 数据载荷为零。
- 只有显式 OCC 合并或提升可以推进规范项目根。
- 内存与在线沙箱数量不随图规模和历史深度增长。
- 检查点发布、重试、评估、反向传播与 GC 都能幂等恢复。
不进入必需路径
- 可移植核心不包含 CRIU 或指令级精确的在线进程回滚。
- 必需路径不依赖 FUSE、自定义内核、loop device、XFS reflink 或目标镜像工具。
- 父、子或兄弟 attempt 之间不共享可写 upperdir。
- 不采用每个持久节点常驻一个容器或 VM 的模型。
- 搜索统计不写入不可变文件系统清单。
- 不会静默提升推测性或过期结果。
工作负载模型
一个底座,三种编排模式。
| 维度 | 多智能体开发 | RL 协调器 | MCTS 控制器 |
|---|---|---|---|
| 图结构 | 包含合并节点的分支 DAG | 从固定根进行宽度扇出 | 选择与扩展树 |
| 持久输出 | 代码检查点、测试和评审证据 | 轨迹、奖励和终止状态 | 子检查点与评估结果 |
| 集成规则 | 通过 OCC 合并兼容写入 | 学习器消费版本化轨迹 | 每个被接受 rollout 仅反向传播一次 |
| 保留策略 | 保留活跃分支与已发布历史 | 保留轨迹,裁剪大多数工作区 | 租赁前沿并裁剪被拒绝子树 |
