AN-02 L0 符合性等级: Files 概念簇: 工作
Agent Branch 智能体分支
每次运行在写时复制的分支里工作,经审阅的合并才进入主线。
定义
Agent Branch(智能体分支) 让每次运行在写时复制的分支里工作;变更只有通过一次经审阅的合并(Agent PR)才能进入受保护的主线;随时可以打检查点并恢复。
要解决的问题
智能体以机器的速度犯错,而共享数据没有“试一试、看差异、审阅、撤销”的机制。并行的智能体还会互相踩踏。
2026 年 4 月的一次事故里,一个智能体用一枚权限过宽的令牌,在 9 秒内删除了生产卷和同卷的备份。如果它只能写一个分支,如果删除是软删除,如果快照不在它的权限之内,这件事会小得多。
工作方式
- 分支创建廉价(取决于引擎,理想情况接近 O(1))。租约只授予分支内的写入,以及向目标的
propose。 - 受保护树。 主线只能经合并更新:即使凭据泄露,也不能直接写。
- Agent PR。 差异、意图、来源(读清单摘要)、检查结果与标签摘要。检查通过且策略允许时自动合并,否则交给 Human Gate。
- 软删除。 受保护树中的删除进入回收区,默认保留 7 天;快照由所有者持有,不在任何租约的权限之内。
- 检查点。 命名的快照;
restore把文件回退到检查点。 - 合并。 文本用三方合并,其他文件按文件粒度。有冲突就停下,绝不静默覆盖;结构化数据需要注册的合并器,或者交给人。
- TTL 与配额, 防止“分支炸弹”。
- 并行尝试。 同一个任务可以开 N 个分支,择优合并,其余回收。
从小处开始
- Git 分支加 worktree,再加上 Forgejo、Gitea 或 GitHub 的受保护 main。
- 大目录用 btrfs 或 ZFS 的快照与克隆;对象存储可以用 Tigris 或 lakeFS 的分叉。
- 先把“删除进回收区”和“快照归所有者”做对。这两条最便宜,也最能防住事故。
接口草图
仅作示意。字段名在规范 v0.3 之前可能调整。
nas branch create cleo/release-notes --from main --ttl 48h
nas checkpoint create before-refactor
nas propose --into main --checks links,schema
nas restore before-refactor
nas trash list # recycle area, kept 7 days by default
nas trash restore <path> 规范的要求
- 受保护树必须只能经合并更新,任何凭据都不能直接写入。
- 合并必须产生带来源(运行、租约、主体)的提交。
- 任何租约不得允许删除快照或备份。
- 受保护树中的删除必须是软删除,并在配置的窗口内(默认 7 天)可恢复。
- 冲突不得被静默解决;合并必须停止并报告。
- 分支必须有 TTL 与配额。
借鉴与区别
下面这些都是现成的做法。真正新的部分: 把分支绑定到运行与租约,让分支成为授权的单位,合并成为审阅的单位。分支和快照本身并不新。
坦诚的局限
- 分支只保护 NAS 里的数据,不会撤销外部副作用:已经发出的邮件、已经调用的接口。
- 大型二进制文件和数据库文件很难合并。
- 审阅疲劳仍可能发生,所以低风险的路径允许自动合并,并度量批准率。
开放问题
- 语义合并器如何注册并被信任?
- 二进制冲突的交互应当怎么做?
常见问题
这和 Git 分支有什么不同?
机制上并不神奇:在 Git 上就能搭出来。不同的是它把分支与一次运行、一张租约绑在一起,让“只能写自己的分支”成为授权规则,而合并成为唯一的审阅点。
分支能防住所有事故吗?
不能。它只保护 NAS 里的数据:智能体已经发出的邮件、已经调用的外部接口,不会因为回滚分支而撤销。这类动作应当经过租约里的 egress 和 Human Gate。
每次合并都要人批准吗?
不是。检查通过、没有读过外部内容、不涉及删除或共享的合并可以自动进行;需要人的只有少数情形,见 Human Gate。
相关概念
- Human Gate (人类闸门) 只在不可逆、对外或提权的动作之前出现,展示真实的差异。
- Agent Home (智能体之家) 按角色划分、带历史的目录,全是普通文件,可以带走。
- Flight Recorder (飞行记录仪) 以运行为单位、哈希链接的记录,包括这次运行读过什么。
引用本页
为读者、搜索引擎和智能体提供稳定的网址与建议的引用格式。
- 建议引用格式
- Agent NAS project. “Agent Branch (智能体分支).” agentnas.com, 2026-11-11. https://agentnas.com/zh-cn/concepts/agent-branch/