layerfs
Ephemeral-AI-Lab/layerfs加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你一定经历过这个场景:Claude 的代码建议看着很合理,点下确认的瞬间,整个项目就跑不起来了。回退?太晚了,git diff 里一片狼藉。不是 Claude 不够聪明,而是 AI Agent 每一次文件操作都"裸奔"在同一个文件系统上——没有任何保护机制,没有任何分支隔离,没有任何后悔药。
这就是 LayerFS 试图解决的核心问题:让 AI Agent 的每一次文件操作都发生在「受保护的快照」里,而不是直接改写真实磁盘。
LayerFS 来自 Ephemeral AI Lab,作者在 GitHub 页面标注为活跃开发者,项目定位是"面向 AI Agent 的递归文件系统"(Recursive File System,RFS)。项目采用 Rust 语言开发,版本号已迭代至 v0.1.6(Developer Preview),采用 MIT 许可证,开源可商,用。
作者 yifanxu_ephai 同时运营配套学习平台 learn.layerfs.ai,并在 Discord 和 X(前 Twitter)保持活跃更新。项目还配有详尽的中文架构文档(explanation-zh.md),体现了对中文开发者社群的重视。

LayerFS 核心概念:LayerStack → Branch → Commit → Workspace 生命周期
LayerFS 借鉴了 Git 的设计哲学,但目标场景完全不同。它的核心抽象是四个概念的闭环:
| 概念 | 类比 | 功能 |
|---|---|---|
| LayerStack | Git 仓库 | 完整文件状态的有序历史,所有快照共享底层对象 |
| Layer | Git tag/里程碑 | 不可变的完整快照,承载共享检查点 |
| Branch | Git branch | 从某个起点展开的独立演进路径 |
| Commit | Git commit | 一次工具调用的文件变化结果,不可变记录 |
| Workspace | 工作目录临时副本 | 每次工具调用的独立可写视图,用完即弃 |
核心工作流:Agent 从某个 Layer 或 Commit 创建 Workspace → 在隔离空间内执行文件操作 → 显式提交形成新 Commit → Commit 可作为新 Branch 的起点继续探索,或回滚到之前的任意状态。
LayerFS 通过这套机制实现了所谓的 "Workspace per tool call":每个影响文件状态的工具调用,都运行在独立的 Workspace 中,互不干扰。
LayerFS 不是简单地在内存里复制文件,而是采用了三种精妙的存储技术来保证效率:
每个文件对象根据内容的哈希值命名。这意味着完全相同的文件内容在物理上只存储一份,不同 Branch、不同 Agent 的相同文件天然去重。读取时直接通过哈希验证完整性——既省空间,又防篡改。
分块边界由内容本身决定(而非固定大小分片)。对小文件追加 10 字节,只会影响它所在的分块,而不会"连坐"整个文件。在实测中,向 32 MiB 文件追加 10 字节,语义内容增量仅 0.0256 MiB,精确到字节级别。
发布新 Commit 时,只复制发生变化的文件和目录路径,保留未修改的子树。Branch 的头部通过 Add 操作即可成为新的 Layer,被后续共享——这就是"零拷贝分叉"(zero-copy fork)的实现基础。
实测数据:16 次确定性文件编辑的语义内容增量仅 0.225 MiB;追加操作去重效率高达 99.9%。这意味着在 LayerFS 中跑 100 次 Agent 工具调用,存储成本可能只相当于复制原项目 2-3 次。
LayerFS 采用 Rust Workspace 组织,核心代码分布在 9 个专用 Crate 中:
layerfs-content:内容寻址对象、分块、extent 和树结构layerfs-layerstack-store:SQLite schema、历史、对象准入控制layerfs-workspace:临时 Workspace 管理、执行和容器生命周期layerfs-materialization:目录物化和变更捕获layerfs-fuse:Linux FUSE 及主机/代理适配器layerfs-daemon:认证容器挂载和执行协议layerfs-monitor:执行收据、计时和去重分析layerfs-sdk:公开的 Rust 客户端和值类型layerfs-cli:layerfs 命令行工具底层存储采用 SQLite,作为内容寻址数据库,性能可靠且零依赖。FUSE 容器方案也提供了独立的 Dockerfile,在 Linux 环境下可实现隔离的文件系统投影。

LayerFS 目前处于 Developer Preview 阶段,没有发布 crates.io 包,也没有预编译二进制,需要从源码构建。
/dev/fuse 设备和 CAP_SYS_ADMIN 能力git clone https://github.com/Ephemeral-AI-Lab/layerfs.git
cd layerfs
cargo build --release -p layerfs-cli
export LAYERFS_BIN="$PWD/target/release/layerfs"
export LAYERFS_CONTEXT="$PWD/.layerfs/context"
mkdir -p "$PWD/.layerfs"
"$LAYERFS_BIN" db create "$PWD/.layerfs/store.sqlite"
"$LAYERFS_BIN" context use --store "$PWD/.layerfs/store.sqlite"
"$LAYERFS_BIN" layerstack init --name demo --empty
官方提供了完整的 Quickstart 文档(v0.1.6 版本),涵盖 Branch 创建、Workspace 执行、Commit 发布和 FUSE 容器等完整工作流。
LayerFS v0.1.6 坦诚地列出了以下已知限制:
mmap 映射的脏页在 Commit 时无法捕获项目明确声明:不适合作为生产存储,仅用于本地评估和 Agent 运行时集成研究。
LayerFS 的出现折射出一个重要趋势:AI Agent 的工作负载正在从"访问文件系统"走向"管理文件系统状态"。传统的 AI Agent 只是操作文件,而 LayerFS 试图让 Agent 的每一次操作都变成可追踪、可回滚、可分支的历史记录。
这一方向与 GitOps、MLOps 中的版本控制理念一脉相承,但在 Agent 执行粒度上做了更精细的落地。在 AI Agent 频繁处理复杂多步任务(如代码重构、数据清洗、文档生成)的场景下,LayerFS 提供了一套系统性的解决方案——不必为每次探索单独克隆仓库,不必担心分支命名爆炸,不必手动管理临时文件。
同样做"Agent 文件系统"方向的竞品还包括 AgentFS、TigerFS 和 JuiceFS 等,但 LayerFS 的差异化在于:它以 SQLite 作为存储后端,零外部依赖,且在去重效率上有明确的量化数据支撑。
LayerFS 是一款面向 AI Agent 时代的文件系统基础设施,用 Rust + SQLite 的务实组合,实现了"每次工具调用一个 Workspace"的原子化隔离,并通过 CAS/CDC/COW 三大技术保证了存储效率。虽然目前是 Developer Preview 阶段,但对于希望在 AI Agent 运行时引入更精细化文件系统管理的开发者来说,它是一个值得关注的技术实验。
适合:有 Rust 经验的开发者、AI Agent 运行时基础设施研究者、文件系统爱好者。
不适合:追求开箱即用的用户、需要生产级存储保证的团队。
关键词:Agent 文件系统、内容寻址、零拷贝分叉、Workspace 隔离、Rust + SQLite