Agent 记忆不能只靠存:Claude Dreaming 如何用 4 层记忆在会话之间纠错、整理和构建知识库

作者注:解读 Anthropic 工程博客披露的 Claude Dreaming 机制。本文涵盖 4 层记忆结构、CL-Bench 与 Wiki 实验数据、纠错案例和工程风险,并说明开发者如何借鉴“会话间整理记忆”的思路,搭建自己的 Agent 记忆系统。

2026 年 11 月 6 日,Anthropic 在工程博客发布了 The components of agent memory。文章首次系统说明了 Claude Dreaming 如何在会话之间纠错、整理记忆并构建知识库。官方 X 账号同步发布了这篇文章,Claude Managed Agents 文档中也已经出现 Dreams 的研究预览接口。

这不是又一个“给 Agent 加个向量库”的概念。Anthropic 用多组实验说明:长期运行的 Agent 光保存历史还不够,还要持续验证、纠错、整合和组织记忆,旧信息才能真正帮到下一次任务。

核心价值:读完本文,你会了解 Claude Dreaming 的 4 层记忆结构和关键实验数据。你也会知道它在什么情况下有效、什么情况下有害,以及在自己的 Agent 里该如何借鉴。

claude-dreaming-agent-memory-correction-knowledge-base-image-0


Claude Dreaming 核心信息速览

信息项 详情
发布时间 2026-11-06,Anthropic Engineering 博客
核心概念 Dreaming:在会话之间利用历史记录重新组织和维护记忆的后台过程
记忆分层 Transcripts、Memory notes、Memory representations、Injected context 共 4 层
产品形态 Claude Managed Agents 中的 Dreams,目前为 Research Preview,需申请访问
配套资料 官方 Cookbook《Dreaming with a dynamic workflow》,发布于 2026-11-02
影响范围 长期运行的 Agent、跨会话任务、企业内部知识库构建

理解 Dreaming 之前,先明确几个术语。Transcript 是完整会话记录,包括用户输入、Agent 输出、工具调用和结果。Memory Note 是从历史经历中提炼出来的持久事实、规则和经验。Memory Store 是跨会话保存记忆文件的持久化存储空间。Dreaming 的思路接近 Sleep-time Compute,也就是在主要交互之外,利用空闲算力处理已有上下文。


为什么 Agent 记忆不能只靠存历史对话

很多团队做 Agent 记忆的第一反应,是把所有对话存下来,需要时再检索。问题在于,历史日志、会话摘要和可检索的知识是三种不同的东西。日志只是原始事件的堆积,摘要可能丢掉关键细节,只有经过验证和组织的知识,才能稳定地帮到下一次任务。

直接保存全部对话,会带来三类隐患:信息重复,旧状态过时,错误不断累积。一条写错的记录会被后续会话反复读取,错误也就被当成事实继续执行。Anthropic 的结论很直接:记忆不是越多越好,而是需要选择、验证和组织。

Pokémon Red 实验把这个差别展示得很清楚。大约 10,000 步时,Sonnet 3.7 创建了 413 个文件、225 个文件夹,只拿到 1 个徽章。Fable 5 只创建了 9 个普通记忆文件、2 个文件夹和一个 global.md,却拿到了 4 个徽章。

差距来自“记什么”。Sonnet 3.7 大量保存不断变化的游戏状态,这些记录很快过时。Fable 5 更注重策略、已验证的规则和行动计划。由此得出一个设计原则:长期记忆应优先保留难以从当前环境重新获得的知识,每次都能直接读取的实时状态不需要记。


Claude 记忆体系的 4 个层次

Anthropic 把 Agent 记忆拆成 4 层。每一层的职责、写入频率和读取成本都不一样。

层次 内容 作用 读取方式
Transcripts 完整会话记录 可搜索的事件日志,是追溯事实的原始证据 按需检索
Memory notes 任务中记下的重要事实、经验、规则 沉淀可复用的经验 按需读取
Memory representations Wiki、索引、链接等结构化表示 组织知识之间的关系,支持跨文档检索 导航与检索
Injected context 少量高价值记忆 新会话启动时预先加载 自动注入

