你的Agent记忆层不会报错。它返回三块看起来合理的片段,模型自信地基于它们作答,然后整整一周没人发现问题。这才是LLM记忆在生产环境里真正的失败模式:检索质量在悄悄下滑,而所有监控面板都保持绿色。唯一真正有效的防线,是在模型看到检索结果之前,先对返回内容做断言校验。
下面拆解记忆系统在哪里断裂、规模扩大后基准测试揭示了什么,以及我在检索环节周围接上的验证钩子——让失败变得响亮。
![]()
失败前的沉默
先厘清大多数团队混淆的概念。上下文(Context)是你这一轮放进提示词的内容。记忆(Memory)是你在第四百轮对话时,能从一个三周前开始的会话里拉回的信息。上下文是缓冲区,记忆是检索系统——而检索系统的失败方式和缓冲区完全不同。
缓冲区失败是可见的。窗口溢出,API返回错误,日志里能看到。检索系统则无论如何都会返回内容。你问它用户关于账单偏好的说法,它会给你嵌入空间里的最近邻。如果不存在相关内容,最近邻照样返回,只是分数更低——而没人会去看那个分数。
模型随后做了它被训练去做的事:基于你给的材料,写出一段流畅的答案。没有异常,没有500错误,没有告警。你的错误率是零,但答案是错的。
这就是为什么"我的AI Agent为什么会在会话之间忘记事情"几乎从来不是遗忘问题。事实通常就在存储里。演示时用五十个文档,情景回忆能找到它;到了五万个文档,就找不到了——而整个技术栈里没有任何组件被设计来察觉这种差异。
为什么纯向量检索会随语料增长而退化
最先上线的模式总是同一个:把所有内容嵌入,存向量,按余弦相似度取Top K,塞进提示词。开发阶段它表现完美。这也是我在"Agent变笨了"的报告里最常找到的根因。
对生产环境记忆架构的分析指向同一个结论:纯向量检索方案会随语料库规模增长而退化,主要原因在于检索架构本身,而不是上层的模型(FalkorDB)。换更强的模型在这里毫无帮助——这正是团队在上面浪费数周的原因。
机制本身很平淡。相似度是相对的,不是绝对的。随着文档增加,第一名和第十名之间的差距被压缩,排序几乎不再携带信号。向量嵌入漂移加剧了问题:存储用旧嵌入模型构建,一半数据用新模型重新索引,于是关于同一事实的两块片段住进了不同的邻域。没有任何报错,精度就这么漏掉了。
时间推理是最先暴露问题的地方,因为相似度对时间没有观点。"用户取消了订阅"和"用户询问了"——这两条在向量空间里可能离得很近,但语义上完全是两回事。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.