AI 助手真的需要记住一个永远一致的我吗?
做 AIWorkHelper 的记忆功能时,我最自然的想法是:记得越多,助手就越懂用户。于是问题很快变成了工程问题。消息怎么切片,哪些内容存 M…
AI 助手真的需要记住一个永远一致的我吗?
做 AIWorkHelper 的记忆功能时,我最自然的想法是:记得越多,助手就越懂用户。于是问题很快变成了工程问题。消息怎么切片,哪些内容存 MongoDB,哪些做向量化,检索取多少条,长期记忆怎么更新。
后来我发现这个前提有点可疑。
人并不是一个配置完成后永远不变的 JSON。去年我觉得自己应该专注纯后端,今年我开始认真做 AI 应用;某次聊天里说“我不考虑小公司”,可能只是那天刚经历了一次不太好的面试。AI 如果忠实地记住每句话,反而可能把临时状态固化成长期身份。
记忆不是事实仓库
很多记忆系统把用户信息整理成职业方向、风险偏好、关注主题等字段。它非常方便检索,也非常容易让人误以为这些字段是事实。
但“职业方向”更像一个带时间和语境的判断。它应该允许变化,甚至允许同时存在矛盾。用户可以既想要稳定,又想做一件冒险的事;既重视技术成长,也会在某个阶段更关心城市和收入。
如果模型只保留最后一次更新,就像不断覆盖数据库里的同一行。过去为什么改变、改变发生在什么条件下,全都不见了。
我更想要一套会承认不确定的记忆
如果重新设计,我会把记忆至少分成三类:用户明确确认过的事实;从多次行为中推测出的倾向,但要带置信度;某次对话里的状态,只在短期内有用。
更重要的是,记忆应该有来源。AI 说“你更看重成长空间”时,用户最好能看到它为什么这样判断,也能直接说“那是我三个月前的想法”。
我甚至觉得,一个好的助手偶尔应该主动暴露矛盾:你上次把稳定性排在第一,这次却愿意为一个早期项目放弃确定性,是优先级变了,还是这次有特殊原因?这种追问可能比“我已经完全了解你”更有帮助。
被理解和被定义不是一回事
AI 产品很喜欢承诺“越用越懂你”。这句话听起来很好,但“懂”也可能逐渐变成“替你定义”。当系统依据旧记忆过滤信息、排序机会、调整回答时,它也在悄悄缩小你可能看到的世界。
我没有因此否定记忆。没有记忆的助手每次都从零开始,确实很笨。只是我现在更在意另一件事:记忆系统是否允许遗忘、修正和保留矛盾。
人会改变不是数据质量问题,而是人的正常状态。
我还没有把这套想法完整做进 AIWorkHelper。当前版本的重点仍是让记忆链路先跑通。这篇文章更像给下一版留的一张便签:别只优化它记住多少,也要设计它如何承认自己可能记错了。
围绕 Agent、RAG、工具调用、上下文治理和 AI 应用工程化的文章。