MemoryLake
返回全部文章
News2026 年 8 月 11 日·11 分钟阅读

AI Agent 的情景记忆:为什么你的 Agent 只知道你说了什么,不知道你做了什么 (2026)

你的 Agent 知道你更喜欢 TypeScript,知道你的公司叫 Northwind,也知道你要求它保持简洁。但它完全不知道你周二上午花在计费仪表板上、拉取了三份报告,并手动理清了退款流程——而这恰恰是你现在要求它自动化的日常工作。

直接的答案是:今天交付的几乎所有记忆功能存储的都是对话——即你告诉模型的内容。而你在屏幕上实际进行的操作则是另一种完全不同的记录,且大部分都缺失了。2026 年 8 月 6 日发表的一篇预印本论文直言不讳地指出:今天的 Agent 记忆“记录的是用户说了什么,而不是用户做了什么”。在研究文献中,这一差距被称为——情景记忆(episodic memory)——这也是为什么 Agent 需要消耗全部推理成本去重新推导你已经执行过的常规流程。

本文将探讨情景记忆对 Agent 意味着什么、目前的尝试有哪些对错,以及记忆层在何处能提供帮助,而在何处你其实需要完全不同的东西。

为什么你的 Agent 知道你说了什么,却不知道你做了什么

记忆产品构建在对话记录之上

看看你所使用的工具中,记忆是从哪里来的。ChatGPT 的记忆源自你的聊天。Claude 的记忆源自你的对话。Codex 从先前的聊天中生成记忆——它自己的文档将其保留的内容描述为“摘要、持久条目、最近的输入以及来自先前聊天的支持证据”。编程 Agent 读取你编写的文件。

所有这些都是你为模型生成的语言的下游产物。这是一种真实且有用的记忆,大致相当于心理学家所说的语义记忆或陈述性记忆:事实、偏好、现行规则。但它并不是事件的记录——即你实际做了什么、以什么顺序、在哪个应用程序中、持续了多长时间的序列。

“做”的那一半没有自然的捕获点

当你在聊天中输入偏好时,捕获是免费的:文本已经存在。而当你工作时——点击管理面板、核对两张电子表格、在批准付款前检查仪表板——没有任何东西被记录在 Agent 可以触及的地方。

这就是为什么缺失的那一半一直缺失。并不是厂商不想要它,而是收集它意味着捕获你的屏幕,这是一个完全不同的产品,涉及完全不同的授权、存储和安全问题。请注意,这也是为什么这一差距会长期存在:它不会作为更好模型的副产品而自动消失。

当模型总结你的活动时,证据也随之流失

将屏幕捕获转化为记忆的显而易见的方法是让模型观看并编写摘要。8 月 6 日的预印本论文——Activity Frames: Deterministic Screen-Activity Compilation for Agent Memory and Replay (Nossa Iyamu, arXiv 2608.05784)——则主张相反的做法,并对两者的差异进行了测量。

它的流水线完全不使用模型。它将本地捕获流分割为“类型化的活动帧,即包含应用程序、站点、时间、输入量以及指向原始行的证据指针的有界片段,无需模型参与,因此输出是字节一致、可缓存且可进行机械审计的”。在作者跨越 51 个活跃天的 128,756 帧语料库上,编译一天的原始捕获在 68 毫秒内生成了一个可直接用于 Prompt 的上下文块,体积缩小了 86 倍,而读取该上下文块的 Agent 在回答关于当天的问题时,对照独立标准答案达到了 98.4% 的准确率(Wilson 95% 置信区间为 91.7–99.7%)——“而对相同捕获流进行 LLM 摘要的准确率仅为 66-80%”。

有两个比标题更重要的注意事项。这是一篇预印本,而非经过同行评审的论文,且语料库是一位专业人士自己的单用户数据——这些数字描述的是该设置,而不是你的团队。此外,66-80% 的数据是论文自身与同一捕获流的语言模型摘要进行的对比,并不是对任何已发布产品的测量。

