---
title: "记忆流：每条经历写下去，用时按三项打分取回"
description: "书架上的东西是 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](https://arxiv.org/abs/2304.03442)：arXiv 2304.03442v2；记录字段、重要性打分提示与例子（打扫房间 2、约心仪的人出去 8）、最近的衰减因子 0.995、三项归一后相加。来源支持。
- [CoALA · Cognitive Architectures for Language Agents · §4](https://arxiv.org/abs/2309.02427)：Sumers 等，arXiv 2309.02427（2023-09）；把检索与学习对应到读、写长期记忆。

## 动手

- LAB-B §2｜自己调三项权重：[Deepnote · B｜记忆读写：写入、冲突、撤回](https://deepnote.com/workspace/Coding-with-AI-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/Fall-26-Lecture-08-b602cd7f-d74a-4241-88c0-43f23fcc67bb/notebook/LAB-B-126ff417e47946ed8eddf8d4d237ed9e)。用的是 Q26 的钥匙记录。
- 先写下：把“最近”调到最大，会取回哪两条、答案变不变。
- 课前实测（纯 Python 规则机制，不调模型）：默认权重取回 09:20 与 09:00 两条，答红柜；只把“最近”调到最大，取回 09:40 与 09:30，notebook 里故意写得很简单的阅读器答“查不到”。
- 这是机制示意：LAB-B 不用语言模型打重要性，只让你看到“按什么取”怎样改变放进输入的东西。

[在课堂中打开](/slides/memory-stream-retrieval)
