# 规范

> 规范草案 v0.2 定义五个累积的符合性等级，从 L0 Files 到 L4 Sync。每一级都对应一组概念和一组可执行的验收测试；没有 `conformance.json` 的“兼容”声明不被接受。

> **草案.** 目前没有参考实现，也没有可运行的符合性测试套件。下面的验收测试是规范的一部分：它们的作用，是让“兼容”这个词可以被检验。

## 规范的组成

| 组件 | 内容 | 目标版本 |
| --- | --- | --- |
| Core | 六个名词、Store 契约、分支与受保护树、合并、软删除。 | v0.3 草案 |
| Lease & Record | 租约格式（`authorization_details` 档案）、记录与读清单的格式、`explain`。 | v0.3 草案 |
| Interfaces | 挂载语义、Git 与 S3 的投影、HTTP API、MCP 工具面。 | v0.4 草案 |
| Memory | 笔记约定、派生物与配方、预算读取、证据指针。 | v0.4 草案 |
| Guard | 标签、会话污点、策略档案、Gate Card、遗忘报告。 | v0.5 草案 |
| Sync | 交接包、标签门槛、墓碑。 | 之后 |
| Conformance Suite | 每个等级的可执行验收测试。 | 与各版本同步 |

## 符合性等级

等级是累积的：声明 L2，就必须同时满足 L0 和 L1。

| 等级 | 名称 | 覆盖的概念 | 一句话 |
| --- | --- | --- | --- |
| L0 | Files | Agent Home、Agent Branch | 带历史的目录。 |
| L1 | Authority | Flight Recorder、Capability Lease、Human Gate | 谁、凭什么、做了什么。 |
| L2 | Memory | Agent Memory、Budgeted Reads | 记忆可读、可迁移。 |
| L3 | Guard | Trust Labels、Cascade Forget | 限制后果。 |
| L4 | Sync | 无（可选） | 多节点。 |

## L0 Files：带历史的目录

1. 在运行分支里改文件，受保护的主线保持不变。
2. 直接写受保护树（即使凭据有效）被拒绝。
3. 删除受保护树里的文件之后，可以从回收区恢复。
4. 导出再导入，得到字节一致的树与历史。
5. 至少提供两种标准视图：挂载与 Git，或者其中一种加 S3。

## L1 Authority：谁、凭什么、做了什么

1. 没有租约的请求被拒绝，并且拒绝被记录。
2. 申请超出父租约的子租约被拒绝。
3. 租约到期后挂载变为只读；撤销在实现所声明的时限内生效。
4. 没有任何租约能删除快照。
5. 任一提交都可以 `explain` 到运行、租约与读清单。
6. 记录链校验通过；篡改一条记录后，校验失败。
7. 合并进受保护树时，Gate Card 展示由 NAS 计算的差异，且批准绑定摘要：差异一改，批准即失效。

## L2 Memory：记忆可读、可迁移

1. 删除全部索引并重建后，黄金召回测试通过。
2. 不经 Memory 层，笔记就可以被读取。
3. 每个派生物都带配方与输入。
4. 预算读取在预算不足时降级，并声明实际的视图。
5. 证据指针可以校验：提交变化后，指针仍然指向原来的内容。

## L3 Guard：限制后果

1. 在具备 B 与 C 的租约下，读过 `external` 的会话触发 C 类动作时，被拒绝或转交闸门。
2. 派生物继承其输入标签的并集。
3. 受污染会话写入的笔记不会被自动加载。
4. 遗忘请求产出含“覆盖不到的范围”的报告；法律保留能阻止遗忘。
5. 策略求值不调用 LLM：策略引擎没有对模型的出站调用，可以审计。

## L4 Sync：多节点

1. 两个节点同步之后，树一致。
2. 不向许可级别更低的节点发送高敏感的对象。
3. 遗忘的墓碑传播到对端。
4. 交接包可以在对端被执行，并且租约只会更窄。

## 声明格式

实现必须发布一个 `conformance.json`：声明符合的等级、各项测试的结果与已知的偏差。没有这份文件的“兼容”声明不被接受。

*conformance.json*

```json
{
  "implementation": "example-nas",
  "version": "0.1.0",
  "spec": "0.2",
  "level": "L1",
  "tests": { "L0.1": "pass", "L0.2": "pass", "L0.3": "pass", "L0.4": "pass", "L0.5": "pass",
             "L1.1": "pass", "L1.2": "pass", "L1.3": "pass", "L1.4": "pass",
             "L1.5": "pass", "L1.6": "pass", "L1.7": "pass" },
  "deviations": ["L1.3: revocation takes effect within 60 seconds"]
}
```

## 版本与兼容

- 语义化版本。0.x 期间不保证兼容。
- 新增字段向后兼容。
- 废弃的字段至少保留一个版本的警告期。

## 规范暂不规定

传输协议的版本细节、具体的策略语言、令牌的签名算法、具体的存储引擎，以及用户界面。

---

规范网址: https://agentnas.com/zh-cn/spec/
更新于: 2026-11-11 · 规范草案 v0.2 · CC BY 4.0
