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-tw/concepts/capability-lease/