两项看似合一的工作
决策模型回答的是一个路由问题:给定当前状态,哪条分支最有可能导向成功的轨迹?它基于过往行为的轨迹进行训练,并在毫秒内输出一个 token。策略引擎回答的是另一个问题:给定当前状态和拟议动作,该动作是否被允许?它评估一套已声明、可审查的规则集,并在毫秒内返回裁决。
由于两者都快速返回,且都位于关键路径上,架构图常常将它们合并为一个标注为“护栏”或“路由器”的方框。这种合并是一种范畴错误。路由器是作用于轨迹的学习函数。策略引擎是作用于规则的声明式函数。它们有不同的失效模式、不同的变更节奏,以及不同的举证义务。
当两者被混为一谈时,一次模型更新会悄然改变系统被允许做什么。训练运行变成了一次未经审查的策略变更,而事故复盘所需的审计轨迹并不存在。
为何这种替代如此诱人
路由器延迟在每一个 agent 步骤上都要付出代价。一个在意图分类上得分不错的 2B 参数分类器,在演示中看起来就像一个护栏:它快、托管成本低,而且似乎能让 agent 保持在任务轨道上。相比之下,声明式策略需要增加一个独立服务、一套规则 schema、一个审查流程,以及一套版本管理方案。在第一次事故需要解释为何采取某个动作之前,这条廉价路径总是胜出。
策略引擎必须提供而分类器无法提供的东西
确定性。 相同的请求和上下文必须在不同模型版本间产生相同的裁决。分类器的裁决可能随权重更新、温度变化或不同的批处理顺序而改变。策略引擎的裁决是已声明规则和显式输入的函数。

可枚举性。 审计人员必须能够列出系统允许的每一个动作类别。分类器可以被探测,但探测产生的是样本,而非枚举。当问题不是“它上周二做了什么?”而是“这个系统能做什么?”时,这一区别至关重要。
归因。 每一条裁决都必须指明产生它的规则,而非一个概率。当 agent 采取了一个事后看来错误的动作时,轨迹应当说明是哪条规则放行了它。0.87 的置信度分数回答不了这个问题。
版本管理。 规则按审查节奏变更,而非训练节奏。策略引擎的版本历史是一系列经过审查的变更;模型的版本历史是一系列训练运行。它们是不同的产物,有不同的审查者和不同的回滚语义。
一个具体的机制能让这种区别变得可见。设想一个工具边界,agent 提议调用 transfer_funds。决策模型可能路由到该工具,因为它已学到相似状态常常先于成功的任务完成。策略引擎则针对诸如 amount <= approved_limit、recipient in allowlist,以及针对一组动作类别的 requires_human_approval 等规则来评估该调用。路由器在已被允许的动作中做出选择;策略引擎决定所选动作是否被允许。路由器永远不会扩大被允许的集合。
一种可行的拆分
在负载下依然成立的拆分是小型且显式的。
- 决策模型在已被允许的动作中做出选择。它们作用于策略已放行的集合,且不能向其中添加内容。
- 策略在路由之后、执行之前,于工具边界处被评估。这一位置意味着路由器可以被替换,而无需改变系统被允许做什么。
- 每一个被路由的步骤都在轨迹中携带放行它的规则标识符。这样轨迹中同时包含路由决策和授权决策,且两者在复盘时可分离。
- 模型替换会触发针对策略语料库的 eval 运行,而不仅仅是准确率检查。该 eval 询问的是新路由器偏好的动作是否仍处于被允许的集合内,而不仅仅是它能否很好地分类意图。
这种拆分是有代价的。它在关键路径上增加了一次服务调用,并迫使团队维护一套规则 schema 和一个审查流程。诚实的权衡是:
![]()
反方向上还有第二种权衡。过于粗放的策略引擎会阻断合法的轨迹,团队就会绕过它。补救办法不是削弱引擎,而是让规则集可审查且带版本,从而使扩大规则集成为一次深思熟虑、有记录的变更,而非一次隐式的变更。
需要埋点监测的失效模式
真正重要的失效模式,是路由器偏好的动作与策略允许的集合之间的偏离。在一个健康的系统中,路由器的偏好几乎始终处于被允许的集合内,策略拒绝很少见且可解释。偏离率上升,就是模型已经学会绕过规则的信号:它在提议策略持续拒绝的动作,或者它在提议策略之所以放行仅仅是因为规则尚未跟上的动作。
针对这一点的埋点很直接。对每一个被路由的步骤,记录路由器偏好的动作、策略裁决和规则标识符。然后跟踪偏好动作落在被允许集合之外的比率,以及策略放行了路由器并未偏好的动作的比率。第一个比率上升,表明模型正在向不被允许的行为漂移。第二个比率上升,表明策略集合比路由器学到的分布更宽,这是另一个问题,但同样值得关注。
这两个比率都不能替代另一个。它们合在一起,给出的图景是分类器的准确率或策略引擎的规则列表单独都无法提供的。那幅图景正是事故复盘所需要的,也正是快速分类器无法产出的。
结论
小型决策模型是一种延迟预算。它们在关键路径上换取速度,并且擅长于此。它们不是治理层,把它们当作治理层,就是将两个控制面坍缩为一个既无审查节奏又无归因的单一产物。这种拆分并非没有代价,但它区分了一个能够被解释的系统和一个只能被重新训练的系统。
封面照片:Jakub Pabis / Pexels。
