☰
Sentry 验证机制详解:H=10 步验证边界如何区分真正的故障恢复与侥幸成功
2026/11/6 1:44:57 网站建设 项目流程

【免费下载链接】Sentry

Learning to Recover from LLM Agent Failures at Test Time

项目地址:https://gitcode.com/gh_mirrors/sentry25/Sentry
点击查看免费下载

Sentry 是面向 LLM Agent 的外部运行时故障管理层。本文聚焦它的验证机制:Agent 被"救活"之后,Sentry 如何在恰好 H=10 个循环内判断这次恢复是真正修好了故障,还是只是侥幸没有再出错。

🔍为什么需要专门的验证?

故障修复很容易"看起来成功":Agent 卡循环几轮之后,突然走出两步正常操作,然后任务又重新卡死。如果只凭"没再报错"就算恢复,错误的经验会沉淀进记忆库,污染后续所有任务。Sentry 的 Verifier 就是为解决这个问题而设计的——它只认证"触发救援的那个具体故障"是否被修复,而不是笼统地看任务是否成功。

H=10 验证边界的配置位置

H=10 是 Sentry 论文中设定的固定参数,在源码里被硬性锁死:

  • 轨迹配置:post_rescue_horizon默认值为 10,见 Sentry/config.py
  • 完整配置校验:如果试图修改该值,会直接报错Full Sentry uses H=10,见 Sentry/config.py
  • 论文参数快照:configs/paper.yaml(与window_size: 5检测窗口配套)

软故障与硬故障的两种验证路径

Sentry 把故障分成两类,验证方式完全不同:

故障类型验证方式验证时机
硬故障(动作不合法)由环境执行结果直接判定1 个循环内立即验证
软故障(卡循环 / 目标跑偏 / 幻觉)模型裁判审阅恢复轨迹恰好走满 H=10 步后验证

硬故障走 verify_hard_repair:动作解析成功、schema 合法、且被环境接受,三个条件同时满足才算恢复。

软故障走 EscapeVerifier.verify,它先校验一条强约束:恢复轨迹必须恰好等于 10 步,少一步或多一步都会直接抛错。

验证器的判断标准:如何排除侥幸成功

真正区分"真恢复"与"侥幸"的核心逻辑在验证提示词 build_verifier_prompt 中,有三条关键规则:

  1. 只判具体故障:裁判必须判断"触发救援的那个故障"是否被修复,提示词明确要求 "Judge the specific retrieval labels and resolution criteria, not generic task success alone"。
  2. 禁用外部奖励:裁判看不到 benchmark 奖励或最终任务成功标签,提示词明令 "You have no benchmark reward or final task-success label. Do not infer either.",避免拿任务结局倒推恢复是否成立。
  3. 按故障标签逐条核对:每种细粒度故障标签都有专属的解决标准——例如"循环"要求停止重复旧动作并获得新信息、"幻觉"要求未证实的假设被删除、修正或验证,全部标准见 Sentry/taxonomy.py。

判断标准一句话概括:✅Agent 停止被诊断的行为,并恢复有效、与任务相关、基于观察的进展,才算 resolved;同一故障模式继续、越跑越偏、或恢复中引入新的无据假设,都是 unresolved。

此外,验证器输出必须是固定 JSON(status / justification / evidence),任何格式不合法都会被 parse_verifier_response 保守地记为 unresolved——宁可不认证,也不放过侥幸。

为什么必须是"恰好"10 步?

Sentry.py 中的observe_step是边界的执行者:救援注入后,每个新循环都被追加进post_rescue_steps,满 10 步立即触发验证;如果出现第 11 步时验证仍未触发,会直接抛出 "Sentry missed the exact H-step verification boundary"。

这个"恰好"很关键:

  • 短于 10 步:只看到 2、3 步正常表现,无法区分"真修好"和"还没开始复发",侥幸成功会混进来;
  • 长于 10 步:验证延迟与 Token 成本上升,且轨迹后段与救援无关的噪声会稀释证据;
  • 任务提前结束:finalize_task 会把没走满 10 步的救援事件记为verification_incomplete,它永远无法更新 Playbook——不完整就不下结论。

只有验证通过的恢复才会沉淀为经验

验证结果直接决定经验沉淀:PlaybookUpdater.summarize 只处理escaped=True的软故障事件,将"触发模式 + 修复原则"总结成可复用条目写入 Playbook;硬修复和未通过验证的事件一律不入库。

这正是 Sentry 在 939 次检测到故障中取得 81.7% 恢复率背后的质量门槛:进入记忆库的每一条经验,都先通过了 H=10 步边界的验证。

关键源码速查表

模块作用
Sentry/verifier.py硬 / 软两条验证路径与验证器提示词
Sentry/config.pyH=10 参数定义与强制校验
Sentry/taxonomy.py故障分类与各标签的解决标准
Sentry/Sentry.py主循环:按 H 步边界触发验证
Sentry/updater.py把验证通过的恢复总结为 Playbook 经验
configs/paper.yaml论文参数快照(W=5,H=10)

【免费下载链接】Sentry

Learning to Recover from LLM Agent Failures at Test Time

项目地址:https://gitcode.com/gh_mirrors/sentry25/Sentry
点击查看免费下载

相关推荐

上一篇:如何5分钟上手DynamicChunkingDiT:S-256与XL-256检查点下载与快速体验教程
下一篇:把孩子该学什么拆成1600多个"小格子",是教育进步,还是给孩子套上枷锁?

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询