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

A5 · Guardrail Sandwich · 守卫三明治

字段
双轴坐标 行动 Action × 层级 Hierarchy(分)
成本档 ☷(跨切关注点,开销随风险分级浮动)
课程对应 05-05
目录归属 全集 33 模式之一 · 行动模块 5 模式之一
一句话 在 agent 每个有副作用或高风险的动作前后套上 pre-check 和 post-check 夹层,把它从"自由行动"约束到"被监督的行动"。

它解决什么问题

前面四个模式都在教 agent "怎么干对",但生产级 agent 还要回答另一个问题:干错时怎么挡住。某银行的对公转账 agent 上线第三周,把客户邮件里的账号"...XX23"解析成了"...XX32",一笔 320 万元转到错误账户,12 小时后才被对账系统抓到,对方已提现一部分。整个过程 agent 自信地完成,没有任何检查环节——调用前没人核账号、核金额、核客户意图,调用后没人复核到账和合规。

问题不是 agent 笨,是没有夹层防护。OWASP 2026 年正式发布的 Agentic Top 10 里,A1(Agent Goal Hijack)和 A2(Tool Misuse)说的就是这件事;调研显示 88% 的组织至少出过一次 AI agent 安全事故。这不是会不会出事的问题,是哪天出事的问题。Guardrail Sandwich 给每个 destructive 动作套上结构化的事前事后审查,让事故在执行前被拦下、或在执行后被回滚。

为什么坐标是「行动 × 层级」

核心机制

最优工程实现是 hook——一个 hook 能 wrap 任何工具,配置一次、全 agent 受益,不用每个工具改一遍代码。Claude Code 的 hooks 系统铺了 12 个生命周期事件,最核心的是一对:

落地有三条关键纪律:

适合的生产场景

容易出错的地方

三种失败共同的根因是:Guardrail Sandwich 不是 plug-and-play,是工程治理——装上 hook 不等于做对治理,必须持续维护 hook 顺序、风险地图、schema 同源,就像数据库索引加了能跑快、不维护就成累赘。

关键指标

最小骨架

wrap(tool, ctx):
    for hook in pre_hooks:            # 顺序: 便宜先,贵的后
        verdict = hook(ctx)
        若 verdict.block → 短路返回 blocked + trace
        若 verdict.改参数 → 更新 ctx.args
    result = tool(**ctx.args)          # 在隔离 sandbox 内执行
    for hook in post_hooks:
        verdict = hook(ctx, result)
        若 verdict.rollback → 触发 saga inverse,返回 rolled_back
        若 verdict.改结果 → 更新 result
    返回 ok + result + 完整 trace(每个 hook 的 passed/reason/延迟)

工程落地要点:所有 destructive 工具都用它包一层;hook 要 idempotent(重试安全,网络抖动不能让钱转两次);trace_id 落库做审计串联键。

企业落地一例

银行对公转账 agent 给所有 destructive 工具套上 sandwich,落地为六个决策点。pre 层:RBAC 权限校验、金额阈值三档分诊(10 万以下自动 / 10 到 100 万短信确认 / 100 万以上人审)、收款账号白名单匹配、制裁名单事前扫描。post 层:反洗钱事后扫描(高度可疑自动 saga 回滚、中度可疑 flag 给风控)、审计日志 7 年留档。hook 顺序极其关键——金额分诊在白名单之前,但都必须在制裁扫描之前,因为制裁是法律红线。装上之后误转账率从 0.3% 降到 0.001%,每笔交易延迟从 2 秒涨到 4 到 5 秒,金融场景这点延迟换准确率绝对值得。回到开场,account_whitelist 这一刀会先抓住"...XX32 不在客户白名单内"并要求短信二次确认——一个 hook 配置一次,挡掉一类事故。同一套结构换到医疗就是角色权限、处方剂量阈值、病史白名单、FDA 黑名单、药物相互作用扫描、HIPAA 审计——业务约束变了,模式不变。

与其他模式的关系

一句话记住它

Guardrail Sandwich 把人类几千年的程序正义智慧编码进了 agent 行动层——pre-check 是事前听证、execution 是判决执行、post-check 是事后救济。agent 工程的成熟标志不是 demo 跑得多酷,而是事故发生时它没出事。


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