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 总存储。

  1. 01+ O(1) 元数据

    干净分支

    子节点租用同一个不可变 lower 根,并从空的私有 upperdir 开始。

  2. 02upper 可能增加约 F

    首次编辑仅存在于 lower 的文件 F

    OverlayFS 可能先 copy-up 完整文件,再应用很小的逻辑写入。upper 条目是结果文件,不是字节增量。

  3. 03仍是一份 upper 文件

    一个会话内编辑十次

    重复写入会复用该会话已 copy-up 的 inode;发布前不会产生十份私有历史版本。

  4. 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 重建加入命令执行。

迁移计划

四个按依赖顺序推进的里程碑。

每个里程碑都有明确目标和可证伪的退出门槛。后续阶段不能掩盖存储、隔离或恢复契约的失败。

  1. 阶段 01

    通用 LayerStack

    目标
    让 LayerStack 成为可移植的工作区事实来源,同时避免把 CAS 重建放到命令执行热路径。
    交付范围
    • 与运行时无关的逻辑目录树清单和内容身份。
    • 为普通 OCI/Linux 文件与 PTY 执行提供原生物化。
    • 严格区分可移植身份与工作节点本地 extent 位置。

    退出门槛

    同一不可变根可通过 OCI 与 WASI 工作区视图打开并验证逻辑等价;OCI 命令读取不会逐次重建 CAS。

    解锁能力

    • 可移植检查点
    • 后端独立性
  2. 阶段 02

    SandboxGraph 运行时

    目标
    让不可变检查点节点而不是运行中的会话成为持久分支抽象。
    交付范围
    • 持久化 SandboxGroup、SandboxNode 与 ExecutionAttempt 记录。
    • 按根执行 activate、checkpoint、merge、promote、prune 与 retry。
    • 私有可写增量,以及 OCC、租约、崩溃恢复和有界 GC。

    退出门槛

    兄弟节点写入保持隔离;热本地分支不会重复 lowerdir 数据载荷;过期提升无法覆盖更新工作。

    解锁能力

    • 多智能体分支
    • 评审与合并
  3. 阶段 03

    Rollout Fabric

    目标
    把大型持久搜索图调度到小规模、有界且隔离的在线沙箱池。
    交付范围
    • 基于租约的调度,以及并发、资源和局部性限制。
    • 版本化评估器、策略、种子、轨迹与接受记录。
    • 把 MCTS 统计移出不可变检查点,并实现幂等 rollout 重试。

    退出门槛

    重试不会重复应用奖励或反向传播;非活跃节点驻留磁盘;前沿租约在恢复与 GC 期间保持有效。

    解锁能力

    • 并行 RL rollout
    • MCTS 扩展
  4. 阶段 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 仅反向传播一次
保留策略保留活跃分支与已发布历史保留轨迹,裁剪大多数工作区租赁前沿并裁剪被拒绝子树