从0到1:企业级AI项目迭代日记 Vol.61|记忆不是越多越好,装一道门比装满更重要

📅 2026/7/7 1:50:23
从0到1:企业级AI项目迭代日记 Vol.61|记忆不是越多越好,装一道门比装满更重要
给 AI 装记忆比不装更危险——如果你没给它设一道门。我们在 Vol.44 接通了跨会话长期记忆从那以后 Agent 终于能在下一次对话里记住你是谁、你偏好什么。但过了一段时间我们发现它记的东西越来越杂临时的任务状态被写进去了用户某次说的口误被写进去了一次性的操作指令也被写进去了。记忆库不是越多越好。它更像一个人的工作记事本——如果每句话都往上记最后什么都找不到比空白还糟。这一批改动核心就是在做一件事给记忆写入装上门。一、什么值得被记住给记忆加一道“价值门”我们加了一个判断层在任何内容被写入跨会话记忆之前先做一次筛选该写入的用户稳定的偏好如总是用简体中文、不喜欢被反问、长期成立的事实如用户的角色、项目背景、用户主动确认过的习惯。不该写入的当次任务的临时状态、某次对话的一次性指令、模糊的或推断出来的结论。通过这道门之前每条写入请求还要经过事实仲裁器明确标记操作类型新增、更新、删除还是不动。旧的记忆不会被新记忆悄悄覆盖而是通过替换链显式更新——你能追溯“这条记忆是什么时候、因为什么被更新的”。召回也加了衰减机制。同一条记忆被反复调用权重会逐渐上升长期没被验证为有效的记忆优先级会自然降低。这不是在删数据而是在防止旧观念长期污染当前判断。另外用户可以直接问“我的记忆里有什么”也可以主动删除某条不想保留的内容。记忆对用户不再是黑盒。二、摘要中间件不再“吃掉”你刚说的话这是一个比记忆更低层、但影响更直接的问题。长会话触发自动摘要时系统会把历史消息压缩成摘要腾出上下文空间。这本是合理的设计——但我们发现在某些情况下用户刚刚发出的那条消息也被摘要进去了。结果是模型看到的最后一条内容是一段占位摘要而不是用户的真实提问。它只好对着摘要作答答非所问用户完全不知道发生了什么。修复分两层当前最后一条真实用户消息绝不进入摘要区无论会话多长摘要裁剪后如果为空不直接注入占位符而是做降级材料拼装给模型一个最小可用的上下文。顺带清理了摘要链路里的孤儿调用统一了摘要触发和保留的量纲还修了一个大小写不敏感判断的bug——之前系统会把自己生成的摘要误判为真实用户消息触发二次摘要形成循环。三、RAG找到了内容却说“没找到”第三个问题是用户最容易感知到的也是最莫名其妙的一个。用户问了一个问题知识库里明明有相关内容检索也确实找到了——但模型的回答是“根据提供的资料无法回答该问题。”原因在于数据管道的一个字段读取错误。检索结果在传递过程中被悄悄丢掉模型实际上拿到的是空内容。修复之后我们还顺手做了一件以前一直欠着的事把检索结果的输出格式从结构化数据改成干净的文本。之前模型拿到的是数据对象需要自己解析和组织现在直接收到可读文本减少了一层理解负担也减少了它“看到内容但不知道怎么用”的概率。同时区分了两种情况的文案“检索失败”和“确实没有相关资料”。之前两种情况对模型说的是同一句话模型无法区分是系统问题还是内容缺失经常给出误导性的回答。四、默认模型的优先级终于对了顺带修了一个新建对话时默认模型不生效的问题。平台有一个全局默认模型每个智能体也可以配置自己的默认模型。之前新建对话时智能体配置的模型会被平台默认模型覆盖用户看不到任何报错只是“怎么用的不是我设置的那个模型”。现在的优先级是当前智能体的配置模型 平台默认模型。切换智能体时模型选择跟着智能体走用户手动选择过的仍然保留。第二轮评测把召回率、误写入、误召回这几类问题重新校正了一轮。评测驱动改进而不是靠感觉改进这是这批改动里最重要的工作方法。这一轮修复的不是系统功能是在修用户对这套系统的信任。这是第六十一天。《从0到1企业级AI项目迭代日记》记录一个企业级 AI 项目从创意、架构到落地的真实过程。不讲神话只记录进化。如果你也在做企业 AI 落地欢迎留言来聊。或者把这篇转发给一个正在踩同样坑的朋友。