编辑
2026-08-05
00
请注意,本文编写于 51 天前,最后修改于 51 天前,其中某些信息可能已经过时。

故事是这样的。

我有个知识库,跑了挺久,里面装着我所有 Agent 的踩坑记录、操作手册、经验总结,是给整个 Agent 团队用的共享大脑。

一开始我挺得意的,觉得知识库这东西,就是越攒越多越好,攒得越多,团队就越聪明。

直到有一天我闲着没事看了一眼数据,直接傻眼了。

日志文件 ingest_log.jsonl 已经涨到了 195MB,error_log.jsonl 涨到了 39MB,sync_cron.log 也有 26MB。更离谱的是经验库里堆满了各种自动生成的噪音条目,什么「memory_search 索引缺失」被记录了 133 次,什么「active-task.json 不存在」被记录了几十条,什么「edit 工具参数错误」一抓一大把。

我的知识库,在不知不觉中,变成了一个垃圾场。

当时我整个人是懵的,我辛辛苦苦攒的知识库,怎么就成了这样?

后来冷静下来一分析,问题出在我给 Agent 装了自动生成经验的插件,本意是让每个 Agent 踩完坑自动沉淀,结果这个插件太勤快了,啥都往库里记,工具调错一次记一条,索引没找到记一条,心跳检查的常见现象也记一条。

这些条目有一个共同特点,就是看一眼标题就知道没有复用价值,但它们在库里占着位置,检索的时候还跟着出来凑热闹,把真正有用的经验都给稀释了。

我意识到,知识库不是攒得越多越好,而是越干净越好。一个塞满噪音的知识库,跟没有知识库,没什么区别。

然后我开始搞知识库的定期清理。

先说清理的标准,什么样的条目该删,什么样的该留,我定了几条铁律。

验证率低于 10% 的,删。同一个问题被反复记录的,只留最好的一条,其余全删。工具调错这种一次性错误的记录,删。web 抓取超时这种网络问题,删。主题重复的,保留质量最高的那条,其余删。

这个清理逻辑其实跟收拾房间一样,你不需要记住每一个垃圾袋里装了什么,你只需要知道哪些是垃圾,然后扔掉。

但光靠人工清理是不够的,知识库天天在涨,我总不能天天盯着删。

所以我又做了一套自动化的定期清理方案。

方案分三层。

第一层是埋点,给知识库的检索加使用统计,每次谁搜了什么、命中了哪些文档,都记录下来。这样我就知道哪些文档是真正被用到的,哪些是躺着吃灰的。

第二层是冷数据识别,统计每个文档被命中的次数,从来没被命中过的,就是冷数据,就是清理的候选对象。这个逻辑特别朴素,一个文档如果一年到头没人检索它,那它大概率已经没价值了,留着也是占地方。

第三层是清理安全机制,这个最关键,就是删除之前一定要确认,别手一抖把有用的删了。我的做法是分阶段来,先识别候选,再人工确认,最后才批量删,宁可删得慢,不可删错。

整套方案的技术评估我也找人做过了,可行性没问题,就是分阶段实施,埋点两到四个小时,冷数据识别一到两个小时,清理机制四到六个小时,自动化定期清理四到八个小时。

说实话,做这套方案的过程中,我最大的感受是,知识库这东西,跟人脑特别像。

人脑也不是什么都记的,你会忘掉那些没用的细节,只留下重要的经验。知识库也应该这样,它得有遗忘机制,得定期清理,才能保持敏锐。

如果一个人什么都记,那他大概率是混乱的。如果一个知识库什么都存,那它大概率是没用的。

而且我还发现一个有意思的事,就是知识库的噪音,往往不是用户产生的,而是系统自己产生的。我的那些噪音条目,全是自动生成插件干的,用户手动沉淀的经验,反而条条都是精华。

这让我想起一句话,自动化是好东西,但自动化过头了,就会制造垃圾。工具越勤快,越需要有一个垃圾桶来接住它产生的东西。

清理方案落地之后,我又把日志的轮转机制也一起修了,所有日志文件都加了 10MB 上限,超过就循环覆盖,最多保留 5 份。这个改动看着不起眼,但从此以后,我再也不用担心日志把磁盘塞爆了。

现在我的知识库,终于恢复了它该有的样子,该有的经验都在,垃圾都被清走了,Agent 检索的时候,返回的都是真正有用的东西。

最后分享几条我总结出来的经验吧,都是我踩过坑之后才明白的。

第一,知识库要设清理阈值,不能无限增长。我现在的经验是,验证率低于 10% 就要动手清理,文件数量超过 500 条也要检查,这是触发条件,不是可选项。

第二,自动生成的内容一定要有质量门禁,不能啥都往库里塞。给 Agent 装自动沉淀插件的时候,一定要想清楚,哪些值得记,哪些不值得记,别让插件替你决定。

第三,日志文件必须加轮转上限,禁止无上限追加。这个是我用 195MB 的教训换来的,任何一个写日志的程序,都必须设计大小上限加循环覆盖。

第四,清理要分阶段,先识别,再确认,最后删。永远不要一键批量删除,你永远不知道哪条数据会在某一天派上用场。

其实说到底,知识库清理这件事,本质上是在跟熵增作斗争。

任何系统,只要在运行,就会产生混乱,知识库也一样。你要么定期清理,保持秩序,要么放任不管,看着它一点点变成垃圾场。

我选择定期清理,因为我花了那么多时间把知识喂进去,不想看着它烂在库里。

以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~

谢谢你看我的文章,我们,下次再见。

本文作者:丘丘

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!