为什么你的 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 秒内发出你的第一次请求。将其保存在你的环境变量或机密管理器中,而不是粘贴到聊天窗口中。

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

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

这在实践中改变了什么
第一个区别是,昂贵的那一半不再需要重新推导。无论常规流程的记录是来自捕获工具,还是来自你花十分钟写下的一次性记录,读取它的 Agent 都会从发生过的事情开始,而不是重新构建它。论文的演示是这一点的极端版本:一个编译后的常规流程“在没有模型参与的情况下确定性地重放”,消耗零模型 Token。
第二个区别是出处得以保留。这与每当 AI 系统自信地告诉你某些事情时出现的论点相同:有用的记录区分了什么是测量的,什么是推断的。这种区别恰恰是摘要所破坏的,这也是为什么虚构关于你的合理事实的 AI 系统如此难以被发现的原因——推断和观察出现在同一个句子中,并带有相同的置信度。
第三个区别是记录的寿命超过了制作它的工具。捕获存储在设计上是机器本地的。共享层意味着你在本季度积累的笔记,在切换编辑器、更换笔记本电脑或添加第二个 Agent 后依然存在——而且一个可供多个工具访问的记忆是与任何单个客户端的记忆功能完全不同的属性。
并且它与你已经运行的工具相兼容。Codex 记忆、Claude Code 的项目记忆以及 ChatGPT 的已保存记忆继续履行其本地职责。它们无法做到的是相互读取,而这正是多 Agent 设置在每次交接时都会丢失上下文的根本原因。
情景记忆的最佳实践
在开启任何功能之前,先决定你要捕获什么
屏幕捕获并不是一个中立的默认设置。阅读存储和保留细节,检查什么会离开机器,并考虑在一天中你的屏幕上是否会出现客户工作、凭据或受监管的数据。Chronicle 自身文档中关于屏幕内容带来 Prompt 注入的警告,是那种值得读两遍的句子——你访问的页面可能会携带你的 Agent 随后会执行的指令。
优先选择指向源头的记录
无论是带有证据指针的帧、引用文件路径的运行手册,还是引用迫使其做出的事件的决策记录,一个你可以验证的记忆都比几个无法验证的记忆更有价值。在需要知道某事是否真的发生的那一刻之前,摘要感觉上总是高效的。
保持两半独立但相邻
你决定的内容和你所做的操作是不同的记录,不应合并为一个叙述。将两者都存储起来,标记哪个是哪个,并让检索拉取问题所需的任何一个。将它们压缩在一起,就会把“我先检查了仪表板”变成“更喜欢检查仪表板”。
不要让常规流程仅存在于捕获存储中
如果一个常规流程重要到需要自动化,也请将简短版本写成文档。捕获存储是机器本地的、选择性加入的,有时还是研究预览版。共享存储中的五行运行手册在面对这三个事实时都能幸存下来,而且它也是新团队成员可以阅读的内容。
将“Agent 已经知道这一点”视为需要核实的断言
这里的失败模式是悄无声息的。没有情景记录的 Agent 不会宣布这一点,它会生成一个看似合理的你的工作流版本。在委托某些程序性工作之前,要求它复述步骤,并特别留意你从未在任何地方写下的步骤。
结论
情景记忆是 Agent 记忆中尚未有人完全构建好的那一半。今天的功能构建在对话记录之上,因此它们保留了你所说的内容,而不是你所做的操作——这是论文自身的框架,也是它存在的原因。目前针对“做”那一半的两个实际尝试都是通过捕获你的屏幕来工作的,并且都将结果留在一台机器上的一个工具中:OpenAI 的 Chronicle 留在 Codex 的本地记忆库中,开源编译器留在通过 MCP 提供服务的本地数据库中。
实际的启示不是等待。如果隐私权衡对你合适,请启用捕获;优先选择保留证据指针的记录,而不是不保留证据指针的模型摘要;并确保你积累的所有内容——编译后的活动以及根本没有出现在屏幕上的规范和决策——都保存在不止一个助手可以读取的地方。记录本身的价值超过了产生它的工具。