AN-04 L1 符合性等级: Authority 概念簇: 权限
Capability Lease 能力租约
发给一次运行的、有期限与预算的窄域授权;子租约只能更窄。
定义
Capability Lease(能力租约) 是对特定数据、特定操作、有明确期限与预算的授权,发给一次运行,也是运行接触 NAS 的唯一途径。子租约只能比父租约更窄。
要解决的问题
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_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 的属性放进同一张租约。令牌与能力模型本身都是现成的。
- OAuth Token Exchange (RFC 8693)
- OAuth Rich Authorization Requests (RFC 9396)
- Biscuit
- UCAN
- IETF attenuating agent tokens draft
坦诚的局限
- 只覆盖 NAS 内的操作,管不到智能体在别处的行为。
purpose不可强制;预算是近似的。- 租约不能阻止合法权限之内的误用,那是分支和闸门的工作。
开放问题
purpose如何从自由文本走向可机检的结构化意图?- 预算在联邦下怎样记账?
常见问题
租约和 API 密钥有什么不同?
API 密钥是长期共享的秘密,持有者能做账号能做的一切。租约绑定一次运行,限定路径、动作和期限,并且只能被收窄;到期即失效,可以随时撤销。
为什么不直接用 OAuth?
用的就是 OAuth:租约是访问令牌,靠令牌交换(RFC 8693)申请,用富授权请求(RFC 9396)描述范围。Agent NAS 只补上 OAuth 没有规定的部分:以运行为单位,把分支、预算与 Rule of Two 属性放进同一张授权。
租约过期后运行会怎样?
挂载变为只读并随后卸载,新的请求被拒绝并记录。分支保留到它自己的 TTL 到期,所以已完成的工作不会丢,仍然可以经审阅合并。
相关概念
- Human Gate (人类闸门) 只在不可逆、对外或提权的动作之前出现,展示真实的差异。
- Trust Labels (信任标签) 来源与敏感度两个小标签,加上会话污点,强制执行 Rule of Two。
- Flight Recorder (飞行记录仪) 以运行为单位、哈希链接的记录,包括这次运行读过什么。
引用本页
为读者、搜索引擎和智能体提供稳定的网址与建议的引用格式。
- 建议引用格式
- Agent NAS project. “Capability Lease (能力租约).” agentnas.com, 2026-11-11. https://agentnas.com/zh-cn/concepts/capability-lease/