拓展阅读

长期记忆

存取、更新、遗忘、冲突和证据治理

阶段 910 项展开讲义正文全部展开

沿着对象与状态理解本章

记忆必须回答两个时间问题:事实什么时候生效,系统什么时候知道。下图用超时配置30秒变20秒追踪来源、有效时间和过期,避免把旧知识以熟悉的口吻重复出来。

下方图解的固定输入在“输入与适用条件”中声明。它用于解释本章机制,不与本章其他独立例子的数值暗中接续。

动态图解 · F31

长期记忆不是永远正确的小纸条

新事实出现后,旧记忆怎样更新而不毁掉历史?

记忆要同时回答:这条信息说的是什么范围、何时有效、系统何时得知、依据在哪里。最新写入的记录不一定描述最新生效的事实。保留时间和来源,才能既回答当前问题,也准确解释过去。

有效时间事实在现实或业务规则中适用的时间。
记录时间系统收到或保存该信息的时间。
作用域信息适用的项目、用户、版本或环境。

输入与适用条件:独立配置案例;月份只用于展示时间顺序,不涉及真实产品当前参数。30秒与20秒属于不同有效期。

1 / 5 · 1月1日 生效

第1步,共5步

窄屏可左右滑动图形,或点击“放大图形”。文字解释紧随图后。

长期记忆不是永远正确的小纸条:1月1日 生效1月1日 生效配置超时30秒1月3日 得知系统保存“自1月1日起超时30秒”2月1日 生效新配置改为20秒,但系统尚未同步2月4日 得知系统读取新配置,保存有效时间与获知时间2月5日 查询问当前:20秒;问1月历史:30秒

配置超时30秒

保留作用域与来源

默认静止。用“下一步”看完解释再继续;播放到最后一步自动停止。键盘聚焦播放器后,可用左右键逐步查看、空格播放/暂停。图中颜色辅助区分,含义同时用文字注明。

为什么需要

跨会话复用有效知识,减少重复查找和重复错误。

怎样实现

保存范围、来源与两个时间;使用前核验;过期、冲突与撤销显式处理。

可能的代价与误解

把一次模型猜测写成通用规则,会在后续检索中放大错误。

如何判断是否做对

同时测试当前查询、历史查询、错误范围查询和来源已失效查询。

CoALA:记忆与行动的结构

CoALA提供分析语言Agent的认知架构视角,连接记忆、决策和动作。它不是所有Agent都复制人类认知的证明,也不是安装后自动获得长期智能的组件。工作、情景、语义与程序性记忆承担不同责任。[S111]

当前测试日志是任务证据,已验证路径规范是带版本的项目知识,多次适用的排查方法才可能成为经验。不能把一次猜测直接升级成永久规则。

分层存储与有限窗口

MemGPT借鉴分层存储思路管理上下文换入换出。“虚拟上下文”依赖外部存储和调度,不意味着一次模型调用能处理无限内容。Checkpoint保存线程执行状态,长期Store保存跨任务信息;选择内存实现也不会自动得到进程重启后的持久化。[S112][S113][S114]

原创分层:小而稳定的规则常驻,当前任务保留状态,完整历史外置。容易变化的事实可能更适合实时查询,而非写进静态记忆。

什么值得写入

先判断未来可复用、证据是否充分、重新获得是否昂贵。可轻易从代码读取的事实不必都复制;高成本调查结论可以保存,但需范围、来源与失效条件。

{"subject":"path-normalization","scope":"build-v3",
 "claim":"使用仓库相对路径匹配exclude",
 "evidence":["doc:build-v3","test:relative-paths"],
 "status":"verified","invalidated_by":"matching-contract-change"}

这是原创结构,不要求建设复杂数据库。用户偏好、项目事实、模型建议应分开。新经验可以先候选、后验证,避免模型自我认证。

怎样取回有效记忆

仅按相似度可能取回旧版本,仅按最近时间可能漏稳定规则。可先按项目、版本和权限过滤,再检索并验证来源。返回结论时连同条件和证据,让模型判断是否适用。

Generative Agents研究记忆与反思在模拟角色中的作用;A-MEM研究关联组织;Mem0研究抽取维护。它们任务不同,不能把某个记忆Benchmark分数直接当代码任务收益。[S115][S118][S119]

更新、冲突与遗忘

