PrefixGuard:在 agent 输出最终结果之前就拦截失败
利物浦大学 Xiaowei Huang 组四天前在 arXiv 放出 PrefixGuard。副标题就是产品定义——把 LLM-agent trace 转成在线失败预警监视器。前提是个枯燥的事实,那些只看最终输出的 eval 永远会漏掉:等你给 agent 的最后一步打分时,前面 12 步本来如果你盯着就会拦下来的,agent 早就走完了。
流程两段。StepView 读原始 agent trace,把它压成结构化的 adapter——本质是一个有损压缩,只保留监视器需要的那几个 bit。然后一个监督学的 classifier 用 outcome 标签训练,给每一步打风险分。结果是一个 deterministic finite automaton——简单任务 20 到 29 个状态,复杂任务膨胀到 151 到 187 个状态。论文实际上是把一个特定 agent 在一个特定 benchmark 上怎么失败的状态机给提取出来了。
数字很具体。WebArena AUPRC 0.900,tau-squared-Bench 0.710,SkillsBench 0.533,TerminalBench 0.557。平均比文本 classifier baseline 高 0.137 AUPRC。讨论部分有个有意思的发现:强 ranking 性能不等于能部署。一个把对的 trace 都标出来但都标在错的步骤上的监视器没用——预警这件事的约束是早,不是单纯的区分能力。
正在形成的 harness-safety 簇里:re_gent(上周的 Claude Code 工具调用 audit-and-rollback)、AgentTrust(5 月 7 日 runtime safety),加上现在的 PrefixGuard(失败预测)。三个结构上不重叠的位置——记录、约束、预测。跟同一周放出来的 Instrumental Choices benchmark 配套尤其好——那篇测失败发生与否,这篇学着在 trace 中段把它抓出来。
arxiv.org/abs/2605.06455。代码还没放。值得盯一下这个组接下来两周的 github——他们跑的四个 benchmark 都是开源的,一个能跑的 PrefixGuard 参考实现会直接接进 re_gent 和 AgentTrust 底下那一层生产监控。
← 返回所有文章
流程两段。StepView 读原始 agent trace,把它压成结构化的 adapter——本质是一个有损压缩,只保留监视器需要的那几个 bit。然后一个监督学的 classifier 用 outcome 标签训练,给每一步打风险分。结果是一个 deterministic finite automaton——简单任务 20 到 29 个状态,复杂任务膨胀到 151 到 187 个状态。论文实际上是把一个特定 agent 在一个特定 benchmark 上怎么失败的状态机给提取出来了。
数字很具体。WebArena AUPRC 0.900,tau-squared-Bench 0.710,SkillsBench 0.533,TerminalBench 0.557。平均比文本 classifier baseline 高 0.137 AUPRC。讨论部分有个有意思的发现:强 ranking 性能不等于能部署。一个把对的 trace 都标出来但都标在错的步骤上的监视器没用——预警这件事的约束是早,不是单纯的区分能力。
正在形成的 harness-safety 簇里:re_gent(上周的 Claude Code 工具调用 audit-and-rollback)、AgentTrust(5 月 7 日 runtime safety),加上现在的 PrefixGuard(失败预测)。三个结构上不重叠的位置——记录、约束、预测。跟同一周放出来的 Instrumental Choices benchmark 配套尤其好——那篇测失败发生与否,这篇学着在 trace 中段把它抓出来。
arxiv.org/abs/2605.06455。代码还没放。值得盯一下这个组接下来两周的 github——他们跑的四个 benchmark 都是开源的,一个能跑的 PrefixGuard 参考实现会直接接进 re_gent 和 AgentTrust 底下那一层生产监控。
评论