这 4 层是从“原始”逐步走向“精炼”的过程。Transcript 信息最全,但体量大、噪声多。Injected context 最精炼,可每一条都会占用新会话的上下文窗口,所以只能留给显著性(Salience)最高的信息。

Dreaming 的定位是跨层维护。它会回到 Transcript 中纠正旧记录,合并 Memory notes 里的重复信息,构建 Wiki 和索引,并决定哪些内容值得在新会话开始时预先注入(Context Injection)。

claude-dreaming-agent-memory-correction-knowledge-base-image-1


Claude Dreaming 如何纠错、整理和构建知识库

Dreaming 纠错:Mt. Moon 导航案例

Anthropic 记录过一个导航错误。Agent 把 Mt. Moon 附近 Pokémon Center 的方位记错了,后续会话一直沿着错误路线重复尝试。

Dreaming 重新检查历史 Transcript 后,找到了最初那条错误记录,并修正了记忆文件。用修正后记忆的 Agent,在第 1,935 次操作时抵达 Cerulean City。没有纠错的版本多次重复失败,最终没能完成目标。

这个案例说明,Dreaming 做的不只是摘要。它能回到原始经历,核对记忆是否仍然成立。保存的 Transcript 也因此有了新的用途:它是可以反复复核的证据库。

Claude 记忆效果:CL-Bench 实验数据

Anthropic 用 CL-Bench 1.0 中的数据库任务测试记忆效果。下表是官方报告的 mean reward。

模型 无记忆 使用记忆 提升幅度
Opus 5.5 0.655 0.838 +0.183
Sonnet 5.5 0.644 0.833 +0.189
Opus 5 0.564 0.828 +0.264
Opus 4.7 0.383 0.700 +0.317
Sonnet 5 0.306 0.610 +0.304
Sonnet 4.6 0.330 0.364 +0.034

需要注意,这组数据只针对该任务,不是通用的 Agent 记忆能力评分。更值得关注的是一个现象:模型越强,越倾向于记录经过验证的规则、错误原因和未来可能遇到的陷阱,而不是照搬历史对话。Sonnet 4.6 的提升很有限,说明记忆系统的效果和模型本身的“记录质量”密切相关。

Dreaming 构建 Wiki 知识库的效果

最大规模的实验使用了约 350,000 份内部文件,总量约 420M Token。Anthropic 通过 128 次 Dreaming 会话逐步构建出一个知识 Wiki,再用问答任务评估效果。

检索方式 评分 备注
Wiki 单独使用(构建前 → 构建后) 13% → 48% Wiki 逐步成型后效果明显
Search 单独使用 53% 基线
Search + Wiki(构建前 → 构建后) 54% → 61% 每题平均节省约 20,000 Token
并购类跨文件综合任务 Wiki 87% vs 纯 Search 73% 跨文档综合优势最明显

claude-dreaming-agent-memory-correction-knowledge-base-image-2

📊 图表说明:以上数据均来自 Anthropic 工程博客的公开实验。如果想在自己的语料上做类似的小规模验证,可以通过 API易 apiyi.com 调用 Claude 模型,比较“纯检索”和“检索 + 整理后的 Wiki”两种方案的效果与 Token 消耗。

结构化记忆的价值主要体现在两点。一是建立链接和索引,让跨多份文件的信息能够被综合起来。二是减少每次检索时需要重新读取的原文量,从而降低 Token 成本。


影响分析:Claude Dreaming 记忆整理为什么有时有效、有时有害

Anthropic 没有把 Dreaming 说成万能方案,文中给出了好几个反例。这部分对工程实践的参考价值,可能比正面数据还要大。

