反思:从经历里归纳出新结论,写回记忆库
反思让 agent 从自己的经历里归纳出新结论再写回去,agent 自己造出了新信息。
这一页为什么在这里
记忆流的第二个部件:反思。它不是压缩,而是从经历里归纳出新的结论,写回记忆库,以后也能被检索。用克劳斯“花一小时陪谁”的例子展示有无反思的差别,为 Q22 的问题铺路:一个例子说明了机制,可凭什么说它让 agent 变好了?
上屏
- 第 1 步:问题“如果花一小时陪一个人,选谁?”;克劳斯的三条观察:在写研究论文|在读城市更新的书|和图书馆员聊研究。「只有观察」的答案:Wolfgang——见得最多,却只是擦肩而过。
- 第 2 步:从三条观察引出一条反思:Klaus 专注于他的研究;箭头:写回记忆库。
- 第 3 步:「有了反思」的答案:Maria——同样投入研究。
讲
第 1 步 · 教师可说的话
只有原始观察时
只靠原始观察,克劳斯被问“花一小时陪谁”,选了见面次数最多的邻居。可他们只是擦肩而过。
第 2 步 · 教师可说的话
归纳并写回反思
反思是这样做的:每当最近经历的重要性累积到一个阈值,就让模型回看最近的记忆,问自己几个高层问题,再写出结论,比如“克劳斯专注于他的研究”,并标明依据是哪几条观察。这条结论本身也写回书架。
第 3 步 · 教师可说的话
反思怎样改变选择
有了这条反思,他选了同样在做研究的玛丽亚。注意,“专注于研究”不是任何人告诉它的,是 agent 从自己的经历里归纳出来的:它自己造出了新信息。好的反思还标出依据,这和我们写论文要引证据是一回事。
本页衔接
可是,凭什么说是记忆和反思让它变好的?
连续教师稿原文
只靠原始观察,克劳斯被问“花一小时陪谁”,选了见面次数最多的邻居。可他们只是擦肩而过。
反思是这样做的:每当最近经历的重要性累积到一个阈值,就让模型回看最近的记忆,问自己几个高层问题,再写出结论,比如“克劳斯专注于他的研究”,并标明依据是哪几条观察。这条结论本身也写回书架。
有了这条反思,他选了同样在做研究的玛丽亚。注意,“专注于研究”不是任何人告诉它的,是 agent 从自己的经历里归纳出来的:它自己造出了新信息。好的反思还标出依据,这和我们写论文要引证据是一回事。
完整推理
反思是什么。 当最近事件的重要性累计超过一个阈值(原文实现取 150,大约一天两三次),agent 就停下来反思:先根据最近的记忆问自己几个高层问题,再检索相关记忆,生成几条带依据的结论(注明它基于哪些记录),写回记忆流。反思也可以基于反思,层层往上。
例子(§4.2)。 只靠原始观察时,问克劳斯愿意花一小时陪谁,他选了见得最多的邻居 Wolfgang,尽管两人只是擦肩而过;有了“克劳斯专注于他的研究”这类反思以后,他选了同样投入研究的 Maria。
反思和摘要的区别。 摘要是把旧记录压短,信息只会减少;反思产生一条原来没有的结论(“专注于研究”),而且保留了它的依据,之后和普通记录一样可以被检索、被引用。
风险。 反思是推断,推断可能错;错的反思写回去以后会被反复取回。所以要保留它来自哪些观察,出了问题能追溯。
还差一步。 单个例子说明机制,不说明部件有效。凭什么说是反思让它变好了?这是下一页要学生设计的。
学生可能的回答与误区
- 第 1 步|“选 Wolfgang 也说得通。”只看出现频率,Wolfgang 确实最“熟”;问题在于这个选择没反映出克劳斯是什么样的人。
- 第 3 步|把反思当成摘要。它是带依据的新结论,而且也会被检索。
- 第 3 步|“一个例子就证明反思有用。”例子展示机制,证明要靠对照(Q22–Q23)。
教学构造与出处
- 教学构造:三条观察的排版是课件做的;观察、反思与两次选择来自原文。
- Generative Agents · §4.2 反思:arXiv 2304.03442v2;反思的触发(重要性累计超过 150)、生成与写回,克劳斯在有无反思时选 Wolfgang 或 Maria 的例子。作者报告的单个例子。