跳到主要内容
返回文档Action Proof · 有界委派
规范

mandate 是一份产物,不是一个设置项。

有界委派是 Execution Authorization 之内的一种能力,不是另起一个类别。Task Contract 为这条链条定下框架;它不替换其中任何一环。每一步仍然产生自己那份一次性的 Execution Grant 和自己那份 Action Receipt。

设计

TaskContractV1

这份合约在单一的签名对象中绑定:tenant、可在其之下行事的行为者、它所指向的 Guardian 与 audience、修订号、步骤及其约束、预算及其单位、有效窗口、生效中的策略与 manifest,以及吊销计数器。

  • taskId · revision

    身份与版本。已批准的合约从不就地修改:任何一步的改动都会产生一个需要重新评审的新修订。

  • tenant · guardianId · audience

    它属于谁,以及哪一个执行点可以消费它。一份 mandate 只指向一个 Guardian。

  • actors[]

    每个行为者把一个标识符绑定到一把密钥及其 thumbprint。认领一个步骤,需要针对一个新鲜的 challenge 证明持有该密钥,而这个 challenge 是原子消费的。

  • authority

    由协议按操作固定。调用方既不能选它,也不能在同一个请求内把它降级,而且已批准的 mandate 从不降低某一步的门槛。

  • steps[]

    每一步点名自己的规范操作、提供方、资源清单、其确切参数的摘要,并把 maxUses 固定携带为一。

  • budget

    按 tenant、任务、修订与步骤持久且原子。已承诺 = 已消费,加上所有结果尚未确定或不确定的预留,因此同一份 grant 无法预留两次。

  • issuedAt · expiresAt

    有效窗口。过了它就不再发出新的步骤;没有宽限期,也不能从任务内部续期。

  • policyVersion · revocationVersion

    生效中的签名本地策略与吊销计数器。若存储或吊销不可用,就不再发出新的效果。

交集依然适用

有效权限 = mandate ∩ grant ∩ 签名的本地策略 ∩ 适配器约束 ∩ 预算 ∩ 身份 ∩ 有效性与吊销

云端从不抬高本地上限。mandate 只是交集里多出的一项,绝不是绕过它的路子,而 Guardian 会在接触任何提供方之前把它们全部执行到位。

状态机

一个任务恰好处在一个状态中,而账本记录的是状态转移,不是意图。

  • draft
  • approved
  • running
  • paused
  • completed
  • revoked
  • expired

有意的排除

  • 没有再委派。一份 mandate、一个 Guardian、一份预算;一个任务无法把自己的一部分交给另一个行为者,也无法立起第二个执行点。
  • 没有开放式效果。一个没有规范操作、没有参数摘要的东西,不算一个步骤。
  • 没有长期有效的授权。每一份 mandate 都会过期,而且这个过期无法从任务内部续期。
  • 行为者读到的东西——文档、工具输出、网页内容、记忆——是输入,绝不是 authority。它无法扩展这份合约。
  • 规范效果与前置状态由适配器判定。智能体的摘要、只读的模式,或从内容里取来的目的地,都不会被当作事实接受。

读取器的角色

本地读取器是用来解释的。在这个配置档下,一条孤立的发现、一次弃权、一次未评估或一次部分读取,都不会阻断、不会吊销,也不会对一个已经批准且被允许的确切效果强加额外审批。绝不会为了弥补一条告警而抬高 authority,也绝不会因为没有出现告警就降低它。身份、签名、预算、前置条件与吊销仍然朝着关闭的一侧失败——这不是可以不带控制就执行的许可。

状态

设计。模式及其不变量已经存在,并有测试覆盖。还没有任何被委派的 mandate 对着真实提供方执行过,因此这个配置档被标为模拟。结果绝不会从一个 mock 或另一个连接器外推而来,而用 MFA 或法定人数测过的旧连接器,也不能为多步委派背书。

尚未定论的问题

规范化的细节、大小与数量上限、时钟处理,以及对未知字段的拒绝,都会在动手做任何运行时之前先行固定,并与验证器一起作为带版本的测试向量公布。验证器先于配置档发布:不会发出任何还无法被独立验证的东西。

有界委派 — Task Contract 规范 | SecureStamp Foundation