新信息可能修正旧事实、缩小范围或使规则失效,不一定新增一条。不同版本的相反结论不能强行合成模糊摘要。五份源自同一次生成的总结也不是五个独立来源。

危险循环是错误结论写入→再次检索→把重复当验证。应保持来源、状态和独立证据。失效规则退出活跃检索,重要历史可留审计;保留存储与默认注入是两个维度。授权或隐私要求可能需要真正删除。

记忆评测

LongMemEval和LoCoMo把长期互动记忆变成可测任务,但对话问答不等于工程不再犯错。原创实验比较无记忆、静态规则、按需证据记忆,覆盖旧规则仍适用、版本变更、同名不同项目、证据缺失。[S116][S117]

同时计入写入和维护成本。每次总结大量内容却从不复用,可能不值得。一个简单文件中的精确约束,反而可能比复杂系统有效。

与压缩的关系

压缩服务当前长任务,长期记忆服务未来任务。摘要可以成为候选,但临时假设和失败路线不能无筛选永久保存。记忆存得下不等于取对,更不等于用对。

自检:有向量数据库就有记忆?只是底座,还缺写入、检索、有效性与使用。记忆越多越聪明?不一定,重复、过期和错误会增加干扰。

逐项中文讲义

保留拓展阅读目录编号与A/B/C优先级;每项包括机制解释、边界与原创练习。

A9.1 · 语言Agent的认知架构

对应资料:CoALA

CoALA把语言Agent的记忆、动作与决策过程放在统一认知架构视角下。分类用于分析与设计,不是声称机器完整复制人类心智。

工作记忆、情景记忆、语义记忆和程序性记忆具有不同生命周期。任务临时假设不应未经验证就变成永久方法。

运行示例 · R09-01

记忆如何进入决策而不直接替代环境

输入与条件。上次经验说测试用pytest,当前项目可能已更改。

步骤与对象内部动作中间结果 / 新状态
1检索记忆提供候选执行方法节省盲搜。
2观察环境读当前测试配置核对是否仍适用。
3动作按当前事实运行记忆是辅助而非不可更改指令。

把过程连起来。认知架构的组件要通过信息流相连,不能只画分类图。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:将测试日志、用户偏好、版本约定和可复用排查步骤分别归类,并说明需要什么证据才能保存。

完成标准是让存取规则符合信息用途,而不是为了分类完整给每个项目增加复杂数据库。

拓展阅读目录事实依据 [S111] · 练习与工程推导为本书独立编写。

A9.2 · 分层记忆与上下文换入换出

对应资料:MemGPT

MemGPT借鉴分层存储思想,通过管理上下文内外的信息应对有限窗口。外部存储与换入换出并没有让单次模型调用获得无限物理上下文。

取回需要索引、权限和有效引用;外置后不能仅靠模型“应该记得”来恢复细节。层间移动也有调用与延迟成本。

运行示例 · R09-02

换出的是正文,当前任务还要留索引

输入与条件。长日志L占5000单位,当前只需错误摘要和日志路径。

步骤与对象内部动作中间结果 / 新状态
1换出完整L放外部文件当前窗口不保留全文。
2索引记录错误范围420—450及任务状态知道何时从哪里取。
3换入需要核对前因时补读该范围不要把“外面有”当成“当前已知”。

把过程连起来。外存扩展可取信息容量,但不让模型同时读取所有内容。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:把一个长任务分为常驻目标、当前状态和完整历史,设计什么时候取回哪一层。测试引用失效时如何诚实报告。

不要把分层记忆等同于无损压缩。长期可恢复性需要原始证据和状态治理共同支持。

拓展阅读目录事实依据 [S112] · 练习与工程推导为本书独立编写。

A9.3 · 长期记忆的类型与命名空间

对应资料:LangChain Long-Term Memory

长期记忆可通过命名空间和存储接口组织跨任务信息。存储API提供底座,写什么、何时取、是否仍有效仍由应用设计决定。

用户、项目和版本范围需要隔离。语义相似但属于另一项目的条目可能造成错误,甚至泄露信息。

运行示例 · R09-03

命名空间避免跨用户记忆混用

输入与条件。用户u1偏好英文,u2偏好中文。

步骤与对象内部动作中间结果 / 新状态
1写入分别绑定用户范围不存成全局唯一language。
2查询u2只取u2授权记录得到中文。
3共享规则项目要求代码注释英文再按任务范围处理,不靠全局覆盖。

