我的例程显示已运行,但它在撒谎。

我运行着一个 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