在这些注意事项之外,依然成立的是结构性观点,这与文档处理生效的原理相同:摘要是一个有损的产物,没有指向产生它的源头的指针。而帧保留了证据指针。你可以对它们进行检查。

在活动确实被捕获的地方,它也只落入一个工具中

OpenAI 已经发布了这一类别的功能。Chronicle(在文档中被描述为 macOS 上 ChatGPT Pro 订阅者的选择性加入研究预览版)根据最近的屏幕活动构建 Codex 记忆。其文档具体得令人耳目一新:屏幕捕获保存在本地的临时目录下,并在六小时后删除,而它生成的记忆是“未加密的 Markdown 文件,如果需要,你可以阅读和修改”,存储在 Codex 主目录下。为了生成这些记忆,“屏幕截图帧、从屏幕截图中提取的 OCR 文本、时间信息和本地文件路径”会在 OpenAI 的服务器上进行处理。OpenAI 还坦言,后台 Agent 会“迅速消耗速率限制”,并且使用 Chronicle 会“增加屏幕内容带来 Prompt 注入攻击的风险”。

这是一个厂商对一个艰难功能的坦诚,其设计选择也是合理的。但请注意输出最终流向了哪里:在 Codex 的本地记忆库中,在单台机器上,仅可被 Codex 读取。该论文附带的开源项目做出了镜像式的选择——捕获到本地 SQLite 数据库,在本地编译,通过 MCP 提供服务——其输出同样保存在捕获它的机器上。

因此,即使在今天最好的情况下,你所做操作的记录也只能被一台笔记本电脑上的一个客户端读取。而你实际询问周二上午情况的助手可能是另一个。

人们尝试过的方法

重新解释常规流程。 默认做法。你描述这 11 个步骤,Agent 完成得还不错,下周你再描述一遍。这篇论文的全部出发点就是这种做法的成本:Agent“消耗全部前沿推理成本去重新推导其用户已经执行过的常规流程”。

让 Agent 指向产物。 Git 日志、工单历史、浏览器历史记录、导出的报告。这确实有用,也是最接近的廉价替代方案——但产物记录的是结果,而不是序列。一次提交(commit)告诉你改变了什么,但不会告诉你在此之前进行检查的 20 分钟。

通用屏幕录制工具。 类似 Rewind 的工具和较新的本地优先录制器为你生成可搜索的历史记录。有些现在将其暴露给 Agent。值得一试,但要问每个工具的问题都是一样的:输出是否带有指向原始捕获的指针,还是仅仅是模型对你下午活动的主观印象?

Chronicle。 如果你是 Mac 上的 Pro 订阅者,且你的工作主要在 Codex 中进行,这是通往“做”那一半的最短路径,在启用它之前,你应该阅读其关于速率限制和 Prompt 注入的文档。它的适用范围是 Codex。

事后自己编写运行手册(runbook)。 保真度最高但没人能坚持下去的选择。这也是自动捕获不断被尝试的真实原因。

注意整个列表的格局:要么记录根本没有被收集,要么被收集到了只有一个工具可以读取的地方。

解决方案:为记录提供一个两半都能触及的归宿

有两件事是真实的,但它们经常被混淆。情景捕获是一个捕获问题——它需要有东西在你的同意下进行监视,任何记忆层都无法改变这一点。而记录之后发生的事情是一个存储和访问问题,这正是今天大部分价值流失的地方。

因此,诚实地拆分这项工作。如果你想要“做”的那一半,选择一个捕获工具并仔细阅读其隐私文档。然后确保其编译后的输出——加上你已经拥有的陈述性那一半(规范、决策和约束)——保存在你使用的每个助手都能读取的地方,而不是保存在某个客户端的本地目录或聊天记录中。

