Sotis:实时检测并干预代理崩溃(循环、编辑风暴),在您的 LangGraph/ReAct 循环内部

Reddit r/AI_Agents 工具

摘要

Sotis 是一个 Python 库,通过熵检测和循环检测来发现并干预 LangGraph/ReAct 循环中的代理崩溃(循环、编辑风暴),回滚工作区并重启代理以干净地恢复。

任何为长周期、多步骤任务构建过代理的人,都曾目睹过代理崩溃:反复调用同一个工具,用错误追踪淹没自己的上下文,反复折腾同一个文件,最终失控直至运行崩溃,全程消耗大量 token。我厌倦了旁观此类情况发生,于是构建了 Sotis 来捕捉它。 Sotis 是一个小型 Python 库,它驻留在您的代理循环内部,实时监控工具调用流。当它通过滑动窗口 Shannon 熵加上精确和语义循环检测检测到崩溃时——它不仅仅记录,还会干预:将工作区文件回滚到上一个正常检查点,将臃肿的上下文提炼成简短的恢复提示,然后从那里重启代理。 它无需训练,每步仅增加不到 0.2 毫秒的开销,您可以通过 LangGraph 保护节点(SotisLangGraphGuard)或作为自定义 ReAct 循环的包装器(SotisGuard)来接入。它适用于任何兼容 OpenAI 的提供商——我已测试过 OpenAI、Anthropic、Groq、OpenRouter 以及通过 Ollama 运行的本地模型。 有几个诚实的注意事项,以免误导:这是一个为您自己构建的代理准备的库,而不是像 Claude Code 或 Codex 这样的封闭代理的插件(它们不暴露循环的钩子,因此无法进行回滚)。而且它限定的是失败范围而非保证成功——在我的实际运行中,它可靠地捕捉了失控并回滚了损害,但弱模型仍然不会奇迹般地完成任务;您得到的是干净、可恢复的失败,而不是无限制的失败。 默认熵阈值(1.5 位)也会对在短时间内合法使用多种不同工具的代理产生误报——这是一个可配置的旋钮,我确实不确定 1.5 是否是合适的默认值,所以很想听听大家的看法。 仓库顶部有一个 40 秒的演示 GIF(一个真实的 Llama-3.3-70B 代理在仪表盘上实时被拦截 3 次),以及几种模型的原始未经编辑的转录文本。它基于 arXiv:2603.29231 中的可靠性框架,采用 MIT 许可,包含 127 个测试。pip install sotis。非常欢迎任何在生产中与代理循环斗争过的人提供反馈。
查看原文

相似文章

AI Agent开发

Reddit r/AI_Agents

一位开发者讨论了3个Agent的SDR系统中的级联故障,其中幻觉在Agent之间传播,并寻求关于通过人类参与循环或框架切换来提高可靠性的建议。