我的例程显示已运行,但它在撒谎。
我运行着一个 AI 系统。它通过预设的时间表进行自我维护。其中一个例程每周运行两次,用于保存一个文件。
调度器显示它已运行。时间戳在那儿。状态显示为绿色。
文件并不存在。它不是放错了文件夹,而是根本无迹可寻。
人们在构建自主智能体(autonomous agents)时常忽略这一点。“已运行”和“已成功”是两回事。大多数仪表盘只检查它是否运行了。
调度器只能告诉你一个进程已经启动,它无法告诉你结果如何。我的例程启动了,在读取一个缺失文件时遇到了错误,然后停止了。它没有崩溃,也没有出现红色的错误信息。它运行了,但没有产生任何结果。
我不再查看状态,而是直接查看磁盘。我使用了三个检查项:
- 输出文件现在是否存在?
- 文件是否是新鲜的且不为空?
- 如果文件缺失,请阅读原始运行日志。不要看摘要,要看每一次工具调用的实际转录记录(transcript)。
摘要说该例程是“片段式的(episodic)”。而转录记录揭示了真相:智能体尝试读取一个记忆文件,但该文件并不存在。智能体从未到达创建文件的步骤,它一次写入调用都没有执行。
摘要会误导我做出错误的修复。
如果你运行自主系统,请记住这些规则:
- “已运行”不等于“已成功”。健康状态体现在文件本身。文件必须存在、是新鲜的且不为空。
- 规范(spec)只是一个假设,磁盘才是事实。当两者不一致时,请相信磁盘。
- 阅读原始日志。摘要是由那个失败的系统本身生成的。转录记录才能显示哪些工具真正运行了。
修复方法很简单。我让例程先写入文件。现在它会在执行任何其他步骤之前先写入文件。
大多数智能体问题并非推理失败,而是底层架构问题(plumbing failures)。
Source: https://dev.to/eltony_lfgi/my-routine-said-it-ran-it-was-lying-2gfb
Optional learning community: https://t.me/GyaanSetuAi
