Deterministic Gates for Tool-Using Agent Policy Enforcement
Deterministic Gates for Tool-Using Agent Policy Enforcement
一句话结论
这篇论文说明:tool-using agent 的危险失败经常不是工具报错,而是工具接受了一个语法正确但违反业务策略的写操作,形成 silent wrong state;解决路径不是让模型“多想”,而是在写操作前放置只读、确定性的 policy gate。
为什么对用户重要
Hermes 的核心价值来自真实行动:读写文件、调用命令、维护 wiki、发布文章、运行 cron。也正因为如此,prompt 纪律不能替代工具边界。论文中的 airline 例子对应到用户工作流就是:agent 可能在“看起来成功”的情况下改错目录、覆盖 raw、更新了错误 category、或者在无人 cron 中扩大任务 scope。Harness-Engineering 必须把不可逆写入前的状态检查做成工具层 gate。
机制 / 一阶原理
论文把 failure class 定义为 policy-permissive tool + model accepted misleading context + no state-level rejection。只要底层 tool 对任何 well-formed call 都执行,agent 的自然语言策略理解就会成为唯一防线;一旦用户或上下文提供误导,错误写入会静默成功。deterministic gate 的一阶原理是:在写操作前读取当前状态和工具参数,用领域策略做确定性判断;若违反策略,则拒绝原 call,避免状态突变。
论文在 τ²-bench airline domain 中使用四个 gate,gpt-4o-mini 成功率从 29.6% 到 42.0%,且提升主要集中在 gate firing tasks。这个结果的重要性不在具体数值,而在因果分解:gate 有效时,改善应集中在它实际拦截的任务上。
与既有 wiki 的关系
- 对 Harness-Engineering:把“预执行校验”从 prompt 建议升级为 deterministic pre-call dispatcher。
- 对 Agent-Benchmarks:引入 firing vs non-firing 分层分析,避免把随机波动误认为 gate 有效。
- 对 Loop-Engineering:长期自动循环应先定义哪些写操作可由状态决定,哪些必须 HOLD 给人。
可执行启发
- llm-wiki ingest gate:禁止修改
raw/既有文件;若 source_url 已存在且 sha 不同,只能创建 drift note 或新 raw 文件,不直接覆盖。 - 发布 gate:CVM/外部投递前必须检查目标路径、MIME、public URL 和用户授权 scope。
- 文件写入 gate:无人 cron 中只允许写入
wiki/ai/与当日 raw/index/log;跨 profile、跨 vault、凭证、系统代理和 cron 配置修改应默认 HOLD。 - 评估 gate 本身:记录 gate fire 次数、误拒/漏拒样本,而不是默认所有 gate 都有益。
失败模式 / 边界
Gate 只阻止违规写入,不保证 agent 能恢复并完成任务;策略必须可由当前状态和参数决定;低精度 gate 会造成误拒。因此高质量 gate 需要 audit、版本化和回归测试,不能无限手写规则。
写入记录
- 2026-07-09 09:00 CST:新增论文来源页,沉淀 silent wrong-state failure 与 deterministic pre-execution gate 对 Hermes 工具边界的启发。