晨光里的AI

固定版本 · 查看当前页面

Agent 的记忆是什么,难在哪?

晨旭 · 内容日期 2026-10-27。此页保留当时的文本、性质和段落,不用于判断现在是否仍然有效。

版本 d106965c4c6a84b3cf1884e23e53dc9fd50c0e856ec84db2d4574fe14ad93566 · 读取 JSON

该版本的看法

在 Agent 应用层,我更关心记忆能否被持续管理,而不只是上下文能装多少。它既要记录交流,也要记录行动;关键在于决定什么值得保存、什么时候更新,以及当前任务应该取用什么。对于我的个人知识系统,判断历史应当可追溯,但旧判断不应被当作当前立场使用。

p1

我关注的是怎样管理记忆

p2

这里主要讨论应用层可读写的记忆:对话记录、行动记录,以及从中整理出来、供后续任务使用的信息。它不涵盖模型内部所有形式的记忆。

p3

把信息保存下来只是开始。保存的内容是否准确、后来有没有变化、在当前任务中是否仍然适用,决定了这些记录能不能真正帮上忙。

p4

记录行动,也要选择当前取用的信息

p5

在《深度解析 Memory 本质》中,我讨论过工具调用的行为记忆:记录调用的工具、输入、输出和成功标记。其中举的例子是,如果 Agent 不记得某次搜索已经失败,它可能会不断重试。 行为记忆的原文

p6

保留行动记录,不意味着把全部记录都放进模型当前的上下文。我在《上下文不等于记忆》中把两件事分开:记忆工程决定保留什么、遗忘什么,上下文工程筛选与当前决策相关的片段,决定让模型此刻看到什么。《深度解析 Memory 本质》也写到,任务执行中按当前子任务的语义检索历史错题集与最佳实践。 保留与取用的区别 · 按任务读取

p7

系统怎样继续执行,也需要单独处理

p8

在 Agent Infra 的阶段性理解里,我讨论的是另一类保证:引入多 Worker、重试和故障接管后,任务进度和已发生的副作用,需要由执行者共享的事实源来判断。Temporal 是文中举出的持久化运行方案,着重解决一次运行在崩溃后继续推进的问题。 执行状态与共享事实源 · Temporal 的讨论

p9

这些执行保证与“这一步给模型什么上下文”,在那篇文章里分别放在控制层和 Harness 层讨论。 上下文装配的讨论

p10

记录“做过什么”也需要区分层次。文字可以记下调用过什么工具、遇到过什么错误,但不等于保存了能够继续运行的计算现场。回顾经历与恢复执行,是不同的需求。在 OpenScience 那篇文章中,按 session 复用 Kernel 是维持连续计算的具体做法;运行中的 Kernel 仍不等于永久保存的实验环境,长期复现还需要代码版本、依赖、随机种子、输入数据和计算环境。 Kernel 连续运行的例子 · 长期复现的限定

p11

上下文压缩与缓存复用之间有取舍

p12

在 KV Cache 那篇文章里,我用一个例子说明摘要式压缩:保留最近的 E、F,把更早的 A、B、C、D 整理成摘要。后续可以保留旧摘要,只压缩新增历史,也可以把旧摘要与新增历史重新整理成一份统一摘要。 摘要压缩的例子

p13

这与 KV Cache 的作用不同:缓存复用已有计算,压缩会删减、截断或总结历史信息,因此可能遗漏细节。保留旧摘要有利于维持稳定前缀,但摘要可能逐渐重复、过时或矛盾;重新合并能整理这些内容,却会改变前缀,使变化位置之后的旧缓存通常不能继续用于压缩后的对话。生成新摘要的请求仍可能利用未变化的前缀缓存,这与新摘要替换后、主对话如何复用缓存是两个阶段。文中最终讨论的是缓存成本、上下文长度和信息完整性之间的平衡。 压缩可能遗漏细节 · 前缀变化与缓存 · 取舍

p14

保留历史,与让旧信息退出当前回答

p15

对我正在建设的个人知识系统,我倾向于把“保存记录”和“参与当前回答”分开处理。

p16

已经公开的判断发生变化时,应保留原来的表述、形成时间和修订关系,让人能够追溯我为什么改变看法。Agent 回答“我现在怎么看”时,则应优先使用当前有效的判断;涉及观点演变时,再取用历史记录。

p17

因此,保留历史与遗忘机制可以同时成立。旧记录可以继续存在,同时被标记为已取代、降低检索优先级,或不再进入当前任务的上下文。

p18

这里讨论的是判断历史的可追溯性,不意味着所有原始材料都必须永久保留。

该版本的判断

在我的个人知识系统中,保留判断历史与控制当前取用应分开处理:历史用于追溯变化,回答当前立场时应优先使用当前有效判断。

judgment · 2026-10-21

Agent 和 Chatbot 的关键差异在于,Chatbot 只需记「谁说了什么」,Agent 还必须记「我做过什么」——不记的话,它可能在失败的工具调用上反复重试。

judgment · 2026-10-27 · 取代 agent-needs-behavior-memory

2026-10-27 复核:原结论写“否则会在失败的工具调用上陷入死循环”,比《深度解析 Memory 本质》正文“可能会在一个死循环里不断重试”更肯定,按正文收回到“可能”。旧原话保留。