本节要解决的事:把什么保存下来,与保存在哪里,是两条不同的轴。一个文件既可能记录过去发生的事,也可能说明下次怎样做。
四张卡片,不应该有同一种有效期
卡片一:“用户更喜欢蓝色。”卡片二:“上次 A 店下单因地址缺失失败。”卡片三:“采购时先核对规格、含税运总价和库存,再请求确认。”卡片四:“A 店现在库存 5。”它们都能写进文件,却不能因此当成同一种记忆。
偏好更像相对稳定的事实,仍可能被用户更新;失败订单是带时间和对象的情景记录;采购流程是程序性知识,说明怎样行动;当前库存是会迅速过期的观察。下次采购若把库存 5 当成永远正确,保存得越牢反而可能错得越坚定。
先分内容,再选更新位置
情景记忆保留某一次经历,便于追问当时发生了什么。语义或事实记忆提炼相对一般的信息,例如用户当前明确表达的偏好。程序性知识描述步骤、适用条件和验证方法。这个分类是帮助分析的教学框架,不表示每份记录必须互斥地归入一个格子:一条技能可以附带它来自哪次成功经历。
再看保存位置:即时上下文让当前调用直接看见内容,保真却受长度与成本限制;外部文件或数据库允许检查、修改、检索,但必须选对再载入;模型权重则通过训练改变行为,更新和审查方式不同。写进 memory.md 不是训练了一次模型,也不能保证下次调用一定会读取。
一条长期记录至少回答四个问题
从哪里知道它?什么时候有效?什么任务会读取它?什么证据能修改或撤销它?例如偏好卡记录“用户在本次项目明确表示偏好蓝色”,下次挑颜色时取回;新消息明确改为黑色时更新,同时保留必要的变更来源。库存卡则加查询时间,下单前重新查询,不以长期存储代替实时验证。
失败情景也不应直接变成绝对规则。“上次 A 店失败”可能因为地址缺失,不代表 A 店永远不能买;真正可复用的是检查地址完整性及对应接口要求。保留原情景帮助追溯,归纳技能则需要额外证据与测试。
同样查采购,哪些卡片可以直接沿用?
先做预测,再逐步展开。这里是固定规则的教学回放,不是真实模型测评。
教学构造场景 · 按下方规则逐步回放;不调用真实模型,不代表实际成功率。
旧偏好蓝色;昨日库存 5;今天需要 3;无新的库存结果。
- 1. 检索偏好
将蓝色作为候选筛选条件。
- 2. 检查新鲜度
昨日库存只是历史观察,当前库存未知。
- 3. 读取流程
按采购技能重新核验库存后再判断。
将蓝色作为候选筛选条件。
先预测,再核对结果与原因
保留偏好,刷新库存不同内容的失效速度不同。
存得多,不等于记得好
朴素系统把每次聊天都附加到记忆文件,久而久之包含互相冲突的库存、重复偏好和不再使用的步骤。检索可能恰好找到最旧的一条。更好的维护至少需要去重、来源、有效范围和失效处理;重要事实出现冲突时,应选择有依据的当前版本,无法确定就保留冲突而不是猜一个。
另一组对照是“只存事实”和“只存操作”。只有事实,换到新任务时仍不知道怎样做;只有流程,可能忽略当前用户的限制。真正执行时要组合:当前目标决定要做什么,事实约束允许什么,技能提示怎么做,工具观察检查现在是否成立。
外部记忆还会有检索错误、陈旧内容和权限问题。某条记录来自其他任务,不等于可无条件用于所有上下文。这里不追求建立无限记忆,而是让每一条被拿出来的信息都能解释为何适用于当前行动。
理解检查
问题一:记录“上次成功买过红笔”,是否等于学会采购技能? 不等于。它描述结果,没有给出可复用步骤、前提与失败处理。可以作为归纳材料,但还需提炼并验证。
问题二:把蓝色偏好写进文件,下次模型一定知道吗? 不一定。文件必须经过检索或读取进入本次输入,除非系统有明确加载机制。外部存储不是权重更新。
问题三:本次要求黑色,是否应该永久删除蓝色偏好? 未必。“这次”可能是局部例外。应优先满足当前任务,同时区分一次性覆盖与用户明确修改长期偏好,避免过度归纳。
下一问
当外部产物变成几十份技能,每份都很长,怎样让模型选到合适的一份而不把全部内容每轮重读?下一节沿目录、正文、脚本和参考文件逐层打开。