记忆整理的 5 类工程风险

  • 过度记录:像 Sonnet 3.7 那样大量保存易变状态,记忆膨胀很快,过时也很快。
  • 信息过时:环境变了,记忆还停留在旧版本,没有来源核对就会持续误导 Agent。
  • 共享写入覆盖:在合同整理实验中,多个 Agent 同时写同一张汇总表,57 项关键事实只保留了 41 项,约 72%。改为每份合同一个独立页面、由单一 Agent 写入并保留原始条款后,57 项事实全部保留。
  • Wiki 体积膨胀:某次测试中原始文件只有 115 KB,生成的 Wiki 却涨到 203 KB,整理反而让信息变多了。
  • 简单任务无收益:单个文件就能直接检索到答案的问题,Wiki 没有带来明显提升,只增加了维护成本。

对开发者的影响

  • 记忆需要分层:原始日志、经验规则、结构化知识、预注入上下文分开存放,各自有不同的写入和读取策略。
  • 来源必须可追溯:每条记忆都应能回溯到对应的 Transcript,这是纠错的前提。
  • 写入要串行化或分区:避免多个 Agent 并发写同一份文件,优先采用“一实体一页面”的结构。
  • 定期清理:Wiki 和 Memory notes 也需要去重、合并和淘汰,不然体积只会越来越大。

对行业的影响

  • Agent 记忆的研究重心正在从“检索得准”转向“记忆本身是否正确、是否在维护中”。
  • Sleep-time Compute 有望成为常规架构,把整理成本放到空闲时段,减少主交互时的上下文负担。
  • 结构化记忆更适合跨文件、多轮次、长期积累的任务。对于一次性简单问答,纯检索依然是更经济的选择。

开发者如何把 Claude Dreaming 思路用在自己的 Agent

官方 Dreams 研究预览的使用条件

根据 Anthropic 当前文档,Dreams 属于 Claude Managed Agents 的功能,状态为 Research Preview,需要申请访问。调用时需要携带 managed-agents-2026-04-01 和 dreaming-2026-04-21 两个 Beta Header。

它的输入是一个已有的 Memory Store 加上 1 到 100 个历史 Session,输出是一个新的 Memory Store,原始 Store 不会被修改。任务异步运行,通常需要几分钟到数小时,按所选模型的标准 Token 价格计费。支持的模型以 Opus 5.5 和 Sonnet 5.5 为主。另外,它目前不具备 Zero Data Retention 或 HIPAA 资格,处理敏感数据前需要评估。

Cookbook 中的动态工作流设计

官方 Cookbook 给出了一套可以自行搭建的多 Agent 工作流。默认由 Lead Agent 编排流程,每个 Analyzer Agent 处理一份 Transcript,Organizer Agent 负责去重、修复链接和维护索引。整理好的 Memory Store 挂载到下一次 Session,通常是只读方式,也可以用 Cron 定时执行,比如每晚整理过去一天的 Session。

Cookbook 也给出了成本示例。11 份示例 Transcript 共 283 KB,运行约 2.5 分钟,费用约 $0.36。50 份长 Transcript 约 12 MB,在成本优化设置下大约 $8,耗时约 10 分钟。这些只是特定实验的结果,不是固定报价。

claude-dreaming-agent-memory-correction-knowledge-base-image-3

用 Claude 模型自建会话间记忆整理流程

需要先说明:API易 提供的是 Claude 系列模型的调用接口,不等于提供 Managed Agents、Memory Stores 或 Dreams API。不过 Dreaming 的核心思路,也就是“后台读 Transcript、提炼经过验证的规则、交给单一写入者整理”,完全可以用普通模型调用自己实现。下面是一个最小示例,让 Claude 分析一份会话记录并输出候选记忆。

import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"  # API易 OpenAI 兼容接口
)

