把 Claude「做梦」讲准确:Anthropic 到底发了什么,那个 6x 又错在哪
关于 Anthropic“做梦”的报道,有一半连基本事实都写错了:它不是自动后台 daemon,不在 Claude Code 里,标题里的 6x 也不出现在任何 Anthropic 文档中。下面只看一手材料:哪些是真的,哪些应该打折,真正值得紧张的又是哪一部分。
5 月 6 日 Anthropic 在 Code with Claude 上演示“dreaming”之后,媒体很容易写出一个好故事:AI agent 会睡觉、会做梦,醒来更聪明;还有报道把标题押在某客户“task completion 提升 6x”上。这个故事顺,也好传。问题是,有三个关键点和 Anthropic 真正发布的东西对不上。本文只做一件事:把说法拉回一手来源。下面是准确版。
它实际是什么:看文档,不看标题党
官方功能名叫 Dreams;“dreaming”是这个流程的叫法。按 Anthropic 文档,它做的是一件很具体的事:「一个 dream 会读取已有 memory store 和过往 session transcript,然后生成一个新的、重新整理过的 memory store:合并重复项,用最新值替换过时或互相矛盾的条目,并浮现新的洞察。」
机制上,它是一个异步 API job,入口是 POST /v1/dreams。你传入一个已有 memory store,再传入 1 到 100 个 session,它返回一个单独的新 store。最关键的一句话,几乎没有报道提到:「输入 memory store 永远不会被修改,因此你可以先审查输出;如果不喜欢结果,直接丢弃。」它可以被引导:可选的 instructions 字段能写“只关注 coding style 偏好,忽略一次性的 debugging 备注”;它也可以被观察:你能 stream 这个 dream 的 session,看它读了什么、写了什么。模型侧跑在 claude-opus-4-8、4-7 或 sonnet-4-6 上,通常要花几分钟。
这是个干净、有用的原语。但它不是那些标题里写的东西。
报道错了三件事
1. 它不是自动后台进程。 媒体反复讲的版本是:“一个在 agent session 之间定时跑、把新 memory 写好留给下次 session 用的流程”——这说的是挂在 idle timer 上的 daemon。真实 API 不是这样。它是你主动调用:调一次,跑一次,然后你审查输出。文档里没有“趁你睡觉自动跑”的 scheduler。你当然可以把整理任务安排到半夜跑,但那是你的用法,不是它自带的自动化。
2. 它不在 Claude Code 里。 Dreams 只存在于 Claude Managed Agents,也就是 Anthropic 的云端 agent 平台;它藏在 beta headers 后面,是需要申请访问的研究预览。Anthropic 文档里没有给 Claude Code CLI 准备的 Dreams 页面。如果你看到 Claude Code 里的 /dream 命令,或者所谓 “auto-dream” skill,那是社区对未发布能力的逆向;它们的作者自己也写着“currently unreleased”或“not officially announced”。第三方 skill 不等于 Anthropic 已发布功能。
3. 神经科学叙事不是 Anthropic 原话。 “Anthropic 把 dreaming 类比为海马体的记忆巩固”“像睡眠一样整理经验”这类说法,出现在不少博客报道里,但那是作者自己的类比。Anthropic 自己的文档用的是更平直、更准确的动词:reflect、curate、consolidate。Anthropic 这边明确保留下来的隐喻,只有产品名字本身。
“6x”这个数字:按轶事处理,不按结果处理
最黏人的说法是:法律 AI 公司 Harvey 启用 dreaming 后,内部测试里的 task completion rates 大约提升 6x。我们追这个来源,追不到它该有的样子:
- 它不在 Anthropic 文档里。
- 它不在 Simon Willison 当天的 keynote 直播记录 里;那是对台上实际内容最详细的实时记录之一。这个缺席很说明问题:如果 6x 这种标题级数字是在台上宣布的,它应该出现在 keynote 笔记里。
- 它最终指向的是 VentureBeat 的报道,没有具名 Anthropic 或 Harvey 发言人,也没有配套发布的 benchmark。
这正是我们在 AI agent benchmark 指南里反复提醒的套路:一个漂亮的倍数,没有方法论,转几手之后就被听成官方结论。dreaming 当然可能有用。给 agent memory 去重、对齐、消矛盾,方向上显然有价值。但“task completion 提升 6x”是一条没有出处的内部轶事,不是受控实验结果。它就该按轶事归档。
真正重要的部分:memory 变成了攻击面
去掉 hype,真正的故事其实是安全。一个会重新读取 agent 的全部 memory、再把它重写成新版本的整理过程,会放大 Anthropic 自己已经写进文档的风险。来自 agent memory 文档:「一次成功的 prompt injection 可能把恶意内容写入 memory store。后续 session 又会把这些内容当作可信 memory 来读取。」
Dreaming 把这个风险抬高了一层,因为它会重新摄取全部内容,并综合成新的 store。于是,一条被污染的 note 可能被洗成一条更自信、更像结论的“insight”,下一次 session 再把它当事实使用。这就是 agent memory 版本的规则文件攻击:凡是会自动加载、自动信任的东西,都会变成 injection target。(安全研究者会把这类 memory-record injection 指向 MINJA 这样的命名版本;这是他们的分析,不是 Anthropic 原话。)
缓解措施是真实的,也正因为它们是设计选择,才值得说清楚:输入 store 不会被原地修改,输出可以审查也可以丢弃,每次写入都是带版本的 audit entry,dream session 还可以 stream。换句话说,安全使用 dreaming 的方式,是把输出当成待审提案,而不是直接信任的变更。这恰好和“agent 在你睡觉时自我进化”的叙事相反。
今天想在 Claude Code 里得到类似效果?手动做
既然 Dreams 不在 CLI 里,诚实版的“给 Claude Code 做梦”只能用已经存在的原语拼出来:
- Claude Code 已经有 auto memory。 它会在
~/.claude/projects/<project>/memory/下维护一个MEMORY.md索引,你可以用/memory查看。真正的整理流程,操作对象就是这类 store。 - 官方没有 auto-curation,所以你自己定时做。 用一个定时例程(或者 Stop-hook)周期性要求 Claude:“读取我的 memory files,合并重复项,删除过期内容,标出矛盾,并输出一份 revised copy 给我审批。”这能复现 dreaming 里有用的 80%,而且审查门天然在流程里。
- 保留人的 gate。 一手文档设计的核心,就是先审查再信任。DIY 版本也应该一样:整理到副本里,读 diff,再提升为正式 memory。这也是让一组长期运行的 agent memory 不漂移的基本做法。
一句话版:Anthropic 发布的是一个谨慎、可审查、用于云端 agent 的 memory-consolidation API,而且还处在研究预览。互联网讲出来的是会做梦、一夜变强 6 倍的机器人。请基于前者开发,不要基于后者做判断。
延伸阅读
- AI agent benchmark:把信号从营销里分出来——为什么 “6x” 应该先接受怀疑。
- 长期运行一组 agent 怎么管——没有 dreaming,也能让 agent memory 保持干净。
- Claude Code 的
/loop和定时工作——手动做 consolidation pass 的原语。 - CLAUDE.md vs AGENTS.md——同一种“自动加载且自动信任”风险,在 instruction file 里的表现。