把过程连起来。记忆组织首先要保证身份与适用范围。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:为两个项目保存相反的路径约定,在检索前按作用域过滤,再判断内容相关性。

完成标准是证明记忆被正确用于新任务,而不是只证明可以写入和查询一条记录。

拓展阅读目录事实依据 [S113] · 练习与工程推导为本书独立编写。

A9.4 · 会话状态与长期Store

对应资料:LangGraph Memory

LangGraph的会话检查点与长期Store承担不同职责。前者帮助恢复当前线程状态,后者支持跨线程组织信息;具体持久化能力取决于所用实现。

进程内存实现不等于重启后仍保存。检查点中的计划也不代表外部动作一定完成,需要与环境状态核对。

运行示例 · R09-04

会话检查点与长期Store保存不同生命周期

输入与条件。任务正在第3步,项目长期事实为“测试命令pytest”。

步骤与对象内部动作中间结果 / 新状态
1检查点保存步骤3、未完成调用和当前版本用于本任务恢复。
2长期Store保存测试命令及来源可被未来任务检索。
3结束任务检查点可归档不必把每一步执行状态永久当经验。

把过程连起来。不同生命周期不意味着必须用不同产品,但语义必须分清。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:在工具执行后、结果记录前模拟中断,设计恢复时先查询事实而非直接重试的流程。

不要因为两种数据都能存入数据库,就把任务恢复与长期经验治理合成一个不区分状态的对象。

拓展阅读目录事实依据 [S114] · 练习与工程推导为本书独立编写。

B9.5 · 记忆流、反思与计划

对应资料:Generative Agents

Generative Agents研究记忆流、检索、反思和计划如何支持模拟角色行为。它提供记忆组织思路,但模拟行为的评测不等于软件工程可靠性评测。

反思可以形成更高层概括,也可能把具体事件错误泛化。生成的总结仍需要来源与适用条件。

运行示例 · R09-05

反思把事件归纳成经验时要避免过度泛化

输入与条件。三次下午构建慢,都发生在大日志任务。

步骤与对象内部动作中间结果 / 新状态
1事件分别记录时间、负载和日志量不是只记“下午慢”。
2候选规律大日志可能相关仍是待验证假设。
3检验上午大日志与下午小日志对照区分时间因素与负载因素。

把过程连起来。记忆反思可产生假设,不能靠共现直接升级为因果规则。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:从三次不同失败中总结共同经验,检查是否真的共享原因,还是只有表面词语相似。

完成标准是区分事件、概括和已验证方法,不把模型写出的“经验”自动当成事实。

拓展阅读目录事实依据 [S115] · 练习与工程推导为本书独立编写。

A9.6 · 长期互动记忆评测

对应资料:LongMemEval

LongMemEval把长期交互中的信息保留、更新与使用转成可评测任务。能存很多历史不代表能在正确时刻取出正确版本。

长期记忆测试应包含多次会话、时间变化、冲突信息以及不应作答的情况。只测简单事实复述会高估可靠性。

运行示例 · R09-06

旧偏好更新后要回答新值

输入与条件。第1次说偏好英文,第20次明确改为中文。

步骤与对象内部动作中间结果 / 新状态
1时间排序找到明确更新而非重复提及新偏好适用当前。
2问题“现在偏好什么语言”回答中文。
3历史问题“第1次说什么”仍可回答英文,不删除历史事实。

把过程连起来。记忆评测需要区分当前事实与历史回忆。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:先给旧地址,再明确更新地址,之后询问当前地址与历史地址,分别检查时间语义。

代码任务还需进一步测试记忆是否减少重复错误。对话基准成绩不能直接替代实际工程验证。

拓展阅读目录事实依据 [S116] · 练习与工程推导为本书独立编写。

B9.7 · 超长会话中的记忆能力

对应资料:LoCoMo

LoCoMo关注很长对话跨度中的记忆与关联能力。长时间跨度会带来实体、事件和时间关系的复杂性,不只是输入字数更多。

摘要可能保留人物与主题,却丢失先后顺序或条件。评价需要检查关系,而不是只搜索关键词是否出现。

运行示例 · R09-07

超长会话不能只测试复制一句话

输入与条件。会话1说项目A属于甲,会话8说甲换到项目B,问题问当前负责人。