transcript = open("session_001.txt", encoding="utf-8").read()
resp = client.chat.completions.create(
    model="YOUR_CLAUDE_MODEL",  # 替换为模型列表中可用的 Claude 模型
    messages=[
        {"role": "system", "content": "只提炼经过验证的规则、错误原因和未来陷阱,忽略易变状态,每条注明来源行号。"},
        {"role": "user", "content": transcript},
    ],
)
print(resp.choices[0].message.content)
查看完整实现代码(Analyzer + 单写入 Organizer)
import json
import pathlib
import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"
)
MODEL = "YOUR_CLAUDE_MODEL"
MEMORY_DIR = pathlib.Path("memory_store")
MEMORY_DIR.mkdir(exist_ok=True)

ANALYZER_PROMPT = """你是记忆分析器。阅读会话记录,输出 JSON 数组,每项包含:
topic(实体或主题名), rule(经过验证的规则/错误原因/陷阱), evidence(原文出处)。
不要记录每次都能直接从环境读取的实时状态。"""

ORGANIZER_PROMPT = """你是记忆整理器。给定某个主题的旧记忆页面和新候选条目:
1. 与旧记录冲突时,以 evidence 更可靠者为准,并注明修正原因;
2. 合并重复条目;
3. 保留原始证据引用;
输出更新后的 Markdown 页面全文。"""

def analyze(transcript: str) -> list:
    resp = client.chat.completions.create(
        model=MODEL,
        messages=[
            {"role": "system", "content": ANALYZER_PROMPT},
            {"role": "user", "content": transcript},
        ],
    )
    try:
        return json.loads(resp.choices[0].message.content)
    except json.JSONDecodeError:
        return []

def organize(topic: str, items: list) -> None:
    # 一主题一页面,由单一流程串行写入,避免并发覆盖
    page = MEMORY_DIR / f"{topic}.md"
    old = page.read_text(encoding="utf-8") if page.exists() else ""
    resp = client.chat.completions.create(
        model=MODEL,
        messages=[
            {"role": "system", "content": ORGANIZER_PROMPT},
            {"role": "user", "content": f"旧页面:\n{old}\n\n新条目:\n{json.dumps(items, ensure_ascii=False)}"},
        ],
    )
    page.write_text(resp.choices[0].message.content, encoding="utf-8")

def nightly_dream(transcript_files: list) -> None:
    grouped = {}
    for f in transcript_files:
        for item in analyze(pathlib.Path(f).read_text(encoding="utf-8")):
            grouped.setdefault(item.get("topic", "misc"), []).append(item)
    for topic, items in grouped.items():
        organize(topic, items)

# 可由 Cron 每晚触发; 下次会话只读加载 memory_store 中的索引页
nightly_dream(["session_001.txt", "session_002.txt"])

🚀 快速上手建议:搭建原型时,可以通过 API易 apiyi.com 用同一个 API Key 测试不同 Claude 模型作为 Analyzer 和 Organizer 的效果。比较一下哪种组合提炼出的规则更准确、Token 消耗更低,再决定生产环境的配置。

两种路线的差别可以用下表概括:

对比项 Anthropic Managed Agents Dreams 基于模型 API 自建记忆整理
获取方式 研究预览,需申请访问和 Beta Header 直接调用 Claude 模型接口
记忆存储 官方 Memory Store,输出新 Store 自行实现文件、数据库或 Wiki
调度与并发 官方异步任务 自行实现 Cron、队列和单写入控制
纠错与权限 官方流程内置 需要自行设计来源核对和权限
可用平台 Anthropic 官方 API易 apiyi.com(模型调用)、官方 API

Claude Dreaming 常见问题 FAQ

Q1:什么是 Claude Dreaming?

Dreaming 是 Anthropic 提出的会话间后台记忆维护过程。它利用历史 Transcript 纠正旧记录、合并重复信息、构建 Wiki 和索引,并筛选出需要在新会话中预先注入的高价值上下文。

Q2:Dreaming 和普通的会话摘要、向量检索有什么区别?

摘要只压缩信息,检索只负责找信息。Dreaming 会回到原始 Transcript 验证记忆是否仍然成立,比如 Mt. Moon 案例中修正了错误方位。它还负责建立跨文档链接,在跨文件综合任务中 Wiki 得分 87%,纯检索为 73%。