MemoryLake 是用于第二项工作的记忆层:一个存放你的文档、决策和编译记录的统一存储库,可直接从支持 MCP 的工具(如 Claude 和 Codex)中读取,也可通过 API 从 ChatGPT 中读取。准确地说,它不是什么——它不会监视你的屏幕,如果你需要情景历史记录,它也不是捕获工具的替代品。

步骤 1:创建 API 密钥

生成密钥并在大约 30 秒内发出你的第一次请求。将其保存在你的环境变量或机密管理器中,而不是粘贴到聊天窗口中。

创建 MemoryLake API 密钥
创建 MemoryLake API 密钥

步骤 2:上传你的第一批记忆

放入你目前需要反复解释的文档、图像和文件:运行手册、规范、约束、决策记录、导出的报告。如果你运行的捕获工具生成了编译后的 Markdown 或结构化输出,该输出也属于这里——并且要按原样上传,而不是作为摘要的摘要上传。

上传你的第一批记忆到 MemoryLake
上传你的第一批记忆到 MemoryLake

步骤 3:连接你的 AI 和 Agent

让 Claude、Codex、OpenClaw 和其他 AI Agent 通过 MCP 或 API 访问记忆。ChatGPT 没有 MCP 客户端,因此请通过 API 检索你需要的内容,并将其注入到调用模型的 Prompt 或工作流中。这一步的关键在于,相同的记录可以响应多个工具——而这正是本地捕获存储自身无法做到的部分。

通过 MCP 连接你的 AI 和 Agent
通过 MCP 连接你的 AI 和 Agent

这在实践中改变了什么

第一个区别是,昂贵的那一半不再需要重新推导。无论常规流程的记录是来自捕获工具,还是来自你花十分钟写下的一次性记录,读取它的 Agent 都会从发生过的事情开始,而不是重新构建它。论文的演示是这一点的极端版本:一个编译后的常规流程“在没有模型参与的情况下确定性地重放”,消耗零模型 Token。

第二个区别是出处得以保留。这与每当 AI 系统自信地告诉你某些事情时出现的论点相同:有用的记录区分了什么是测量的,什么是推断的。这种区别恰恰是摘要所破坏的,这也是为什么虚构关于你的合理事实的 AI 系统如此难以被发现的原因——推断和观察出现在同一个句子中,并带有相同的置信度。

第三个区别是记录的寿命超过了制作它的工具。捕获存储在设计上是机器本地的。共享层意味着你在本季度积累的笔记,在切换编辑器、更换笔记本电脑或添加第二个 Agent 后依然存在——而且一个可供多个工具访问的记忆是与任何单个客户端的记忆功能完全不同的属性。

并且它与你已经运行的工具相兼容。Codex 记忆、Claude Code 的项目记忆以及 ChatGPT 的已保存记忆继续履行其本地职责。它们无法做到的是相互读取,而这正是多 Agent 设置在每次交接时都会丢失上下文的根本原因。

情景记忆的最佳实践

在开启任何功能之前,先决定你要捕获什么

屏幕捕获并不是一个中立的默认设置。阅读存储和保留细节,检查什么会离开机器,并考虑在一天中你的屏幕上是否会出现客户工作、凭据或受监管的数据。Chronicle 自身文档中关于屏幕内容带来 Prompt 注入的警告,是那种值得读两遍的句子——你访问的页面可能会携带你的 Agent 随后会执行的指令。

优先选择指向源头的记录

无论是带有证据指针的帧、引用文件路径的运行手册,还是引用迫使其做出的事件的决策记录,一个你可以验证的记忆都比几个无法验证的记忆更有价值。在需要知道某事是否真的发生的那一刻之前,摘要感觉上总是高效的。

保持两半独立但相邻

你决定的内容和你所做的操作是不同的记录,不应合并为一个叙述。将两者都存储起来,标记哪个是哪个,并让检索拉取问题所需的任何一个。将它们压缩在一起,就会把“我先检查了仪表板”变成“更喜欢检查仪表板”。

