确定性护栏(Deterministic Guardrails)
也叫: 确定性控制 · 硬护栏 · Deterministic Control
确定性护栏是指用普通的、非概率性的代码来约束 Agent——状态机、策略引擎、前置/后置条件校验、白名单——让必经步骤按固定顺序、以固定结果发生,不管模型怎么决定。
你可以好言相劝模型『谈余额之前一定先核验客户身份』,但模型是概率性的——有时它就是不做,尤其在遇到巧妙的 prompt-injection 或不寻常的措辞时。对关键业务流程来说,这样不够。确定性护栏把这份保证从提示词里挪出来,放进模型无法靠嘴皮子绕过的代码里。
区别在于『软』护栏——指令、基于模型的分类器、提示词规则——只是降低坏行为的概率;而『硬』的确定性护栏让某些行为在结构上就不可能发生。确定性护栏是不管模型输出如何都会运行的代码:一个状态机,从『开始』到『披露余额』之间干脆就没有一条不经过『身份已核验』的转移;一个校验,拒绝任何超过阈值的支付工具调用,除非人工审批标记已置位;一个白名单,在某个阶段只允许 Agent 调用三个指定工具。
在 2026 年关于生产级 Agent 的讨论里,加上这一层被描述为受监管或高风险场景的常见要求——银行、医疗、任何有合规义务的地方——正因为它把『模型通常会做对的事』变成『错的事在这里不可能发生』。它天然和 state-machine-agent 设计、以及 human-in-the-loop 关卡搭配。
怎么运作
Agent 的工具调用和状态转移被一层代码包住,由这层代码强制不变量。工具运行前先检查前置条件(工作流当前状态允许这么做吗?参数在策略范围内吗?);运行后校验后置条件和副作用。顺序由显式的状态机或工作流定义来强制,而不是交给模型的计划。仍然需要模型判断的地方,它在确定性层划定的框内运作——可以选择采取哪个被允许的动作,但不能跨出被允许的集合。模型产出的任何会违反不变量的东西都会被拦下,并且通常会被交给人工审查。
举个例子
一个退款 Agent 可以自由推理该不该退款、并起草给客户的话术。但确定性层强制:50 元以内的退款自动执行;50 到 500 元需要第二次工具调用,且只有客服主管点了批准才会成功;超过 500 元的,代码直接拒绝并转给经理。客户发的任何提示词、模型的任何推理失误,都不可能产生一笔 900 元的自动退款。
和相关概念的区别
确定性护栏与一般意义的护栏:agent-guardrails 是统称,包含软控制——系统提示词规则、内容分类器、基于模型的过滤——用来降低不良行为的概率。确定性护栏专指其中由纯代码和状态机强制的那一部分,无法被有说服力的提示词或模型失误绕过,代价是搭建和修改起来更死板。
常见误解
常见问题
确定性护栏是什么?
它和基于提示词的护栏有什么区别?
什么时候需要确定性护栏?
最近核实: 2026-08-30