桃子桃子快讯
返回首页
工具

开发者开源 AI Agent 漂移检测工具 DriftGuard

开发者发布开源工具 DriftGuard(GitHub: hal),通过相关性与自漂移两个信号检测 Agent 是否偏离…

2026.08.21 · 周五3 分钟阅读

AI Agent 在多步循环执行任务时,常常不会因错误而抛异常,而是「沉默地跑偏」:丢失上下文、自我重复、答非所问,同时继续消耗 token。开发者 devkancheti4 在 GitHub 开源了一款名为 DriftGuard(仓库名 hal)的 Python 工具,专门用于在 Agent 循环中实时检测这种「漂移」现象,并在漂移发生时主动中止执行。

核心思路:只与 Agent 自身历史比对

DriftGuard 不依赖任何外部「正确答案」或人工标注,而是把 Agent 自身早期稳定运行时的输出作为基线,衡量后续输出是否偏离了这一基线。这一假设的依据是:只要 Agent 曾经保持自洽且切题,就足以建立可比较的参考系。

工具内置两个检测信号:

  • 相关性(relevance):当前输出是否仍在回应原始任务;
  • 自漂移(self-drift):当前输出分布是否已偏离 Agent 自己之前产生的输出分布。

只有当漂移率在统计意义上持续上升并稳定保持在基线之上时才报警,从而把偶发的单步噪声排除在外。

报警机制与实测数据

为了让检测在长循环中保持低误报,DriftGuard 引入了一个关键参数:报警信号必须连续跨越 25 个观测窗口才被触发。开发者称,早期仅做单窗口判定的版本会在健康 Agent 上频繁误报,25 窗口的「保持期」正是为此而设。

作者在 README 中给出了具体实测数据:

  • 一个 400 步的 Agent 在第 200 步开始跑偏,DriftGuard 在第 228 步触发报警,延迟约 28 次调用;
  • 健康 Agent 跑 600 步、重复 3 次,零误报。

实现细节与限制

  • 默认的相关性判定使用词袋(bag-of-words)方法,不调用任何模型或外部 API,单步开销为零;若 Agent 出现「词汇层面在线但语义已偏」的漂移,可替换为 embedding,统计逻辑保持不变。
  • ~28 次调用的延迟是换取零误报的代价;单步即报的方案会在健康 Agent 上误报,这一点来自实测而非假设。
  • 工具只负责告诉调用方「该停了」,并不修复或纠偏 Agent 本身。
  • Python 3.10+,零依赖、可离线运行;自带 demo 使用标准库文档字符串与标准库源码作为数据,两者相似度约 1.6 倍,因此 demo 呈现的延迟比真实场景更差,这一点作者已在 README 中说明。

适用场景与待验证参数

DriftGuard 适用于运行步数较长、且希望对「Agent 沉默失控」进行兜底检测的场景。作者自己也不确定的参数是 25 窗口的保持时长,并明确表示对于 100 步以内的短循环,这个阈值可能过于保守,希望短循环使用者反馈合适的设置。

仓库地址:https://github.com/devkancheti4-design/hal

信源