Q3:Claude Dreaming 现在可以使用了吗?

相关工程博客发布于 2026 年 11 月 6 日。Dreams 目前以 Research Preview 形式出现在 Claude Managed Agents 中,需要申请访问,并且要带上两个 Beta Header 才能调用。

Q4:没有 Managed Agents 访问权限,能借鉴 Dreaming 思路吗?

可以。按照“Transcript 收集、后台分析、单写入整理、只读挂载、定期维护”的流程,用普通模型调用就能实现一个简化版本。通过 API易 apiyi.com 可以用 OpenAI 兼容接口调用 Claude 模型来完成分析和整理。存储、调度和权限需要自己实现。

Q5:API易 是否直接提供 Claude Dreaming 功能?

不提供。API易 apiyi.com 提供的是 Claude 等模型的调用接口,不包含 Anthropic 的 Managed Agents、Memory Stores 或 Dreams API。适合用它调用模型、自建记忆整理流程,新用户可以先用免费测试额度验证方案。

Q6:Dreaming 有哪些已知限制?

单文件就能回答的简单问题,Wiki 没有明显收益。整理可能让体积膨胀,例如 115 KB 的原文生成了 203 KB 的 Wiki。多 Agent 共享写入会丢失事实。官方 Dreams 还不具备 ZDR 和 HIPAA 资格,任务耗时从几分钟到数小时不等。


Claude Dreaming 核心要点 Key Takeaways

  • 记忆不只是存储:保存全部对话会累积重复、过时和错误,需要验证和组织。
  • 4 层记忆结构:Transcripts、Memory notes、Memory representations、Injected context 各司其职。
  • 纠错依赖原始记录:Dreaming 回到 Transcript 核对,修正了导致反复失败的错误方位。
  • Wiki 擅长跨文档任务:并购任务中 Wiki 得分 87%,纯检索为 73%,每题平均节省约 2 万 Token。
  • 整理也有副作用:并发写入会丢失事实,Wiki 会膨胀,简单任务用不上。
  • 自建可行:通过 API易 apiyi.com 调用 Claude 模型,可以实现简化版的会话间记忆整理。

总结

Claude Dreaming 带来的启发主要有三点:

  1. 长期记忆的核心是维护:只有经过验证、去重、组织的记忆,才能稳定帮助下一次任务。
  2. 记什么比记多少更重要:优先记录难以从环境中重新获得的规则、错误原因和陷阱,不要记录易变状态。
  3. 结构化记忆要看场景:跨文件、多轮次、长期积累的任务值得引入 Wiki,简单检索任务不必为此增加维护成本。

如果你的 Agent 已经在跨多个会话运行,可以先从“保留 Transcript、每晚串行整理一次、只读挂载索引页”这个最小闭环做起。推荐通过 API易 apiyi.com 调用 Claude 模型快速验证这套流程,平台提供 OpenAI 兼容接口和新用户免费测试额度。


📚 参考资料

  1. The components of agent memory:Anthropic 工程博客原文,介绍 4 层记忆结构与 Dreaming 实验
  2. 链接: anthropic.com/research/components-of-agent-memory
  3. 说明: CL-Bench、Pokémon、Wiki、合同整理等实验数据的原始出处

  4. Dreaming with a dynamic workflow:Claude 官方 Cookbook

  5. 链接: platform.claude.com/cookbook/managed-agents-cma-dreaming-with-a-dynamic-workflow
  6. 说明: Lead、Analyzer、Organizer 多 Agent 工作流示例和成本参考

  7. Anthropic 官方 X 发布动态:Dreaming 工程博客的发布说明

  8. 链接: x.com/AnthropicAI/status/2118814753154064501
  9. 说明: 确认发布时间和官方定位

作者:API易 技术团队
技术交流:欢迎在 API易 官网首页联系我们,更多资料可访问 docs.apiyi.com 文档中心

发表评论