记忆流:每条经历写下去,用时按三项打分取回
书架上的东西是 agent 自己写的:每条经历写下去,用时按最近、重要、相关打分取回。
这一页为什么在这里
揭开“全存起来、要用时查”的具体做法:记忆流里每一条记录长什么样、按什么取回。三项打分(最近、重要、相关)把“按什么决定放进输入”变成一个可以调的设计;学生在 LAB-B 里改权重,看取回的条目和答案怎样变。
上屏
- 第 1 步:一条记录的三个字段:内容(一句自然语言)|时间戳|重要性 1–10。一行:写入时由模型打分:打扫房间 2,约心仪的人出去 8。
- 第 2 步:问题“你现在最期待什么?”;伊莎贝拉的记忆,三项打分:最近(每过一个游戏小时 ×0.995)|重要|相关(与问题的向量相似度);三条候选:为聚会订购装饰|为聚会搜集点子|冰箱空着;一行:总分=最近+重要+相关(各归一到 0–1)。
- 第 3 步:「这一次的输入」放进得分最高的两条:为聚会订购装饰|为聚会搜集点子;回答“最期待在 Hobbs 咖啡馆办的情人节聚会”。角注:2023;CoALA · 检索是读长期记忆,学习是写长期记忆。
讲
第 1 步 · 教师可说的话
一条记忆的三个字段
书架上每一条都是一句话,比如“为聚会订购装饰”,带着时间,还有一个重要性分,是写入时让模型自己打的,1 到 10。
指图与比较
沿内容、时间戳和重要性三个字段读,并指出重要性是写入时由模型给出的分数。
第 2 步 · 教师可说的话
最近、重要、相关
要用的时候,每条打三项分:离现在近不近,重不重要,和眼前的问题相不相关。相关性就是向量相似度,又是第三讲那一招。
指图与比较
对照三条记忆的最近、重要、相关三项,注意最近按游戏小时衰减,相关是与问题的向量相似度。
第 3 步 · 教师可说的话
按分数取回
三项加起来,分数最高的几条放进托盘。读和写都有了:写是把经历记下,读是按分数取回。Sumers、姚顺雨等人提出的 CoALA 框架就是这样划分的:检索是读长期记忆,学习是写长期记忆。
指图与比较
比较表中的前两条与下方输入框,再读伊莎贝拉最期待情人节聚会的回答和 CoALA 的读写划分。
本页衔接
光把经历原样存着,够不够?
连续教师稿原文
书架上每一条都是一句话,比如“为聚会订购装饰”,带着时间,还有一个重要性分,是写入时让模型自己打的,1 到 10。
要用的时候,每条打三项分:离现在近不近,重不重要,和眼前的问题相不相关。相关性就是向量相似度,又是第三讲那一招。
三项加起来,分数最高的几条放进托盘。读和写都有了:写是把经历记下,读是按分数取回。Sumers、姚顺雨等人提出的 CoALA 框架就是这样划分的:检索是读长期记忆,学习是写长期记忆。
完整推理
一条记录。 记忆流里的每条记录是一句自然语言描述,带着创建时间、最近一次被取用的时间,以及写入时由模型打出的重要性(1–10)。打分用的提示大意是:从 1(刷牙、铺床这类日常琐事)到 10(分手、被大学录取这类重大事件)给这件事打分;原文举例,打扫房间得 2,约心仪的人出去得 8。
三项打分。 要决定放进输入的记录时,每条记录算三项分。最近:按距上次被取用以来的游戏小时数指数衰减,衰减因子 0.995。重要:写入时的分数。相关:记录与当前查询的向量余弦相似度。三项分别归一到 0–1 后加权求和(原文三个权重都取 1),取总分最高、放得进窗口的若干条。
为什么要三项。 只看相关,会取回很久以前但字面相近的琐事;只看最近,会被刚发生的小事挤满;只看重要,会一直重复几件大事。三项合起来,是对“此刻什么值得放进来”的一个可调的猜测。
一个对应。 2023 年的 CoALA 框架把语言 agent 的内部动作分成几类,其中“检索”是从长期记忆读,“学习”是往长期记忆写。记忆流同时有读(三项打分取回)和写(每条经历写入、打重要性)。
学生可能的回答与误区
- 第 1 步|“重要性应该由人标。”在一个连续运行的系统里没人来标;由模型在写入时打分可以扩展,代价是模型的判断可能有偏。
- 第 2 步|“只按相关度取就够了。”在 LAB-B 里把各项权重调一调,看会取回什么。
- 第 3 步|以为记忆流就是聊天记录。每条记录带结构化字段,按分数取回,不是按原顺序整段塞进去。
教学构造与出处
- 教学构造:三条候选记录的条形长度只示意三项高低,不是论文给出的数;“冰箱空着”是为对比编的条目。
- Generative Agents · §4.1:arXiv 2304.03442v2;记录字段、重要性打分提示与例子(打扫房间 2、约心仪的人出去 8)、最近的衰减因子 0.995、三项归一后相加。来源支持。
- CoALA · Cognitive Architectures for Language Agents · §4:Sumers 等,arXiv 2309.02427(2023-09);把检索与学习对应到读、写长期记忆。
动手
- LAB-B §2|自己调三项权重:Deepnote · B|记忆读写:写入、冲突、撤回。用的是 Q26 的钥匙记录。
- 先写下:把“最近”调到最大,会取回哪两条、答案变不变。
- 课前实测(纯 Python 规则机制,不调模型):默认权重取回 09:20 与 09:00 两条,答红柜;只把“最近”调到最大,取回 09:40 与 09:30,notebook 里故意写得很简单的阅读器答“查不到”。
- 这是机制示意:LAB-B 不用语言模型打重要性,只让你看到“按什么取”怎样改变放进输入的东西。