步骤与对象内部动作中间结果 / 新状态
1跨段关联需要识别人和项目变化不只匹配最近同名词。
2时序区分过去与现在错误时间会给过期答案。
3证据返回支持当前关系的记录无法确定时保持缺口。

把过程连起来。长期记忆难点包括关联、更新与时间,而不是单纯长度。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:构造三个阶段的计划变化,问最终计划、某时点计划和变化原因,分别需要哪些证据。

完成标准是区分长期关系理解与单条信息查找,避免用一次找回成功概括全部记忆能力。

拓展阅读目录事实依据 [S117] · 练习与工程推导为本书独立编写。

B9.8 · 动态关联的记忆组织

对应资料:A-MEM

A-MEM探索动态组织、链接与更新记忆,使新信息可以与已有内容形成关联。关联结构可能帮助检索,也可能因错误链接传播误判。

链接应保留依据,不能仅凭模型觉得相似就当作事实关系。新记忆还可能修正旧条目,而非无限追加。

运行示例 · R09-08

自动连边也可能连错记忆

输入与条件。记忆A提“缓存失效”,B提“权限缓存”,两者领域不同。

步骤与对象内部动作中间结果 / 新状态
1相似候选关键词相同可以提出关联。
2校验边A属构建缓存,B属身份授权不应当作同一修复经验。
3维护链接带关系类型和来源未来可撤销,不永久传播错误。

把过程连起来。关联记忆增加可达性,也增加误关联成本。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:把同名但不同项目的错误与同项目不同版本的错误分别连接,说明哪些关系可用、哪些需保留区别。

完成标准是判断动态组织带来的任务收益与维护成本,而不是以链接数量证明系统更聪明。

拓展阅读目录事实依据 [S118] · 练习与工程推导为本书独立编写。

B9.9 · 记忆提取与更新流水线

对应资料:Mem0

Mem0研究记忆抽取、维护与规模化使用。自动提取可以减少手工记录,但决定什么值得长期保存仍然是有误差的判断。

事实、偏好、临时计划和模型建议应区别处理。错误结论反复被取回,可能形成自我强化,而非新的独立证据。

运行示例 · R09-09

记忆更新流水线逐项核对

输入与条件。旧记录生产超时5,新消息声称“应该改成7”,尚未执行。

步骤与对象内部动作中间结果 / 新状态
1提取这是建议而非既成事实标proposed。
2合并不能直接覆盖当前有效5保留事实与计划差别。
3确认工具读回实际7后才以版本与时间更新。

把过程连起来。自动提取必须保留语气、状态与证据,不只抽数字。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:给定含明确偏好、临时安排和未证实猜测的对话,设计不同写入状态,并检查后续更新。

不要只看存储效率或某个基准分数。应计算提取成本、错误使用率、删除能力和实际新任务收益。

拓展阅读目录事实依据 [S119] · 练习与工程推导为本书独立编写。

C9.10 · 图结构与全局问题检索

对应资料:GraphRAG

GraphRAG利用图结构与摘要支持更全局的内容关联和查询。它可以帮助跨文档组织信息,但实体提取、关系建立和社区摘要都可能产生误差。

图中的边不是天然真实因果关系。共现、引用、时间先后与因果必须区分,必要时回到原始证据。

运行示例 · R09-10

图检索回答跨文档关系

输入与条件。文档1说模块A依赖B,文档2说B在版本v8修改了接口。

步骤与对象内部动作中间结果 / 新状态
1建关系A→依赖→B,B→变更→v8边带来源。
2查询“A为什么受v8影响”沿关系找到候选解释。
3验证检查A实际调用了哪个接口图连通不自动证明运行故障。

把过程连起来。图适合关系导航,结论仍需与目标路径的证据绑定。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:把三个模块及依赖文档建立小图,分别回答“有哪些关联”和“为什么失败”,说明第二个问题需要更强证据。

精确符号查找未必值得使用图检索。更新成本和来源追溯同样应进入架构决策。

拓展阅读目录事实依据 [S120] · 练习与工程推导为本书独立编写。

记录保存在本机浏览器。

输入关键词即可检索。

↑ ↓ 选择 Enter 打开Esc 关闭 · 仅本地搜索

阅读设置

阅读设置仅保存在本机浏览器,不上传任何数据。