你的代理跑偏时不会崩溃,它只是继续向你收费
摘要
本文介绍了DriftGuard,一个开源工具,用于检测AI代理偏离任务并浪费令牌,使用相关性和自漂移指标,重点是最小化误报。
它不会抛出异常。它不会返回格式错误的JSON。它只是悄悄地停止执行你要求的任务——失去线索、重复自己、回答无人提出的问题——并且在此后的每一步都继续消耗令牌。约束解码保证了输出的形状。它对于代理是否仍在执行任务没有意见。因此,我为此构建了一个检测器并开源了它:
from driftguard import AgentWatch
watch = AgentWatch(task="the objective you gave the agent")
for step in loop:
out = agent.step()
if watch.observe(out).drifting:
halt()
两个信号,都根据代理自身历史进行衡量:相关性——输出是否仍与给定任务相关?自漂移——输出分布是否偏离了该代理在工作时产生的分布?两者都不需要外部的“正确”概念。唯一的假设是你的代理曾经是自洽且切题的——这是你无需人工干预就能实际检查的唯一事情。漂移不是单个坏步骤。单个坏输出是噪声。漂移是相对于该代理自身基线的上升率,以标准误差衡量,仅在连续25个窗口中持续违规时触发调用。一个更早的单窗口版本会在健康代理上触发——这正是需要此要求的原因。实测:400步代理,在第200步脱轨 → 在第228步检测到漂移(28步调用延迟);健康代理,600步 × 3次试验 → 零误报。限制,事先说明:相关性默认是词袋模型——无模型、无API调用、每步零成本。如果你的代理在语义上漂移但词汇上保持切题,可替换为嵌入;下游的统计相同。约28步调用延迟是实现零误报的代价。在单步调用的检测器也会在健康代理上触发——这是实测的,不是假设的。它告诉你停止。它不修复代理。发布的演示使用标准库文档字符串与源代码对比,因此没有依赖,且两者仅相差约1.6倍——这使得演示的延迟看起来比实际数字更差。这在README中而非隐藏。无依赖,Python 3.10+,离线运行。我最不确定的参数是25窗口保持——对于短代理运行可能过于保守。如果你运行少于100步的循环,我真的很想知道你想要什么。
相似文章
真正让你头疼的AI代理故障不是崩溃,而是那些顺利完成却做错事的运行。
本文讨论了AI代理如何常常通过错误地完成任务而不崩溃,悄无声息地失败,导致未被检测到的错误。它强调了常见的失败模式,并探索了潜在的检测策略。
AI代理的真正风险始于它们停止起草、开始行动的那一刻
文章强调了AI代理从起草转向自主行动时的关键风险转变,并警告了“漂移”现象——即人类审批沦为橡皮图章,从而引发非预期的自动化。
为何通过所有评估的智能体在真实生产流量下仍会漂移
AI智能体在通过评估后常因分布偏移和上游变更在生产环境中漂移;持续评估和实时监控可缓解此问题。
代理不会崩溃,而是以HTTP 200状态码、绿色健康检查和一句客气的'任务完成'来失败。
AI代理可以在没有传统错误的情况下悄无声息地失败,正如一个公开的事故分析所展示的,其中管道陷入循环并产生高成本,却没有触发警报。文章建议使用追踪和每个代理的花费监控来检测此类问题。
AI Stupid Level - 面向AI代理的实时模型漂移检测
AI Stupid Level 为AI代理提供实时漂移检测,帮助监控模型性能变化并保持可靠性。