AN-04 L1 符合性等级: Authority 概念簇: 权限

Capability Lease 能力租约

发给一次运行的、有期限与预算的窄域授权;子租约只能更窄。

定义

Capability Lease(能力租约) 是对特定数据、特定操作、有明确期限与预算的授权,发给一次运行,也是运行接触 NAS 的唯一途径。子租约只能比父租约更窄。

v0.2 规范草案 更新于

要解决的问题

RBAC 与 ACL 假设用户长期稳定、权限宽而持久;智能体需要的是按任务裁剪、到点失效的权限。更糟的是,长期凭据常常放在智能体够得着的地方:2026 年 4 月那次事故里的令牌,就躺在一个无关的文件里,名义上用来管理域名,实际上能做任何事。

工作方式

  • 谁拿着钥匙。 长期凭据只在编排器或所有者手里;运行拿到的是租约,不是钥匙。模型永远看不到长期凭据。
  • 租约是一枚访问令牌, 它的 authorization_details(RFC 9396)描述路径、动作与分支;由所有者或编排器通过令牌交换(RFC 8693)申请,act 声明记录委托链;NAS 端保存状态,用于撤销与预算计数。
  • 只能收窄。 子租约必须是父租约的子集,铸造时由 NAS 校验。
  • 预算。 读写字节数、请求数,以及可选的出口字节与花费上限,由网关计数。它是熔断器,不是精确计费。
  • 策略包络(policy envelope)。 所有者预先设定一个范围,范围内的租约自动发放,超出就交给 Human Gate。长期的访问用包络表达,而不是做成长期租约。
  • 显式声明 B 与 C。 租约写明最高敏感级别,以及是否允许受保护写入或出口,它们是 Trust Labels 的输入。
  • 撤销。 短 TTL(默认 4 小时,上限 24 小时)加即时撤销,撤销会级联到子租约。
  • **purpose 只记录,不强制:** 自由文本无法被机器检查。

从小处开始

  • 写一个 nas lease create 命令:为每个角色签发一枚带路径前缀、动作和 TTL 的令牌,用环境变量交给沙箱;NAS 一侧按前缀和动作强制。
  • 这已经能挡住那类事故的前半段:令牌无法做租约之外的任何事。
  • 预算、委托链与策略包络可以以后再加。

接口草图

仅作示意。字段名在规范 v0.3 之前可能调整。

lease.json
{
  "lease_id": "lse_7Qk3",
  "run": "run_91ab",
  "principal": "agt_cleo",
  "on_behalf_of": "usr_wei",
  "parent": null,
  "purpose": "Draft the Q4 release notes",
  "paths": ["/shared/launch/**", "/agents/cleo/workspace/**"],
  "actions": ["read", "write", "propose"],
  "branch": "cleo/run_91ab",
  "sensitivity_max": "private",
  "egress": false,
  "requires_gate": ["merge", "delete", "share"],
  "budgets": { "bytes_read": 200000000, "bytes_written": 5000000, "requests": 5000 },
  "expires_at": "2026-11-12T16:00:00Z"
}

规范的要求

  • 租约必须有到期时间,并且不得在最大 TTL 之后续期;续期需要新的发放。
  • 子租约必须是父租约的子集,NAS 必须在铸造时校验。
  • 撤销租约必须级联撤销它的全部子租约。
  • 长期访问必须以策略包络表达,不得做成长期租约。
  • 租约必须声明敏感级别上限,以及是否允许出口与受保护写入。
  • 长期凭据不得暴露给模型或运行。

借鉴与区别

下面这些都是现成的部件。真正新的部分: 以运行与任务的形状为单位,把分支、预算与 Rule of Two 的属性放进同一张租约。令牌与能力模型本身都是现成的。

坦诚的局限

  • 只覆盖 NAS 内的操作,管不到智能体在别处的行为。
  • purpose 不可强制;预算是近似的。
  • 租约不能阻止合法权限之内的误用,那是分支和闸门的工作。

开放问题

  • purpose 如何从自由文本走向可机检的结构化意图?
  • 预算在联邦下怎样记账?

常见问题

租约和 API 密钥有什么不同?

API 密钥是长期共享的秘密,持有者能做账号能做的一切。租约绑定一次运行,限定路径、动作和期限,并且只能被收窄;到期即失效,可以随时撤销。

为什么不直接用 OAuth?

用的就是 OAuth:租约是访问令牌,靠令牌交换(RFC 8693)申请,用富授权请求(RFC 9396)描述范围。Agent NAS 只补上 OAuth 没有规定的部分:以运行为单位,把分支、预算与 Rule of Two 属性放进同一张授权。

租约过期后运行会怎样?

挂载变为只读并随后卸载,新的请求被拒绝并记录。分支保留到它自己的 TTL 到期,所以已完成的工作不会丢,仍然可以经审阅合并。

引用本页

为读者、搜索引擎和智能体提供稳定的网址与建议的引用格式。

建议引用格式
Agent NAS project. “Capability Lease (能力租约).” agentnas.com, 2026-11-11. https://agentnas.com/zh-cn/concepts/capability-lease/