跳到主要内容

审批与 ChangePlan

审批和 ChangePlan 是需要用户审阅动作的安全路径。它们让 Anyy 在执行高风险工具调用或会改变状态的计划前暂停,持久化待决决策,并通过可信路径重放已批准动作。

什么时候需要审批

审批取决于有效工具描述符和工具自身行为:

场景行为
直接读取通常无需审批即可运行。
低风险写入并审计描述符要求时会执行并写入审计记录。
连接器变更在发送或修改外部记录前返回 needs_approval
桌面控制computer_use 对 capture grant 和变更动作请求审批。
Host/config/root-capable 动作执行前使用确认或 ChangePlan 策略。
必须 force 的动作只提供 force_approvedeny

工具集只控制可见性。可见工具仍然保留自己的风险、审批策略、执行策略、输出预算、超时和审计类别。

ChangePlan 生命周期

Created

状态为 change_plan_created 的工具结果会创建 pending ChangePlan 和审批 prompt。Plan 保存:

字段含义
title人类可读的计划名称。
risk风险类别,例如 config-highdangerousforce-required
execution_policychange_planforce_change_plan
preconditions执行前应满足的条件。
current_state用于审阅的结构化当前状态快照。
proposed_changes计划变更。
commands要执行的命令或操作。
validation_steps执行后的验证步骤。
rollback_steps / rollback_mode可用时的恢复说明。
expected_impact面向用户的影响摘要。
plan_hash执行已批准计划前会校验的 hash。

Pending ChangePlan 默认 10 分钟过期。

Approved

批准 prompt 会把 ChangePlan 标记为 approved。Force approval 会标记为 force_approved,并写入 force-path 审计事件。

Anyy 会检查审批 prompt 是否实际提供了该决策选项。如果 prompt 只提供 force_approve,可信决策路径会把普通 approve 升级为 force_approve

Executed

执行前,Anyy 会验证:

检查目的
StatusPlan 已按要求 approved 或 force-approved。
Expiry非 force plan 尚未过期。
Plan hash已批准 plan 与待执行 plan 仍然一致。
Policyforce_change_plan plan 在执行前已经 force-approved。

执行可以把 plan 标记为 executingverifiedfailedrolled_back

审批入口

审批路径表示为 tuicliweixindashboard。可用路径取决于创建审批的会话 surface 和运行时路径。

审批 prompt 包含:

字段含义
kindtool_callchange_plan
session_id / turn_id重放和展示范围。
tool_call_id适用时的原始工具调用。
change_plan_idChangePlan 审批的 plan id。
titlesummaryrisk审阅文本。
options允许的决策。
expires_at审批过期时间。

定时审批

Cron 创建的 ChangePlan 可以携带定时元数据,例如 cron_job_idcron_run_id、origin session、channel binding、role、actor 和 workspace。存在这些上下文时,审批摘要会包含定时 due time。

审计轨迹

审批和 ChangePlan 会写入审计事件:

事件类别
Prompt 决策approval
Force approvalforce_path
Plan created/updated/approved/executing/verified/failed/rolled backchange_plan

工具重放也会记录审批关联元数据,因此审计轨迹可以把已批准执行关联回 approval id、tool call id 和 ChangePlan id。

Dashboard Approvals 页面

Dashboard 的 Approvals 页面通过 approval.list RPC 列出 open 和 decided approvals。它可以从浏览器会话批准或拒绝 open prompt。

该页面刻意只聚焦审批决策。详细工具日志、plan 内部结构和会话 transcript 仍位于对应的运行时、审计或会话视图。