机制分析
从一句原话,到本轮输入中的偏好
在演示会话甲中,用户甲提出“先给例子,再讲原理”。原话先进入当前会话,候选提取再生成一张偏好卡,带有用户、来源和主题。候选可以只在本次使用;选择保存后,写入器才把它归入外部档案,成为有效记录。
转入同一用户的会话乙,当前对话与工作台清空,外部档案仍保留。新任务是解释缓存原理。模型参数没有变化,档案中的一条记录也不会自行出现在输入里:检索先把相关偏好取到读取区,注入才把副本放进本轮输入。
| 状态 | 尚不能据此断言的事 |
|---|---|
| 原话已表达 | 尚不能断言它已经持久保存 |
| 档案已保存 | 尚不能断言新任务检索到了它 |
| 副本已检索 | 尚不能断言它已进入模型输入 |
| 记忆已注入 | 尚不能保证模型一定正确使用或遵从 |
为什么撤销后,当前输入还可能带旧偏好?
外部档案和本轮输入是两个对象。更新为“先给结论”,改变的是有效记录与后续检索;已取出的第一版副本仍然留在读取区或输入台。撤销也不会倒流删除已经交给模型的内容,需要重新检索和重建输入,才能让新状态进入后续调用。
这不意味着所有记忆产品都使用相同流程,而是这类副本式设计需要面对的状态一致性问题。界面里一个“已删除”提示,不能同时代表存储撤销、缓存失效和当前推理上下文的更新。
工程取舍
记得更多,也可能带入更多过时信息
自动保存,还是明确选择?
自动提取能减少操作,但容易把临时任务条件当成长期偏好。让用户明确选择或提供可撤销的候选,有助于校正保存范围。无论采用哪种方式,记录来源、适用主题与有效状态,都比存下一句没有来历的“用户喜欢这样”更便于后续判断。
每次检索,还是复用已取出的副本?
复用副本可以减少读取成本,却可能继续持有旧版本;每轮重新取用有额外开销,也需要处理并发更新。可以在副本中携带记录版本与有效状态,在关键调用前决定是否重建。对偏好变化的容忍度,与对权限撤销或敏感状态的要求并不相同,应分别设计。
长期默认与本轮要求冲突时怎么办?
用户长期偏好“先举例”,但这次明确要求“只给结论”,应让当前指令的适用范围清楚可见。本例把本轮显式要求置于长期默认偏好之前;真实系统还要组织好不同来源的指令和内容,不能只靠把旧偏好附在上下文末尾,就认为冲突已经解决。
落到实现
记忆检索也需要身份与范围
查到相似记录,不代表有权使用。应先限定用户与访问范围,再结合主题选择适用内容。排障时分别检查有效档案、检索副本和已注入内容,能判断问题来自归属错误、检索漏召回、旧副本或模型使用偏差。
本页只使用虚构用户和本地演示状态,不保存真实偏好到账号或服务器。会话切换清空的是演示工作台,不等于真实产品必须删除历史会话数据库;保存外部记录也没有训练或更新模型参数。
长期记忆的价值,在于让适用的记录在合适的时刻进入当前任务。存档数量之外,仍要检查身份、版本和实际注入。