模式矩阵 /模式白皮书/G1

G1 · Approval Gate · 审批门

字段
双轴坐标 治理 Governance × 路由 Route(选)
成本档 ☷(跨切关注点,不在主推理路径上计费,横切在所有高风险动作上)
课程对应 08-02
目录归属 全集 33 模式之一 · 治理模块 5 模式之一
一句话 高 blast radius 或不可逆的动作执行前,按风险路由到自动放行 / 留痕 / 人审三档之一,让人在关键决策点保留最后否决权。

它解决什么问题

Agent 进生产之后,最贵的不是它跑得慢,是它独自 commit 了一个不可逆的高风险动作。一笔转账、一次 production 部署、一封对外发布的邮件,错一次的代价远超它跑一万次省下的人力。把所有动作都交给 Agent 自动执行是赌博,把所有动作都拦下来人审又会让效率回到 Agent 之前。

Approval Gate 把这件事路由化:每个动作到达决策点,先按风险分类,再分发到三个目的地之一——低风险自动放行、中风险留痕后执行、高风险强制人审。它不追求拦下每一个动作,只追求让"错的代价不可逆且巨大"的那一小类动作必须有人按过回车。这条边界还顺带回答了企业落地 Agent 最关心的一个问题——出事谁负责:有人审过的责任由审批人承担,自动决定的责任由产品 owner 承担。

为什么坐标是「治理 × 路由」

核心机制

一次审批评估由风险分级加三阶段路由组成:

阶段 做什么 关键纪律
Stage 1 Deny 命中黑名单规则直接拒绝 必须 inspect arguments 不只看 tool name
Stage 2 Allow 命中白名单的低风险动作自动放行 CRITICAL 风险不允许走 allow rule 通过
Stage 3 Ask 剩余的中高风险动作路由到人审 无人可审时默认拒绝,不默认放行

风险分级建议走 reversibility × impact 双轴,而不是单纯按金额线性切。可逆且影响小的自动放行,不可逆或影响大的强制人审,超过某个阈值的再加 two-person rule 要求两人独立复核。Claude Code 的 5+1 PermissionMode(default / plan / acceptEdits / bypass / dontAsk / auto)是这套档位设计的工业样本,把"全开/全关"二选一升级成了多档位加动态判定的状态机。

适合的生产场景

容易出错的地方

关键指标

最小骨架

对每个 action:
    risk = classify(action)          # reversibility × impact 双轴
    Stage 1 Deny  → 命中黑名单(查 args 不只查 name) → 拒绝
    Stage 2 Allow → 命中白名单 且 risk != CRITICAL → 放行
    Stage 3 Ask:
        risk == LOW            → 自动放行
        risk >= MEDIUM         → 路由到人审(无人可审则默认拒绝)
        risk 超阈值 / 不可逆    → two-person rule 双人独立复核
返回 ApprovalRecord(action / risk / decision / reviewer / rationale)
全程写 WORM audit log(满足监管留档)

工程落地三处必改:risk classifier 换成业务的(金融用 KYC + AML 评分、运维用 blast radius 估算);人审接口对接真实审批工作流(飞书 / Slack / ServiceNow)而非 console input;双人复核强制 reviewer1 ≠ reviewer2。

企业落地一例

某美国 mid-market 银行的 vendor payment Agent,第一版规则是"1 万美金以下自动付、以上需审批",前两个月跑得很顺。出事那次,一个老 vendor 通过伪造的 change notice 改了收款账号,Agent 读 notice、走 reconciliation、在季度账到期时自动付了 20 万美金,钱进了攻击者账户。根因不是 Agent 没标风险——它标了 high-amount——而是工程团队为了减少审批人不耐烦,加了一条"累计成功超 50 次的老 vendor 阈值放宽到 5 万美金"的 trust-score override,把这笔本该走审批的大额付款自动放行了。事故后银行加了一条铁律:no trust-score override on amount triggers,再老的 vendor 金额一过门槛审批人必须按回车。这套修正还包括 30 天内改过账号加大额组合强制双人复核、audit log 七年留档备查。问题的根因不是审批门不够用,是有人为了 UX 把审批门绕过了。

在执行型 Agent 的工程实现里,这套门可以做得更轻。当 Agent 有了任务节点和任务状态机之后,敏感任务能在节点处被阻塞、等人工审核通过再继续执行,需要审核的关键操作基于配置声明即可挂上 human-in-the-loop,不必每次都改代码。

与其他模式的关系

一句话记住它

Approval Gate 的本质不是 UX 工作流,而是责任承担工程——它把"Agent 出事谁背锅"这个模糊问题,转化成"有人审过的归审批人、自动决定的归 owner"这条明确的责任划分契约。


本页属于 ADPS 33 模式白皮书。返回 模式矩阵与白皮书目录, 或查看配套 可运行代码目录