<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Auto Memory | Feisky</title><link>https://feisky.xyz/tags/auto-memory/</link><description>极客时间专栏作者，专注于 Kubernetes、AI Infra、AI Agent 领域的深度技术分享，让 AI 成为你的第二大脑</description><generator>Hugo 0.165.0</generator><language>zh-CN</language><managingEditor>Pengfei Ni</managingEditor><webMaster>Pengfei Ni</webMaster><lastBuildDate>Fri, 14 Aug 2026 12:39:05 +0000</lastBuildDate><atom:link href="https://feisky.xyz/tags/auto-memory/index.xml" rel="self" type="application/rss+xml"/><item><title>从 Recall 到 Chronicle：AI 为什么这么想看你的屏幕?</title><link>https://feisky.xyz/posts/2026-04-21-%E4%BB%8Erecall%E5%88%B0chronicle-ai%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%99%E4%B9%88%E6%83%B3%E7%9C%8B%E4%BD%A0%E7%9A%84%E5%B1%8F%E5%B9%95/</link><pubDate>Tue, 21 Apr 2026 10:00:00 +0800</pubDate><dc:creator>Pengfei Ni</dc:creator><category>Codex</category><category>Claude Code</category><category>AI 记忆</category><category>Chronicle</category><category>Auto Memory</category><guid>https://feisky.xyz/posts/2026-04-21-%E4%BB%8Erecall%E5%88%B0chronicle-ai%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%99%E4%B9%88%E6%83%B3%E7%9C%8B%E4%BD%A0%E7%9A%84%E5%B1%8F%E5%B9%95/</guid><description>&lt;p&gt;还记得去年 Recall 的翻车吗？让 AI 每隔几秒截一次屏，记住关于你的一切，结果截屏未加密存储，最后不得不下架。&lt;/p&gt;
&lt;p&gt;现在 OpenAI 在 Codex 中推出了一个类似的功能 Chronicle，让 AI 持续盯着你的屏幕，持续构建和更新关于你的记忆。&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>还记得去年 Recall 的翻车吗？让 AI 每隔几秒截一次屏，记住关于你的一切，结果截屏未加密存储，最后不得不下架。</p><p>现在 OpenAI 在 Codex 中推出了一个类似的功能 Chronicle，让 AI 持续盯着你的屏幕，持续构建和更新关于你的记忆。</p><h2 id="chronicle-做了什么">Chronicle 做了什么</h2><p>Chronicle 是 Codex 的一个实验性功能，目前只对 Pro 订阅用户和 Mac 用户开放。在 Codex 设置里打开 Chronicle research preview 开关，状态变成 Running，它就开始工作了。</p><p><img src="/images/2026-04-21-RecallChronicle-AI-2026-04-21-chronicle-settings.jpg" alt="Chronicle 配置界面" loading="lazy" decoding="async"/></p><p>开启之后，它会在后台定期截取你的屏幕内容，把截图发到 OpenAI 服务器跑一遍 OCR 和视觉分析，提取出文字摘要，再存回你本地的一个 Markdown 文件里。</p><p>想象空间确实挺大的。你在浏览器里查了一篇文档，切到编辑器写了几行代码，又去 Slack 回了条消息，这些 Chronicle 都看得到。下次你跟 Codex 对话的时候，不用再花时间解释我刚才在干什么，因为它早就已经知道了。</p><p>Codex 的产品负责人 Tibo 说 Chronicle 改变了他和很多 OpenAI 员工使用 Codex 的方式。说白了，OpenAI 想让 Codex 从一个编码工具变成一个全能的 Super App，Chronicle 就是这个方向上的关键一步，让 Codex 能感知到你整个工作环境。</p><p>但这里有个问题。</p><h2 id="截图去了哪">截图去了哪</h2><p>Chronicle 整体的工作流程比想象中复杂，下面这张图拆解得比较清楚：</p><p><img src="/images/2026-04-21-RecallChronicle-AI-2026-04-21-chronicle-architectur.jpg" alt="Chronicle 工作原理" loading="lazy" decoding="async"/></p><p>简单说，数据流是这样的：</p><ol><li>后台定期截屏，临时存在<code>$TMPDIR/chronicle/screen_recording/</code>，6 小时后自动删除</li><li>截图发送到 OpenAI 服务器，进行 OCR 和视觉分析</li><li>分析结果经过多阶段的提炼和整合，最终以 Markdown 格式存回本地<code>~/.codex/memories_extensions/chronicle/</code></li></ol><p>OpenAI 文档明确指出，截图处理完就删掉，不会用于训练。但有几个细节值得注意。</p><p>本地存储的记忆文件是未加密的 Markdown，任何有文件系统访问权限的程序都能读。有意思的是，Recall 翻车之后重新上线时加了不少安全措施：加密数据库、Windows Hello 认证、敏感信息自动过滤（信用卡号、身份证等）。Chronicle 发布的时候，这些一个都没有。</p><p>不过这些还不是最让我在意的。更值得警惕的是 prompt injection 的攻击面被大幅扩大了：你打开一个恶意网页，网页里藏了一段指令，Chronicle 截屏后发给 AI 分析，这段指令就可能被执行。以前攻击者只能通过你主动输入的内容来注入指令，现在你屏幕上出现过的一切都是潜在的攻击入口。</p><p>OpenAI 的建议是什么？开会前或查看敏感内容前，手动暂停 Chronicle。</p><p>不过这就有个明显的问题了，如果系统需要用户自己记得在关键时刻关掉它，那这个系统的设计本身就有问题。</p><h2 id="另一条路claude-code-怎么做记忆">另一条路：Claude Code 怎么做记忆</h2><p>同样是解决 AI 不记得你在干什么这个问题，Anthropic 走了一条完全不同的路。</p><p>Claude Code 的 Auto Memory 不看你的屏幕，也不截图。它只从你和它的对话中学习。当你纠正了它的一个错误、当你表达了某个偏好、当一个 debug 过程走完了，Claude 会判断哪些信息值得记住，然后写进本地的<code>MEMORY.md</code> 文件。</p><p>两个产品的思路差别挺大的。Chronicle 想做一个全知全能的助手，持续观察你的整个桌面活动，浏览器查的文档、编辑器里的代码、Slack 里的讨论，它全都能关联起来。这种跨应用的上下文理解是 Auto Memory 做不到的。但代价是你的截图得先过一遍 OpenAI 的服务器，隐私边界从一开始就是模糊的。</p><p>Auto Memory 正好反过来，只从对话里提炼，全程不碰你的屏幕。记忆文件就是本地的 Markdown，想删就删，想改就改。代价是 Claude Code 只能记住对话里的东西，对话之外的活动它一无所知。用个不太严谨的类比，Chronicle 像是装了个监控摄像头，Auto Memory 像是发了一本笔记本让它自己记。</p><h2 id="为什么-ai-都想看你的屏幕">为什么 AI 都想看你的屏幕</h2><p>Recall、Chronicle，加上之前的 Rewind AI（被 Meta 收购后直接关了 Mac 应用），三家公司在不同时间点做了同一个决策：让 AI 看用户的屏幕。</p><p>这不是巧合。</p><p>做过 AI 编程的你应该有体会：每次开一个新会话，都得重新交代一遍“我在做什么项目、用什么技术栈、之前跑到哪一步了”。我自己用 Claude Code 的时候，复杂项目开头经常要花点时间交代背景信息，有时候还忘了说某个关键细节，结果 Claude Code 给出的方案就跑偏了。这个冷启动的成本，用得越深越明显。</p><p>上下文是 AI 最稀缺的资源，模型再聪明，不知道你在干什么就是不知道。而屏幕恰好是信息密度最高的上下文来源，一张截图包含的信息量，远比你打字描述的多得多，编辑器里的代码、浏览器里的文档、终端里的报错，全在一个画面里。我觉得这就是为什么尽管 Recall 被骂得那么惨，OpenAI 还是选择做同样的事。</p><p>但这里有个解不开的矛盾：用户想要 AI 懂我，同时又不想 AI 监视我。目前谁也没想出两全的办法。也许等端侧模型足够强，截屏和分析都能在本地完成的时候，这个矛盾才有可能真正化解。</p><p>GitHub 上有个叫 Screenpipe 的开源项目，做的事情跟 Chronicle 类似，但完全在本地处理。截屏、OCR、记忆生成，全部跑在你自己的机器上，不上传任何数据。18000 多个 star，说明这个需求是真实的，但用户对怎么实现有自己的判断。</p><h2 id="写在最后">写在最后</h2><p>回到开头的问题：Recall 搞砸了，为什么 OpenAI 还要做 Chronicle？因为上下文争夺战才刚开始。</p><p>不只是 OpenAI 和 Anthropic，Google 在最新发布的 Gemini Mac App 里也加了读屏功能。每家都在赌同一件事：AI 的终局不是一个更聪明的聊天框，而是一个真正理解你工作的搭档。问题在于，这个搭档需要时刻盯你的屏幕才能做到吗？</p><hr><p><strong>相关资源：</strong></p><ul><li>Codex Chronicle 官方文档：<a href="https://developers.openai.com/codex/memories/chronicle">https://developers.openai.com/codex/memories/chronicle</a></li><li>Claude Code Memory 文档：<a href="https://code.claude.com/docs/en/memory">https://code.claude.com/docs/en/memory</a></li><li>Greg Brockman 发布推文：<a href="https://x.com/gdb/status/2046293955009274019">https://x.com/gdb/status/2046293955009274019</a></li><li>Screenpipe（开源本地方案）：<a href="https://github.com/mediar-ai/screenpipe">https://github.com/mediar-ai/screenpipe</a></li></ul><hr><p>欢迎长按下面的二维码关注<strong>Feisky</strong> 公众号，了解更多云原生和 AI 知识。</p><p><img src="/images/mp.png" alt="Feisky 公众号二维码" loading="lazy" decoding="async"/></p>
]]></content:encoded><dc:extent>5 min read</dc:extent></item><item><title>Claude Code 自动记忆：AI 编程助手终于不失忆了</title><link>https://feisky.xyz/posts/2026-02-27-claude-code%E8%87%AA%E5%8A%A8%E8%AE%B0%E5%BF%86ai%E7%BC%96%E7%A8%8B%E5%8A%A9%E6%89%8B%E7%BB%88%E4%BA%8E%E4%B8%8D%E5%A4%B1%E5%BF%86%E4%BA%86/</link><pubDate>Fri, 27 Feb 2026 10:00:00 +0800</pubDate><dc:creator>Pengfei Ni</dc:creator><category>Claude Code</category><category>AI 编程</category><category>自动记忆</category><category>Auto Memory</category><category>开发工具</category><category>效率工具</category><guid>https://feisky.xyz/posts/2026-02-27-claude-code%E8%87%AA%E5%8A%A8%E8%AE%B0%E5%BF%86ai%E7%BC%96%E7%A8%8B%E5%8A%A9%E6%89%8B%E7%BB%88%E4%BA%8E%E4%B8%8D%E5%A4%B1%E5%BF%86%E4%BA%86/</guid><description>&lt;p&gt;用 Claude Code 做过稍微复杂点的项目的人，应该都有一个共同的经验：新开 Session 后，第一件事不是写代码，而是提供 Context：这个项目是什么，用的什么架构，测试环境有哪些坑，之前约定的命名规范是什么等等。&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>用 Claude Code 做过稍微复杂点的项目的人，应该都有一个共同的经验：新开 Session 后，第一件事不是写代码，而是提供 Context：这个项目是什么，用的什么架构，测试环境有哪些坑，之前约定的命名规范是什么等等。</p><p>这些背景情况交代完，快的也要五分钟，慢的可能要十几分钟。然后 Claude Code 说“好的，我理解了”，才终于能开始干活。</p><p>这个问题确实让人有点烦。开源社区也有很多人试图通过外挂记忆的方式来解决这个问题，但实际体验都不太好。比如 claude-mem 试图通过捕捉工具使用情况自动生成语义摘要，并把相关信息带到未来会话中。看起来很美好，但实际用起来问题一大堆，安装/依赖复杂不说，内存占用高，查询巨慢，稳定性还极差。</p><p>这样的痛点 Claude Code 作者自然也早就看到了。刚刚，Anthropic 工程师 Thariq 发了条公告：Claude Code 正式推出了 auto-memory 功能。简单说，Claude Code 现在能跨 session 记住东西了。你的项目上下文、调试习惯、偏好的解决方案，下次开新会话时自动调取，不需要你手动写任何东西。</p><h2 id="auto-memory-是怎么工作的">Auto Memory 是怎么工作的</h2><p>机制不复杂。</p><p>Claude Code 在你编程过程中，会自动把它认为值得记住的东西写进一个本地文件：</p><pre tabindex="0"><code>~/.claude/projects/&lt;project-hash&gt;/memory/MEMORY.md</code></pre><p>记什么、怎么记？我扒了一下它的系统提示词，完整内容如下：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-markdown" data-lang="markdown"><span style="display:flex;"><span># auto memory</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span>You have a persistent auto memory directory at</span></span><span style="display:flex;"><span><span style="color:#e6db74">`~/.claude/projects/&lt;project-hash&gt;/memory/`</span>.</span></span><span style="display:flex;"><span>Its contents persist across conversations.</span></span><span style="display:flex;"><span>As you work, consult your memory files to build on previous experience.</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#75715e">## How to save memories:</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> Organize memory semantically by topic, not chronologically</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> Use the Write and Edit tools to update your memory files</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> MEMORY.md is always loaded into your conversation context</span></span><span style="display:flex;"><span> — lines after 200 will be truncated, so keep it concise</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> Create separate topic files (e.g., debugging.md, patterns.md)</span></span><span style="display:flex;"><span> for detailed notes and link to them from MEMORY.md</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> Update or remove memories that turn out to be wrong or outdated</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> Do not write duplicate memories. First check if there is an</span></span><span style="display:flex;"><span> existing memory you can update before writing a new one.</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#75715e">## What to save:</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> Stable patterns and conventions confirmed across multiple interactions</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> Key architectural decisions, important file paths, and project structure</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> User preferences for workflow, tools, and communication style</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> Solutions to recurring problems and debugging insights</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#75715e">## What NOT to save:</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> Session-specific context (current task details, in-progress work)</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> Information that might be incomplete</span></span><span style="display:flex;"><span> — verify against project docs before writing</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> Anything that duplicates or contradicts existing CLAUDE.md instructions</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> Speculative or unverified conclusions from reading a single file</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#75715e">## Explicit user requests:</span></span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> When the user asks you to remember something across sessions</span></span><span style="display:flex;"><span> (e.g., “always use bun”, “never auto-commit”), save it</span></span><span style="display:flex;"><span> — no need to wait for multiple interactions</span></span><span style="display:flex;"><span><span style="color:#66d9ef">-</span> When the user asks to forget or stop remembering something,</span></span><span style="display:flex;"><span> find and remove the relevant entries from your memory files</span></span></code></pre></div><p>这里有几个值得注意的设计：</p><p>memory 不只是一个文件。MEMORY.md 是主文件，前 200 行自动加载到 prompt 里。但 Claude code 还可以创建<code>debugging.md</code>、<code>patterns.md</code> 这样的主题文件，从 MEMORY.md 链接过去，需要的时候再读取。这有点像一本带着索引页的笔记本，翻到某个主题再看详细内容。</p><p>“What NOT to save”这段我觉得挺克制的。大多数人做记忆功能，恨不得什么都往里塞。Anthropic 反过来，先画了条线说哪些东西别碰：临时状态不记、没验证的不记、CLAUDE.md 里已有的不重复记、只看了一个文件就猜的结论不记。</p><p>还有”Explicit user requests”那段也挺实用：你可以直接告诉 Claude 以后都用 bun 装依赖或者永远不要自动 commit，它会立刻写进 memory，不需要等多次交互才总结。反过来你说别再记这个了，它也会去找到对应条目删掉。</p><p>另外，内存文件存在本地，按项目哈希值隔离。不会上传到云端，不同项目之间也完全独立。</p><h2 id="memory-命令">/memory 命令</h2><p>内存功能的控制中心是<code>/memory</code> 命令。</p><p>打开它，你能看到 Claude Code 自己记录的所有内容，可以编辑某一条，可以删掉觉得没用的，也可以整个关掉这个功能。</p><p>这个设计我觉得也挺实用的。Claude Code 的判断不一定都准确，它可能觉得某个临时的 debug 方案很重要。但那只是你一次性的权宜之计，没必要永久保留。透明可控，比黑盒记忆要放心得多。</p><p>当然，如果你实在不想开启自动记忆，也可以一行命令搞定：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>export CLAUDE_CODE_DISABLE_AUTO_MEMORY<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span></span></span></code></pre></div><h2 id="跟-claudemd-什么关系">跟 CLAUDE.md 什么关系</h2><p>用 Claude Code 一段时间的人，大概都写过 CLAUDE.md。你把项目规范、禁止行为、常用命令写在里面，所有会话都生效。</p><p>Auto Memory 和 CLAUDE.md 是两件不同的事，完全互补，互不覆盖。</p><p>CLAUDE.md 是你主动写给 Claude Code 的规则，记录那些你希望它每次都记住的、不变的约定。Auto Memory 不一样，它是 Claude Code 自己在工作过程中积累的观察，比如项目模式、你的习惯、踩过的坑等等。</p><p>两个配合起来的效果最好。可以这样理解：CLAUDE.md 是你写的入职手册，Auto Memory 是它自己记的工作笔记。新员工到岗，先读手册，再翻笔记，然后才真正上手。</p><h2 id="几个需要提前知道的问题">几个需要提前知道的问题</h2><p>说实话，功能本身的设计我觉得没什么可挑的，零配置、透明可控、跟 CLAUDE.md 互补。不过用的时候有几个地方需要注意。</p><p>200 行的限制，大项目用久了会碰到天花板。目前的实现是简单的前缀加载，也就是取文件开头 200 行塞进 prompt。不像向量数据库那样能按相关性检索，它就是按顺序读。所以如果 memory 文件积累得多了，靠后的内容实际上不会被加载。</p><p>需要养成用<code>/memory</code> 定期整理的习惯，留重要的，删过时的。就像清理浏览器书签，不主动管理就会越来越乱。</p><p>另一个问题是过期的记忆。不是所有记下来的东西都应该永久保留。比如你两个月前用了某个临时方案处理一个 bug，现在早就改了。但 Claude 还惦记着旧方案，下次遇到类似问题，再优先往那个方向想就不对了。陈旧的记忆有时候比没有记忆更麻烦。</p><p>官方还没给出自动过期或 decay 机制，所以现在还得完全靠手动管理。</p><p>不过换个角度想，Anthropic 的选择挺有意思。不用向量数据库，不做复杂的检索增强，就是本地的 Markdown 文件。这跟 Claude Code 一贯的设计哲学一脉相承，能用简单方案解决的，就别上复杂架构。先跑起来，不够再迭代。</p><h2 id="说说我自己的感受">说说我自己的感受</h2><p>功能发布之前，我处理这个问题的方式是：在 CLAUDE.md 里手动把关键的项目背景写进去，然后还要在每次新 session 的第一条消息里补充这次的具体任务背景。</p><p>两件事加起来，我其实是在替 Claude Code 充当记忆介质。</p><p>比如，有次跑一个长任务，Claude Code 花了大半个小时梳理项目的测试文件。找出了几个有问题的查询接口，还整理出一套处理边界情况的思路。然后上下文窗口到了临界点，触发了自动压缩。下一个 session 接手时，那一套思路就不见了，从头开始分析，之前做的工作重复做了一大半。那半个小时基本白费了。</p><p>Auto Memory 解决的就是这类问题。Claude Code 在工作过程中发现的有价值的东西，不应该在 session 结束时消失。</p><p>多 Agent 协作的场景里，这个功能的价值可能会更明显一些。一个 Agent 发现了某种边界情况的处理方式，把它写进 memory。下一个 Agent 一开始就能读到，不需要上一个专门提醒。</p><h2 id="写在最后">写在最后</h2><p>看到 Claude Code 的 Auto Memory，我第一时间想到的是 OpenClaw 的内存设计。</p><p>OpenClaw 能两周冲到 10 万星，原因很多，但持久记忆绝对是核心卖点之一。它不只是一个聊聊天就忘的机器人，而是能记住你说过的每一件事，下次提起来直接就知道上下文。这个体验差异太大了，用过的人都回不去。OpenClaw 甚至在 Markdown 记忆之上还加了向量搜索，做成了混合检索，相当于给 Agent 内置了一套 RAG 系统。</p><p>Claude Code 的 Auto Memory 走的是更简单的路线：纯本地 Markdown 文件，前 200 行前缀加载，没有向量检索。从功能完备度来说，跟 OpenClaw 的记忆系统还有很大差距。但 Anthropic 的做法一贯如此。先用最简单的方案把核心体验跑通，不够再迭代。</p><p>我比较期待的是下一步。200 行的前缀加载很快会碰到天花板，到时候大概率会引入某种形式的语义检索。如果再加上自动过期和记忆质量评估，Claude Code 的记忆系统就真的能跟 OpenClaw 掰手腕了。</p><hr><p>相关链接：</p><ul><li>Auto Memory 官方文档：<a href="https://code.claude.com/docs/en/memory">https://code.claude.com/docs/en/memory</a></li><li>Thariq 的公告：<a href="https://x.com/trq212">https://x.com/trq212</a></li></ul><hr><p>欢迎长按下面的二维码关注<strong>Feisky</strong> 公众号，了解更多云原生和 AI 知识。</p><p><img src="/images/mp.png" alt="Feisky 公众号二维码" loading="lazy" decoding="async"/></p>
]]></content:encoded><dc:extent>6 min read</dc:extent></item></channel></rss>