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