不要让常规流程仅存在于捕获存储中

如果一个常规流程重要到需要自动化,也请将简短版本写成文档。捕获存储是机器本地的、选择性加入的,有时还是研究预览版。共享存储中的五行运行手册在面对这三个事实时都能幸存下来,而且它也是新团队成员可以阅读的内容。

将“Agent 已经知道这一点”视为需要核实的断言

这里的失败模式是悄无声息的。没有情景记录的 Agent 不会宣布这一点,它会生成一个看似合理的你的工作流版本。在委托某些程序性工作之前,要求它复述步骤,并特别留意你从未在任何地方写下的步骤。

结论

情景记忆是 Agent 记忆中尚未有人完全构建好的那一半。今天的功能构建在对话记录之上,因此它们保留了你所说的内容,而不是你所做的操作——这是论文自身的框架,也是它存在的原因。目前针对“做”那一半的两个实际尝试都是通过捕获你的屏幕来工作的,并且都将结果留在一台机器上的一个工具中:OpenAI 的 Chronicle 留在 Codex 的本地记忆库中,开源编译器留在通过 MCP 提供服务的本地数据库中。

实际的启示不是等待。如果隐私权衡对你合适,请启用捕获;优先选择保留证据指针的记录,而不是不保留证据指针的模型摘要;并确保你积累的所有内容——编译后的活动以及根本没有出现在屏幕上的规范和决策——都保存在不止一个助手可以读取的地方。记录本身的价值超过了产生它的工具。

常见问题

什么是 AI Agent 的情景记忆?

它是事件的记录:发生了什么、以什么顺序、在哪个应用程序中、持续了多长时间。这与大多数产品交付的陈述性记忆形成对比——陈述性记忆是从你的对话中提取的事实、偏好和现行指令。这种区别很重要,因为程序性工作是一个序列,而你的偏好列表无法重构出一个序列。

ChatGPT 或 Claude 的记忆功能不是已经做到这一点了吗?

没有,而且它们也没有声称能做到。它们的记忆源自你输入的内容。如果工作发生在浏览器标签页、电子表格或内部管理工具中,它们就没有任何东西可读。这是一个捕获差距,而不是模型限制,因此更好的模型也无法弥合它。

我可以期待 98.4% 的准确率吗?

不能将其视为保证。它来自一篇单作者预印本论文,是在一位专业人士自己的捕获语料库(51 个活跃天内的 128,756 帧)上对照独立标准答案测得的。请将其视为某种设计选择的证据——在该设置中,带有证据指针的确定性编译击败了相同数据的语言模型摘要——而不是你环境的基准测试。

Chronicle 值得启用吗?

这取决于你的屏幕上有什么以及你在哪里工作。它是 macOS 上 ChatGPT Pro 的选择性加入研究预览版,屏幕截图在六小时后删除,生成的记忆是你可以阅读的未加密 Markdown,并且帧、OCR 文本、时间以及本地文件路径都会在 OpenAI 的服务器上进行处理。OpenAI 还警告它会迅速消耗速率限制并增加 Prompt 注入风险。这些事实决定了你的选择,它们都在其文档中。

记忆层会捕获我的屏幕活动吗?

不会。MemoryLake 不会监视你的屏幕,如果任何记忆产品暗示它会这样做,却不具体描述它捕获了什么以及这些数据流向何处,你都应该保持警惕。记忆层的作用是将你提供给它的内容——文档、决策以及进行捕获的工具的输出——保存在你的助手可以读取的一个地方。

这与对我的文件进行检索有什么不同?

检索是在你已有的文档语料库中进行搜索。而情景记忆则是关于根本没有被记录下来的事件。两者是互补的,谁也无法替代谁,这也正是检索不等于记忆的原因:找到一份相关的文档和知道你周二做了什么,是完全不同的问题。