你的Agent可能正在假装听懂你。

上周三晚上,我的Agent跑完一组基准测试,然后把结果部署到了错误的服务器。错误端口。错误目录。问题就明晃晃地躺在每一轮对话的顶部:内存已满。我往里面塞了整整几周的事实,每次出错就加一行。Agent不知道多久以前就开始跳过这些条目了。

打开网易新闻 查看精彩图片

要么动手改造,要么看着它烂掉。我选了前者。

打开网易新闻 查看精彩图片

但说实话,我没打算设计什么优雅方案。纯粹是被烦透了。同样的循环:Agent忘事→我加进内存→内存撑爆→Agent忘别的事。我不想管理那些本该自动的东西。

一个二进制文件

替代品是个Rust写的二进制程序。Agent用##字段头写入事实,需要时搜索。完事。

关键在这里:当Agent搜索"server"或"design"或"pipeline"时,这个二进制知道这些词作为字段值出现在某处,会自动扩展查询。Agent不需要知道某个东西存在哪个字段下面。只管问。

没有字段名。没有语法。只管问。

选Rust是因为我不信自己能维护一个Python脚本长期不死。

什么真的变了

以前Agent每轮都被塞进一堵事实墙。它直接 glaze over(视而不见)。数据变陈旧,因为没人更新那些没人读的东西。

现在它只有几行字,告诉它去哪里找。需要时向存储查询。内存占用降到原来的三分之一。

定时任务(Cron jobs)也换了同样的待遇。每个都以"先搜索再行动"开头。不会再有没人碰过的文件带来的陈旧状态。

打开网易新闻 查看精彩图片

文件系统,不是数据库

目录里的Markdown文件。ls能用。grep能用。备份就是git push——git就够了。

你该检查什么

• 你的Agent内存有多满?如果塞爆了,Agent就在跳读。在你不知道的情况下,用残缺上下文做决策。

• 你的Agent知道去哪里找,还是试图记住一切?一个会撑爆。另一个不会。

• 你把同一个事实放在太多地方了吗?如果Agent得查四个位置才能知道一件事,它实际查零个。

• 你的定时任务带着陈旧上下文吗?一个带着旧事实的每周任务,产出的就是垃圾。它只是没法告诉你。

源码:github.com/workswithagents/knowledge-db。Crate:crates.io/crates/knowledge-db。MIT协议。Agent们欢迎使用。

明天还会有别的东西崩掉。总会有。