
Ephemeral AI FS:多智能体工作区的存储基础
前言:多智能体工作区的存储挑战
2026-08-13 14:09 GMT+8
多智能体协作的存储问题:
问题:
- 多个智能体同时编辑文件
- 如何共享未变更的内容?
- 如何隔离各自的编辑?
- 如何发布变更到主分支?
- 如何处理冲突?
传统方案:
- 每个智能体复制完整工作区
- 编辑后合并变更
- 性能随工作区大小扩展
- 冲突处理复杂
今天介绍 Ephemeral AI FS:
Branch-aware, content-addressed storage for multi-agent workspaces
分支感知、内容寻址的多智能体工作区存储
一、项目概览
Ephemeral AI FS 是一个为多智能体工作区设计的存储系统。
一句话说清楚:
给 Ephemeral AI Computer 提供持久化工作区层,智能体可以独立读写文件、共享未变更内容、通过一个权威的 SQLite 支持的工作区发布变更
项目地址:https://github.com/Ephemeral-AI-Lab/ephemeral-ai-fs 开源协议:MIT 技术栈:Node.js, SQLite, TypeScript
核心特性
共享内容:
- SHA-256 CAS 对象和认证清单保持未变更字节的共享
- 相同内容在文件、修订和智能体之间共享
本地编辑:
- FastCDC 和有界本地重建路径在工作负载允许时保持编辑的本地性
- 不需要复制整个工作区
持久化发布:
- SQLite 事务、租约、修订、配额和冲突检查保护权威工作区
- 原子发布到主分支
设计目标
从完整复制到内容共享:
- 传统:完整工作区复制
- 新方法:共享不可变内容,隔离智能体状态
C3 存储流水线:
- 共享不可变数据
- 私有智能体状态
- 有界编辑
- 显式发布到一个持久化主视图
二、核心设计
三大支柱
1. CAS(Content-Addressed Storage)
- SHA-256 哈希寻址
- 共享相同字节
- 跨文件、修订、智能体共享
2. CDC(Change Data Capture)/ FastCDC
- 内容定义分块
- 插入和删除重连到未变更内容
- 保持编辑本地性
3. Merkle 清单
- 认证、有序的文件内容
- 不可变修订
- 快速验证
SQLite 作为权威
事务:
- 原子提交
- 一致性保证
- 隔离性
租约:
- 防止冲突
- 自动过期
- 恢复边界
修订:
- 不可变历史
- 快速回滚
- 审计追踪
配额:
- 限制存储
- 公平分配
- 资源管理
冲突检查:
- 显式冲突
- 自动检测
- 安全合并
三、工作流程
1. 写入和存储
Agent edit
|
v
EphemeralFS operation
|
+--> FastCDC chunks -----> SHA-256 CAS objects
|
+--> Ordered entries ----> Authenticated Merkle manifest
|
v
SQLite transaction
|
v
Immutable revision步骤:
- 智能体编辑文件
- EphemeralFS 操作
- FastCDC 分块
- 存储 SHA-256 CAS 对象
- 构建认证 Merkle 清单
- SQLite 事务
- 创建不可变修订
2. 读取工作区
Main head or branch head
|
v
Authenticated manifest
|
v
Bounded manifest cursor
|
v
Shared CAS objects
|
v
Bounded file read or stream步骤:
- 从主分支或分支头读取
- 认证清单
- 有界清单游标
- 共享 CAS 对象
- 有界文件读取或流
3. 发布分支
Private branch
|
v
Verify expected base revision
|
+---- base unchanged ----> Atomic publish to main
|
+---- base changed -------> Explicit conflict步骤:
- 私有分支
- 验证预期的基线修订
- 基线未变更 → 原子发布到主分支
- 基线已变更 → 显式冲突
四、核心机制实现
C3 机制实现
| C3 机制 | 实现位置 | 状态 |
|---|---|---|
| CAS:共享未变更字节 | packages/fs/src/cas/ 和 packages/fs/src/sqlite/content-repository.ts | ✅ M1/M2 accepted |
| CDC:本地编辑后重连 | packages/fs/src/cdc/fastcdc.ts 和 packages/fs/src/operations/local-rebuild.ts | ✅ M3 durable local-rebuild path |
| 认证清单 | packages/fs/src/manifests/ 和 packages/fs/src/sqlite/manifest-tree-repository.ts | ✅ M2 accepted |
| COW 页面和补丁 | packages/fs/src/cow/pages.ts 和 packages/fs/src/sqlite/overlay-repository.ts | ✅ M4 branch overlays and bounded publication |
| 分支基线和冲突检查 | packages/fs/src/branches/, branch-repository.ts, 和 branch-engine.ts | ✅ M4 accepted |
| 一个持久化权威 | packages/fs/src/sqlite/driver.ts 和 transaction-scoped repositories | ✅ M2 accepted |
结果:
- C3 风格执行的文件系统基础
- 共享不可变数据
- 私有智能体状态
- 有界编辑
- 显式发布到一个持久化主视图
五、里程碑进度
M0 foundation ✅
M1 content engine ✅
M2 SQLite storage ✅ latest accepted milestone
M3 filesystem I/O ✅ accepted milestone
M4 branches ✅
M5 maintenance ⏳
M6–M10 integration ⏳| 里程碑 | 范围 | 状态 |
|---|---|---|
| M0 | Repository and test foundation | ✅ Accepted |
| M1 | CAS, CDC, COW, patches, and manifests | ✅ Accepted |
| M2 | Transactional SQLite storage and Node driver | ✅ Accepted |
| M3 | Filesystem namespace, revisions, and I/O | ✅ Accepted |
| M4 | Branches and publication | ✅ Accepted |
| M5 | Maintenance, recovery, and bounded scale | ⏳ Planned |
| M6–M10 | Cloudflare parity, Node VFS, replication, release, and Computer integration | ⏳ Planned |
M3 接受标准
A6 基准门禁:
- 500 次分散编辑在 20 秒内
- 最新干净运行完成 500/500 在 9.975 秒
特性:
- 读取路径批处理
- 持久化有界本地重连
- 异步写入路径哈希
六、性能基准
标题结果
| 指标 | 基线 | M2 | M3 |
|---|---|---|---|
| 冷 100 MiB 写入 | 17.9 MiB/s | 44.2 MiB/s | 60.0 MiB/s |
| 冷 100 MiB 读取 | 43.8 MiB/s | 118.1 MiB/s | 259.6 MiB/s |
| 热 100 MiB 读取 | 44.4 MiB/s | 118.6 MiB/s | 2,921.5 MiB/s |
| A1 写入语句 | 12,472 | 2,880 | 1,174 |
| 证据检查 | — | 99 passed | 156 passed |
工作负载结果
| 工作负载 | 基线 | M2 | M3 |
|---|---|---|---|
| 4 KiB 随机读取 | 2.85 ms/op | 1.17 ms/op | 0.57–1.02 ms/op |
| 100 MiB 物化 | 33.8 MiB/s | 67.9 MiB/s | 108.5 MiB/s |
| 100 × 1 MiB 物化 | 33.7 MiB/s | 64.6 MiB/s | 98.1 MiB/s |
| 100 次一字节编辑 | 8.95 s | 4.44 s | 2.13 s |
| 混合工作区,冷 / 热 | 5.99 / 5.65 s | 2.28 / 2.33 s | 2.29 / 2.30 s |
| 100 MiB 上三次一字节编辑 | 18.6 s | 9.4 s | 70.676 ms |
| A6: 500 次分散编辑 | — | — | 500/500 in 9.975 s — pass |
| Workerd 写入路径哈希 | — | 69.3 MiB/s | 383.5 MiB/s |
M4 分支引擎基准
| 工作负载 | 准备 | 发布 | 结果 |
|---|---|---|---|
| 5 分支 × 100 路径 | 2.85 s | 0.58 s | 5 merges, 0 conflicts |
| 10 分支 × 100 路径 | 5.78 s | 1.23 s | 10 merges, 0 conflicts |
| 5 个同 inode 写入者 | 43 ms | 6.4 ms | 1 merge, 4 conflicts |
| 10 个同 inode 写入者 | 61 ms | 9.0 ms | 1 merge, 9 conflicts |
| 2 个硬链接别名 | 12 ms | 12.9 ms | 1 merge, 1 conflict |
| 500 COW 编辑 | 474 ms | 51 ms | 1 merge |
| 500 结构补丁 | 4.21 s | 5.3 ms | 1 merge |
| 物理重新打开后重放 | 95.6 ms | 6.9 ms | 0.26 ms replay |
完整简化矩阵:
- 20/20 单元通过,18.5 秒
- 三次冲突运行通过 3/3 单元
七、为什么这个设计?
完整复制的问题
完整工作区复制:
- 分支创建和重复编辑随工作区大小扩展
- 每个智能体复制完整工作区
- 存储和计算成本高
内容共享的优势
Ephemeral AI FS 分离不可变内容与工作区状态:
1. CAS
- 共享文件、修订和智能体之间的相同内容
- 减少存储
- 提高速度
2. CDC
- 帮助插入和删除重连到未变更内容
- 保持编辑本地性
- 减少数据传输
3. Merkle 清单
- 提供认证、有序的文件内容
- 快速验证
- 安全发布
4. SQLite
- 提供事务、配额、租约和恢复边界
- 持久化
- 一致性
5. 显式回退
- 当编辑超过有界本地路径时保留正确性
- 不会信任过时的派生索引
- 不会返回错误的字节
八、快速开始
要求
- Node >= 22.13
- pnpm 10.32.1
安装
pnpm install
pnpm validate:accepted运行测试
M2 存储套件:
pnpm test:m2存储引擎基准:
node tests/performance/mini-bench.mjs分支引擎基准:
pnpm bench:branches九、仓库地图
packages/fs/ 主机中立的文件系统核心和算法
packages/sqlite-node/ 文件支持的 Node SQLite 适配器
packages/sqlite-cloudflare/ Cloudflare/workerd 适配器
packages/node-vfs/ Node VFS 集成
packages/replication/ 复制包
tests/algorithms/ M1 内容和清单测试
tests/storage/ M2 SQLite 存储测试
tests/conformance/ M3 文件系统一致性测试
tests/performance/ 存储和分支基准工具和产物
docs/implementation/ 里程碑计划和接受标准
docs/evidence/ 接受的里程碑证据
docs/benchmarks/ 基准计划、结果和改进目标十、实际应用场景
场景 1:多智能体协作
需求:
- 多个智能体同时编辑同一个工作区
- 共享未变更的内容
- 隔离各自的编辑
使用 Ephemeral AI FS:
- CAS 共享相同内容
- 分支隔离编辑
- 发布时合并
场景 2:快速迭代
需求:
- 智能体快速迭代代码
- 频繁创建分支
- 快速发布变更
使用 Ephemeral AI FS:
- FastCDC 保持编辑本地性
- Merkle 清单快速验证
- SQLite 原子发布
场景 3:冲突检测
需求:
- 多个智能体同时编辑
- 自动检测冲突
- 安全合并
使用 Ephemeral AI FS:
- 显式冲突检查
- 验证基线修订
- 原子发布或冲突
十一、核心价值
1. 内容共享
CAS 共享相同字节:
- 跨文件、修订、智能体共享
- 减少存储
- 提高速度
2. 编辑本地性
FastCDC 保持编辑本地:
- 插入和删除重连到未变更内容
- 不需要复制整个工作区
- 减少数据传输
3. 认证和有序
Merkle 清单:
- 认证、有序的文件内容
- 快速验证
- 安全发布
4. 持久化和一致性
SQLite 事务:
- 原子提交
- 一致性保证
- 隔离性
5. 冲突检测
显式冲突检查:
- 验证基线修订
- 自动检测
- 安全合并
十二、总结
核心问题
多智能体工作区的存储挑战:
- 如何共享未变更的内容?
- 如何隔离各自的编辑?
- 如何发布变更到主分支?
- 如何处理冲突?
传统方案的问题
完整工作区复制:
- 分支创建和重复编辑随工作区大小扩展
- 存储和计算成本高
- 冲突处理复杂
Ephemeral AI FS 的解决方案
分离不可变内容与工作区状态:
1. CAS
- 共享相同字节
- 减少存储
- 提高速度
2. CDC
- 保持编辑本地性
- 重连到未变更内容
- 减少数据传输
3. Merkle 清单
- 认证、有序的文件内容
- 快速验证
- 安全发布
4. SQLite
- 事务、配额、租约、恢复边界
- 持久化
- 一致性
5. 显式回退
- 保留正确性
- 不会信任过时的派生索引
- 不会返回错误的字节
为什么选择 Ephemeral AI FS?
1. 内容共享
- CAS 共享相同字节
- 跨文件、修订、智能体
2. 编辑本地性
- FastCDC 保持编辑本地
- 不需要复制整个工作区
3. 认证和有序
- Merkle 清单
- 快速验证
- 安全发布
4. 持久化和一致性
- SQLite 事务
- 原子提交
- 一致性保证
5. 冲突检测
- 显式冲突检查
- 自动检测
- 安全合并
记住
Ephemeral AI FS 是多智能体工作区的存储基础。
共享不可变数据,私有智能体状态,有界编辑,显式发布。
分支感知、内容寻址的多智能体工作区存储。
附:资源链接
项目资源:
- GitHub:https://github.com/Ephemeral-AI-Lab/ephemeral-ai-fs
- Agent Infra Book:https://github.com/agent-infra-foundation/agent-infra-book/blob/main/cloudflare/computer/chapters/PART-III.md
- License:MIT
里程碑证据:
- M2 acceptance evidence:https://github.com/Ephemeral-AI-Lab/ephemeral-ai-fs/blob/main/docs/evidence/m2/exit.md
- M3 acceptance evidence:https://github.com/Ephemeral-AI-Lab/ephemeral-ai-fs/blob/main/docs/evidence/m3/exit.md
- Implementation plan:https://github.com/Ephemeral-AI-Lab/ephemeral-ai-fs/blob/main/docs/implementation/implementation-plan.md
基准测试:
- M2 benchmark details:https://github.com/Ephemeral-AI-Lab/ephemeral-ai-fs/blob/main/docs/benchmarks/m2-minibench.md
- M3 improvement plan:https://github.com/Ephemeral-AI-Lab/ephemeral-ai-fs/blob/main/docs/benchmarks/m3-improvements.md
快速开始:
# 安装
pnpm install
pnpm validate:accepted
# 运行测试
pnpm test:m2
# 运行基准
node tests/performance/mini-bench.mjs
# 运行分支基准
pnpm bench:branches"
