前置

Decision Trace and Authorization Audit

运行时策略管线不仅需要决定一次工具调用是被拒绝、需要审批还是获准执行,还应支持在事后还原该决策的形成过程。

为此,引入 Decision Trace(决策链)机制。决策链记录一次工具调用经过的策略节点及其决策关系,并在拒绝或开始执行等关键节点生成带时间戳的终点事件。审计时,从终点事件关联的决策节点出发,沿 parent_id 回溯,即可重建本次调用实际经过的决策路径。

该机制无需在终点事件中重复保存整条管线的所有策略信息。各策略节点分别保存自身的决策事实,终点事件只需引用对应的决策链。

决策链模型

每次工具调用都有独立的 call_id,并关联一条由策略决策节点组成的链。各节点根据实际发生的决策关系建立父子关联;尚未执行的后续阶段无需生成节点。

记录结构

决策节点至少需要包含以下信息:

  • node_id:当前决策节点的唯一标识。
  • parent_id:直接前置的决策节点;根节点为空。
  • call_id:所属工具调用的标识。
  • layer:产生决策的策略层。
  • decision:该层的决策结果,例如 allow、ask、deny 或 no_match。
  • matched_rule:命中的规则或策略条目标识;未命中时为空。
  • policy_revision:本次决策实际使用的策略版本。

终点事件与时间戳

终点事件至少需要包含以下信息:

  • event_id:终点事件的唯一标识。
  • call_id:所属工具调用的标识。
  • trace_head_id:作出终止决定的节点;当调用开始分发时,指向最后一个适用的决策节点。
  • event:拒绝时为 denied;获准并进入分发时为 dispatch_started。
  • timestamp:事件发生的时间。

Subagent

Subagent 沿用现有六层运行时策略。管线顺序不变,策略来源换成子级自己的有效策略。有效策略在创建时由父级有效策略与本次委派的收紧条件共同决定,并写入子会话。Spawn 与 Fork 共用这套继承;二者只在上下文上不同,权限行为相同。

继承

子级的每一项策略都落在父级有效范围之内。委派时附带的过滤、网络开关和沙箱限制只用于进一步收紧。

策略子级得到的策略
Work mode父级有效能力集合再经本次过滤。以能力集合为准,而不是继承 mode 的枚举值
Network父级网络开关,且本次委派可以把它关掉
User rule全部祖先规则,父级只能在其上再增加限制。优先级为 deny > ask > allow
Tool approval policy本次委派单独指定的审批策略,与父级当前策略分开。默认 whitelist_accept,也可改用其他策略
Approval response policy固定为 never:审批请求直接拒绝
Sandbox mode父级有效沙箱再经本次收紧
持久化子会话保存完整的委派策略快照

创建时先取父级的有效策略,再与本次委派求交,得到子级有效策略。能力取交集,网络在父级允许且本次委派未关闭时才打开,用户规则合并全部祖先,工具审批采用本次单独指定的策略,审批应答固定为直接拒绝,沙箱取父级与本次收紧的交集。随后初始化工具范围、审批应答和沙箱,写入快照,再启动子 Agent。

Spawn 与 Fork

创建方式上下文策略
Spawn全新会话同一套继承
Fork带上已完成的对话历史同一套继承

持久化与收紧

子会话保存委派当时的完整有效策略,并记下父会话、策略版本和创建时间。快照涵盖能力、工具、网络、用户规则、工具审批、审批应答和沙箱。

运行中父级可以继续收紧子级。收紧立即生效,并提高快照版本;已经在执行的任务同样受新约束。父级事后放宽自己的权限时,子级保持已收紧的范围。子 Agent 冷恢复时读回这份快照。

执行

一次子级工具调用仍按原顺序经过各层,每层读子级的有效策略:能力、网络、继承来的用户规则、独立的工具审批、固定为直接拒绝的审批应答、沙箱,然后执行。

能力在模型侧隐藏未授予的工具,执行器在真正执行前再校验一次。沙箱在执行层强制,包括 shell 路径。由此:

  • 父级为 ro 时,子级的写入被拒绝。
  • 父级关闭网络时,子级保持关闭。
  • 祖先规则为 deny 时,子级写出的 allow 仍然拒绝。
  • 祖先规则为 ask 时,请求进入询问,并因审批应答固定为直接拒绝而结束。
  • 子级审批策略本身要求询问时,请求直接拒绝。
  • 子级的沙箱保持在父级沙箱之内。
  • 父级在运行中收紧时,子级同步收紧;父级恢复原权限时,子级保持收紧后的范围。
  • 冷恢复读回原快照。
  • Fork 与 Spawn 的权限行为相同。