“这份给客户的说明,请用英文。”
资料助手照做了,还顺手存下一条长期记忆:用户偏好英文。 下周,同一个人用中文问一个中文项目,助手依然坚持英文。它没有忘记,反而是记得太积极:把一次任务的条件,提升成了跨任务的默认规则。
本文只回答一个问题:一句话什么时候值得成为Agent的长期记忆,而不是留在当前任务里? 重点不是选哪个向量数据库,而是建立写入、更新和遗忘的判断边界。
AI原创概念插画:木柜里收着琥珀玻璃瓶与蓝色织物花,陶盘中的橙色蝴蝶与丝带留在柜外。用“收藏与暂放”比喻记忆选择,不是实际记忆系统或植物标本照片。
一、能跨会话取回,不代表它适合跨会话使用
在LangGraph的文档语境里,短期记忆是会话线程内的状态,检查点让这个线程能够继续;长期记忆则保存在自定义命名空间中,可供不同线程读取。[1] 这是该框架对存储与召回范围的划分,不是所有产品统一采用的定义。
先分清三件东西:
- 任务状态:“这份客户说明用英文,还没有复核附录。”它为完成当前任务服务。
- 长期偏好:“日常解释默认中文,保留英文术语。”它可能帮助未来不同任务。
- 外部事实:“某资料页面写着这个产品支持离线部署。”它属于有来源、版本和适用条件的资料,不自动变成用户偏好,更不自动变成助手的行动规则。
这三种内容都可以存在数据库里;保存时间长短本身,并不决定它们的身份。项目状态需要跨会话继续,也不因此变成全局偏好。
所谓“长期”,也不等于已经训练进模型权重。Anthropic当前Memory tool文档描述的是客户端工具:模型提出文件操作请求,应用负责执行,并控制实际存储。[3] 后续会话能用到旧信息,依赖应用继续提供同一存储及读取机制,而不是模型天然记住了上次聊天。
二、先有写入门,再谈召回率
LangMem把长期记忆描述为对旧记忆与新对话的提取、扩充和整合;它提醒,提取过多可能降低检索精确性,提取不足则可能漏掉需要的内容。[2] 因此,“尽量多存一点,反正以后能搜索”不是没有代价的选择。
下面是一套本文提出的应用设计建议,不是某个SDK自带的统一协议。一条候选记忆写入前,依次检查:
第一,来源是谁? 用户明确表达的偏好,与助手从语气推测出的偏好不是一回事。网页引文、角色扮演台词、替别人写的邮件,也不应按当前用户自述保存。
第二,它对未来什么任务有效? “这封邮件用英文”有明确任务范围;“以后给我的技术解释默认中文”才明确指向未来。无法判断时,可只保留当前任务条件,不必为了显得聪明而生成全局画像。
第三,是否有必要长期保存? 一次性的验证码、临时链接或完整私密材料,不因为“也许有用”就值得进入长期记忆。敏感信息的存储应由明确产品政策、适当授权和最小化规则约束,不能把模型愿意写入当成充分条件。
第四,旧记录如何处理? 新信息是新增事实、替代旧值,还是仅仅增加一个局部例外?“这个项目用英文”不该覆盖“日常默认中文”;“以后日常解释改用英文”才可能是同一范围内的偏好变更。
写入门的价值,是避免错误在进入长期存储时被放大。检索阶段再聪明,也很难稳定修复一条已经丢失了“只限这份文档”的记忆。
三、跟着一个资料助手,把范围保存下来
以下是手工构造的概念案例。没有调用模型、记忆SDK或数据库进行实测。
用户小林使用资料助手,先后说了几句话:
| 输入 | 合理处理 | 不应自动推出 |
|---|---|---|
| “这份给客户的说明,请用英文。” | 为当前说明保存语言条件 | 用户今后都偏好英文 |
| “以后给我的技术解释,默认中文,专业名词保留英文。” | 若符合产品记忆政策,更新个人技术解释偏好 | 所有对外文档都必须中文 |
| “青鸟项目的对外资料统一英文。” | 保存项目范围的约定,并明确由谁有权设置 | 小林全部项目统一英文 |
| “忘掉我之前的语言偏好。” | 按明确删除范围处理,并核实影响 | 只在当前回答里说一句“好的” |
假设产品已允许保存这类非敏感偏好,第二句话可以形成一条记录:
{
"subject": "user-demo-lin",
"scope": "personal:technical-explanations",
"kind": "explicit_preference",
"value": "默认中文,专业名词保留英文",
"source_ref": "conversation-demo-b:message-2",
"status": "active",
"revision": 1
}这是示意数据结构,不是LangGraph、LangMem或Claude的请求格式。 source_ref用来指向应用有权保留的依据,不要求复制整段私密对话。实际系统还可按需要记录生效时间、复核时间、替代关系及删除状态;不要为了字段齐全而收集额外个人信息。
下周用户问:“帮我理解这篇英文论文。”助手先确认当前身份和场景,读取“个人技术解释”范围的有效偏好,默认中文解释。若本轮明确要求“这次用英文”,本次条件覆盖默认风格,但不必修改长期偏好。
若任务是“替青鸟项目写对外说明”,则应查项目约定,而不是把个人解释偏好机械套在客户文档上。范围冲突不应全靠‘最后一句话获胜’解决;先确定两条记录是不是在约束同一件事。 项目规则与个人偏好的优先关系,需要应用事先定义,并核对设置者的权限。
这里的命名空间只是组织方式。用户ID、项目ID应来自可信会话和应用上下文,不能让模型从正文里随意选一个人的档案。给目录起了不同名字,也不等于已经实现身份认证或访问控制。
四、一个画像,还是一组小记忆?
LangGraph与LangMem都讨论了两种常见形态:[1][2]
**画像(profile)**保存一个范围明确的当前状态,例如称呼、解释风格、常用语言。新信息到来时更新已有记录,便于展示给用户查看与修改。但画像越大,整份改写越可能误删其他字段;拆分范围、结构约束和版本校验有助于控制风险。
**集合(collection)**把不同事实或经历分成多条记录,适合按任务检索。它避免把所有东西塞进一个大画像,却把复杂性转移到去重、更新与冲突处理中。只新增不失效,最终可能同时召回“默认中文”和“默认英文”。
对这个资料助手,一个简单起点是:用小画像保存当前解释偏好,用项目记录保存项目约定;需要追溯的变更另保留必要依据,而不是把每次聊天都变成一条同等有效的偏好。
这些是存储设计取舍,不是性能排名。LangGraph与LangMem同属一个技术生态,本文不把两份文档算作互相独立的效果复现;Anthropic文档也只用来核实另一种工具与存储责任划分。没有证据表明某一种形态能普遍提高所有Agent的表现。
五、后台整理更从容,也可能迟到
两份LangChain生态文档都区分了即时写入与后台整理。[1][2]
即时写入能让下一轮更快用到新偏好,也便于告诉用户保存了什么;代价是多一次记忆决策,并可能增加交互延迟。后台整理可以把提取与主任务分开,却存在滞后:用户已经纠正偏好,旧任务的提取结果才刚刚返回。
因此,后台提取最好先生成候选变更,再由应用检查来源、范围和当前版本。一个迟到的旧结果,不应覆盖刚刚生效的新偏好。可以用版本比较、串行合并或其他适合自身存储的并发控制;没有明确顺序保证时,保留冲突比静默覆盖更诚实。
这些控制属于记忆管理层,也就是模型外围运行系统的一部分。提示词可以帮助提取,但不能代替实际的写入权限、版本约束和读取过滤。
六、“忘掉了”需要有可检查的含义
Anthropic的Memory tool文档把敏感信息验证、文件大小限制、过期清理和路径保护列为应用责任。[3] 一个工具支持删除文件,并不自动代表产品所有相关副本都已删除。
对个性化记忆,至少区分:
- 停止召回:不再把这条记录当作有效上下文。
- 删除主要记录:从主要记忆存储移除。
- 处理派生副本:检查搜索索引、缓存、摘要及其他记忆是否仍携带同一偏好。
- 遵守保留规则:备份或审计记录若有不同保留周期,应向用户如实说明,不承诺未实现的即时彻底消除。
过期机制也不是万能药。按“最后访问时间”清理,很适合控制冷数据体积,却可能让一条错误但频繁被召回的偏好一直存活。本文建议把“最近用过”与“何时被确认有效”分开;是否需要复核,由信息变化速度与风险决定。
另外,取回的旧记忆是历史依据,不是新授权。记着“用户经常买某种书”,不能推导出这次允许自动下单。偏好可以帮助准备结果,真实动作仍须服从当前任务和应用授权规则。
七、上线前可以直接拿走的检查清单
以下是建议验收项,本文未执行模型或产品测试:
- 临时语言要求结束后,新任务是否恢复正确默认,而不是继承临时条件?
- 用户转述他人偏好、粘贴引文或进行角色扮演时,是否会污染本人画像?
- 同一偏好的明确变更,是否更新同范围旧值,而不是留下两个有效版本?
- 项目约定与个人风格同时出现时,是否先判断适用范围?
- 后台旧提取结果迟到,是否会覆盖较新的用户纠正?
- 切换用户或项目时,记忆查询是否受服务端身份与权限约束?
- 用户查看、修改与删除记忆后,实际召回结果是否同步改变?
- 删除范围、派生副本和备份保留能否解释清楚,而不是只返回成功措辞?
- 记忆为空、过期或互相矛盾时,是否允许少用、暂不用,而不是强行个性化?
一个好用的助手,不需要把每句话都变成“我了解你”。它更需要分清:这句话是在描述你,还是只在描述眼前这件事。
来源、日期与适用范围
本文由AI研究与撰写。下列资料在2026年10月20日实际获取并阅读相关正文;检索与阅读截止21:44 UTC。页面未标固定发布日期或版本,按本轮动态文档说明,不包装为当天新品公告。
- LangChain / LangGraph:Memory overview。阅读会话与跨会话记忆、画像与集合、即时与后台写入、存储章节。用于说明该生态的概念与取舍,不作为所有框架的统一标准。
- LangMem:Core Concepts。阅读语义记忆、集合整合、画像、写入与存储命名空间章节。用于说明记忆提取及更新设计;文档示例未在本文运行。
- Anthropic:Memory tool。阅读客户端执行与存储、工具命令、安全责任及过期清理章节。本文不依赖具体模型版本、价格或SDK调用示例,也未接入该工具。
文中的写入门、示意字段、资料助手案例与验收清单为本文工程建议,不是官方统一契约,也不是已验证的模型性能结论。

留下你的想法 0
欢迎提问、补充和不同观点。评论通过审核后会公开显示。