news 2026/6/22 15:01:44

Claude Agents 记忆系统实战指南:Memory Store + Dreaming 完整教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Claude Agents 记忆系统实战指南:Memory Store + Dreaming 完整教程

Claude Agents 记忆系统实战指南:Memory Store + Dreaming 完整教程

一句话总结:Claude Agents 默认是"孤岛"——每个会话独立,信息无法传递。通过Memory Store(持久化存储)Dreaming(异步记忆优化)两个功能,可以让 Agent 跨会话记住信息,并自动整理、去重、丰富记忆内容,实现真正的"长期记忆"。


一、问题背景:Agent 的"失忆"困境

当前大多数 AI Agent 面临一个核心问题:每个会话(Session)都是孤立的

  • Agent 不会记住过去会话的信息
  • 信息无法传递到未来的会话
  • 每次对话都要重新交代背景

1.1 演示:没有记忆的 Agent

步骤 1:创建第一个会话,告诉 Agent 一些信息

# 创建无记忆的测试会话claude session create --agent-id<your-agent-id>--environment-id<your-env-id>--title"test with no memory"

Prompt 1:向第一个会话发送信息

昨天我参加了一个关于 CMA 的讲座,关键词包括:multi-agent orchestration、multiple illustration outcomes 和 memory。我还认识了一个叫 Alex 的人。

Agent 的回应通常是:“好的,谢谢你的信息。还有什么需要我帮忙的吗?”

步骤 2:创建第二个会话,询问刚才的信息

# 创建第二个无记忆会话claude session create --agent-id<your-agent-id>--environment-id<your-env-id>--title"test no memory - second session"

Prompt 2:向第二个会话询问之前的信息

告诉我昨天 CMA 讲座的内容,以及我认识了谁。

Agent 的回应:“我没有访问到这些信息,但我可以在以下方面帮助你……”

结论:信息没有跨会话传递,这就是 Agent 的"失忆"问题。


二、解决方案:Memory Store(记忆存储)

Memory Store 是一个持久化的类文件系统存储,可以附加到会话上,让 Agent 能够跨会话读取和写入信息。

2.1 核心特性

特性说明
持久化会话结束后数据不会丢失
类文件系统使用目录结构组织记忆,支持bashgrep等工具操作
多会话共享同一个 Memory Store 可以附加到多个会话
灵活边界可按用户、工作区、项目定义存储边界
读写权限支持read-write(默认)和read-only两种模式

2.2 创建 Memory Store

# 创建 Memory Storeclaude memory-store create--name"workshop-memory"--description"Memory for workshop sessions"

创建后可在 Console 的Manage Agents → Memory Stores中查看,初始状态为空。

2.3 将 Memory Store 附加到会话

# 创建带 Memory Store 的会话claude session create --agent-id<your-agent-id>--environment-id<your-env-id>--memory-store-id<your-memory-store-id>--memory-prompt"Focus on workshop-related information"--memory-access"read-write"--title"test with memory"

参数说明

参数必填说明
--memory-store-idMemory Store 的唯一标识
--memory-prompt引导 Agent 关注特定领域的信息
--memory-accessread-write(默认)或read-only

2.4 演示:有记忆的 Agent

步骤 1:创建带 Memory Store 的会话,发送信息

# 创建带 memory 的会话claude session create --agent-id<your-agent-id>--environment-id<your-env-id>--memory-store-id<your-memory-store-id>--title"test with memory"

Prompt 3:向带记忆的会话发送信息

昨天我参加了一个关于 CMA 的讲座,关键词包括:multi-agent orchestration、multiple illustration outcomes 和 memory。我还认识了一个叫 Alex 的人。

此时 Agent 会:

  1. 先检查 Memory Store 是否有相关信息
  2. 发现没有后,将信息写入 Memory Store(通常保存为sessions.md或类似文件)
  3. 确认已保存

步骤 2:创建新会话,使用同一个 Memory Store,询问之前的信息

# 创建第二个带相同 memory 的会话claude session create --agent-id<your-agent-id>--environment-id<your-env-id>--memory-store-id<your-memory-store-id>--title"test with memory - second session"

Prompt 4:询问之前保存的信息

告诉我昨天 CMA 讲座的内容,以及我认识了谁。

此时 Agent 会:

  1. 先读取 Memory Store
  2. 使用grep搜索关键词 “CMA”
  3. 找到之前保存的信息
  4. 基于记忆内容回答问题

结论:信息成功跨会话传递!

2.5 Memory Store 的文件系统操作

因为 Memory Store 是以类文件系统挂载到会话容器的,Agent 可以使用强大的文件操作工具:

# Agent 可以执行的内部操作示例:# 1. 列出记忆文件ls/memory/# 2. 搜索关键词grep-r"CMA"/memory/# 3. 读取特定文件cat/memory/sessions.md# 4. 创建新文件echo"New insight">/memory/insights.md# 5. 编辑现有文件sed-i's/old/new/g'/memory/sessions.md

2.6 管理 Memory Store

2.6.1 通过 CLI 管理
# 列出 Memory Store 中的所有文件claude memory-store list-files --memory-store-id<id># Memory Store 支持版本控制,每次修改都会创建新版本claude memory-store list-versions --memory-store-id<id>--file-path<path>
2.6.2 通过 Console UI 管理

在 Console 的Manage Agents → Memory Stores中:

  • 查看文件系统目录结构
  • 直接编辑记忆文件(修正错误或补充信息)
  • 手动添加新的记忆文件
2.6.3 手动添加记忆
# 通过 API 直接添加记忆文件claude memory-store add-file --memory-store-id<id>--file-path"notes/important.md"--content"This is a manually added memory."

三、进阶方案:Dreaming(记忆优化)

3.1 问题:Memory Store 会无限增长

当 Agent 长期读写 Memory Store 时,会出现以下问题:

  • 信息堆积:每次任务都往记忆里堆信息,没有整理
  • 重复冗余:相同信息多次写入
  • 信息过时:旧信息可能已失效,但仍占用空间
  • 检索效率下降:记忆文件越来越庞大,Agent 查找困难

3.2 Dreaming 是什么?

Dreaming 是一个异步后台任务,本质上是一个多 Agent 协作系统,专门负责:

功能说明
事实核查(Fact Checking)验证记忆中的信息是否准确
信息丰富(Enriching)补充缺失的细节、日期、上下文
去重整理(Deduplicating)合并重复信息,删除冗余
结构化组织(Organizing)创建索引文件,优化目录结构
过期清理移除不再相关的旧信息

3.3 Dreaming 的核心架构

Dreaming 采用多 Agent 编排(Multi-Agent Orchestration)架构:

┌─────────────────────────────────────────┐ │ Dreaming Orchestrator │ │ (协调器,负责任务调度) │ └─────────────────────────────────────────┘ │ ┌───────────────┼───────────────┐ ▼ ▼ ▼ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ Sub-Agent│ │ Sub-Agent│ │ Sub-Agent│ │ (Session 1) │ │ (Session 2) │ │ (Session 3) │ │ 分析输入 │ │ 事实核查 │ │ 信息丰富 │ └─────────┘ └─────────┘ └─────────┘ │ ▼ ┌─────────────────────────────────────────┐ │ Output Memory Store │ │ (优化后的新记忆存储) │ └─────────────────────────────────────────┘
  • 协调器(Orchestrator):负责任务分发和进度管理
  • 子 Agent(Sub-Agent):每个子 Agent 负责分析一个输入会话或执行特定优化任务
  • 设计原则穷尽式(Exhaustive)——给定 100 个会话,确保每个都被仔细审查

3.4 创建 Dreaming Job

# 创建 Dreaming Jobclaude dream create--model"claude-sonnet-4-7"--input-memory-store-id<input-memory-store-id>--output-memory-store-id<output-memory-store-id>--session-ids<session-id-1>,<session-id-2>,...,<session-id-n>--prompt"Focus on fact-checking dates and organizing by topic."

参数说明

参数必填说明
--modelclaude-sonnet-4-7claude-sonnet-4-6(成本更低)
--input-memory-store-id需要优化的源 Memory Store
--output-memory-store-id优化后的输出 Memory Store(非破坏性
--session-ids要分析的会话 ID 列表(支持 10~100+ 个)
--prompt自定义提示,指导 Dreaming 关注特定方面

3.5 Dreaming 的自定义提示词(Prompts)

Prompt 5:指导 Dreaming 关注特定细节
Please focus on fact-checking these specific details: [具体细节列表]. Make sure to remember these for future reference.
Prompt 6:指导 Dreaming 按特定结构组织
Please organize the memory files into this specific structure: [期望的目录结构]. I want the memory store to follow this format.

3.6 监控 Dreaming 进度

创建 Dreaming Job 后,可通过以下方式监控:

# 查询 Dreaming Job 状态claude dream get --dream-id<dream-id>

在 Console 中:

  • 查看Manage Agents → Dreams
  • 实时跟踪 Token 消耗
  • 查看 Dreaming Agent 的详细执行日志(因为 Dreaming 本身也是基于 Claude Agents 构建的,你可以看到每个子 Agent 的思考过程)

执行时间:根据会话数量和记忆大小,从几分钟到几小时不等。

3.7 Dreaming 的输出结果

Dreaming 完成后,输出 Memory Store 中会包含:

3.7.1 索引文件(Index File)
# Memory Index ## Session Summaries - [session-001](session-001.md) - CMA talk, multi-agent orchestration - [session-002](session-002.md) - Workshop day 2 planning - [session-003](session-003.md) - Resource links and logistics ## People - Alex - Met at CMA talk, contact: alex@example.com ## Topics - Multi-agent orchestration - Memory systems - Dreaming processes

索引文件的作用:让未来的 Agent 能更高效地检索信息,无需遍历所有文件。

3.7.2 优化后的记忆文件

Dreaming 会重新格式化原始记忆文件,添加:

  • Slug(短标识):快速定位
  • 描述(Description):内容摘要
  • 元数据(Metadata):时间戳、来源会话等
  • 丰富后的细节:补充原始记录中缺失的信息

3.8 Dreaming 的关键特性

特性说明
非破坏性不会修改输入 Memory Store,而是写入全新的输出 Memory Store
异步执行在后台运行,不阻塞正在工作的 Agent
可审计Console 中展示完整的 diff,可人工审查 Dreaming 的修改
可扩展支持 10~100+ 个会话,未来计划支持更多
高缓存命中率约 85% 的 Token 消耗来自缓存,成本可控

四、三层架构:Session + Memory Store + Dreaming

┌─────────────────────────────────────────────────────────────┐ │ DREAMING LAYER │ │ (记忆优化:整理、丰富、去重、核查) │ │ ┌─────────────┐ │ │ │ Orchestrator │ │ │ │ + Sub-Agents │ │ │ └─────────────┘ │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ MEMORY STORE LAYER │ │ (持久化存储:跨会话共享信息) │ │ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ Input Store │ ──▶ │ Output Store │ (After Dreaming) │ │ │ (原始记忆) │ │ (优化后记忆) │ │ │ └─────────────┘ └─────────────┘ │ │ │ │ 文件系统结构: │ │ /memory/ │ │ ├── index.md ← 索引文件(Dreaming 生成) │ │ ├── sessions/ │ │ │ ├── session-001.md │ │ │ └── session-002.md │ │ ├── people/ │ │ │ └── alex.md │ │ └── topics/ │ │ └── multi-agent-orchestration.md │ └─────────────────────────────────────────────────────────────┘ │ ┌───────────────┼───────────────┐ ▼ ▼ ▼ ┌─────────────────────────────────────────────────────────────┐ │ SESSION LAYER │ │ (隔离的会话实例,可附加 Memory) │ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │Session 1│ │Session 2│ │Session 3│ │ │ │ +Memory │◀──▶│ +Memory │◀──▶│ +Memory │ │ │ └─────────┘ └─────────┘ └─────────┘ │ │ │ │ 每个 Session 是独立的 Agent 运行实例 │ │ 通过 Memory Store 实现跨会话信息传递 │ └─────────────────────────────────────────────────────────────┘

五、实战流程:从创建到使用

5.1 完整流程图

Step 1: 创建 Memory Store └── claude memory-store create --name "my-memory" Step 2: 创建带 Memory 的 Session,积累信息 └── claude session create --memory-store-id <id> └── 与 Agent 对话,Agent 自动读写 Memory Step 3: 重复 Step 2,积累多个会话的记忆 └── Session A: 记录项目需求 └── Session B: 记录技术方案 └── Session C: 记录会议纪要和决策 Step 4: 创建 Dreaming Job,优化记忆 └── claude dream create --input-memory-store-id <input-id> --output-memory-store-id <output-id> --session-ids <id1>,<id2>,<id3> Step 5: 监控 Dreaming 进度 └── claude dream get --dream-id <id> └── Console 中查看 diff 和执行日志 Step 6: 使用优化后的 Memory Store └── claude session create --memory-store-id <output-id> └── 新会话能高效检索所有历史信息 Step 7: (可选)淘汰旧 Memory Store └── claude memory-store retire --memory-store-id <input-id> └── 保留输出 Memory Store 作为新的主存储

5.2 演示:使用 Dreaming 优化后的记忆

步骤 1:查询 Dreaming 输出

# 获取 Dreaming Job 详情claude dream get --dream-id<dream-id># 获取输出 Memory Store 的 ID# 输出中包含 output_memory_store_id

步骤 2:创建使用优化后记忆的新会话

claude session create --agent-id<your-agent-id>--environment-id<your-env-id>--memory-store-id<output-memory-store-id>--title"session with dreamed memory"

Prompt 7:询问跨会话的整合信息

我参加了哪些讲座?资源链接是什么?我标记了哪些重点?

此时 Agent 会:

  1. 读取优化后的 Memory Store
  2. 查看索引文件,快速定位相关记忆
  3. 读取具体的会话文件
  4. 给出整合后的完整回答(包含时间、主题、资源链接等丰富信息)

对比效果

  • 优化前:Agent 只能找到零散的信息片段
  • 优化后:Agent 通过索引快速定位,信息完整、结构化、包含丰富细节

六、关键概念与最佳实践

6.1 Memory Store 的设计原则

原则说明
边界清晰按用户、项目或工作区定义 Memory Store 边界,避免信息混杂
权限控制敏感场景使用read-only模式,防止 Agent 误写
Prompt 引导使用--memory-prompt引导 Agent 关注特定领域
人工干预定期通过 Console 审查和编辑记忆文件,修正错误

6.2 Dreaming 的使用建议

建议说明
定期执行建议按天或按周执行 Dreaming,避免记忆堆积
会话数量每次 10~100 个会话,根据记忆复杂度调整
自定义提示针对业务场景定制 Prompt,指导 Dreaming 关注重点
人工审查利用 Console 的 diff 功能,审查 Dreaming 的修改
渐进替换确认输出 Memory Store 质量后,再淘汰旧存储

6.3 成本优化

Dreaming 的 Token 消耗较高,但已做以下优化:

  • 85% 缓存命中率:大部分 Token 消耗来自缓存,实际成本可控
  • 异步执行:不阻塞业务,可在低峰期运行
  • Batch API 计划:未来可能提供类似 Batch API 的低成本调度方案
  • 模型选择:使用claude-sonnet-4-6代替4-7可降低成本

七、完整提示词速查表

编号场景提示词 / 命令
1创建 Memory Storeclaude memory-store create --name "workshop-memory" --description "Memory for workshop sessions"
2创建带 Memory 的会话claude session create --agent-id <id> --environment-id <id> --memory-store-id <id> --title "test with memory"
3向会话发送信息(自动保存到 Memory)昨天我参加了一个关于 CMA 的讲座,关键词包括:multi-agent orchestration、multiple illustration outcomes 和 memory。
4询问跨会话的信息告诉我昨天 CMA 讲座的内容,以及我认识了谁。
5创建 Dreaming Jobclaude dream create --model "claude-sonnet-4-7" --input-memory-store-id <id> --output-memory-store-id <id> --session-ids <id1>,<id2>
6指导 Dreaming 关注细节Please focus on fact-checking these specific details: [具体细节列表]. Make sure to remember these for future reference.
7指导 Dreaming 组织结构Please organize the memory files into this specific structure: [期望的目录结构]. I want the memory store to follow this format.
8查询 Dreaming 状态claude dream get --dream-id <dream-id>
9列出 Memory Store 文件claude memory-store list-files --memory-store-id <id>
10使用优化后的 Memory 创建会话claude session create --memory-store-id <output-memory-store-id>
11询问整合后的信息我参加了哪些讲座?资源链接是什么?我标记了哪些重点?
12淘汰旧 Memory Storeclaude memory-store retire --memory-store-id <input-id>

八、常见问题 FAQ

Q1: Memory Store 的数据安全吗?

Memory Store 的数据存储在 Claude 平台,与 Session 容器隔离。你可以完全控制:

  • 哪些会话可以访问
  • 读写权限(read-writevsread-only
  • 手动编辑和删除记忆文件

Q2: 一个 Memory Store 可以附加到多少个会话?

没有硬性限制。同一个 Memory Store 可以附加到任意数量的会话,实现团队级别的知识共享。

Q3: Dreaming 会修改原始 Memory Store 吗?

不会。Dreaming 是非破坏性的,它会创建全新的输出 Memory Store,原始数据保持不变。

Q4: Dreaming 支持多少个会话?

目前支持 10~100 个会话,未来计划支持更多。建议根据记忆复杂度分批处理。

Q5: 如何降低 Dreaming 的成本?

  • 使用claude-sonnet-4-6代替4-7
  • 利用高缓存命中率(85%),重复信息处理成本低
  • 关注未来推出的 Batch API 和调度优化

Q6: 可以手动编辑 Dreaming 的输出吗?

可以。输出 Memory Store 和普通 Memory Store 一样,可以通过 Console 或 API 直接编辑。

Q7: Memory Store 和 RAG 有什么区别?

维度Memory StoreRAG
存储方式类文件系统,结构化向量数据库,非结构化
Agent 操作Agent 主动读写被动检索
优化方式Dreaming(多 Agent 整理)依赖外部索引更新
可控性高(可手动编辑)低(黑盒检索)

九、总结

Claude Agents 的记忆系统通过Memory Store + Dreaming解决了 Agent "失忆"的核心问题:

层级功能解决的问题
Session单次对话实例Agent 运行环境
Memory Store跨会话持久化存储信息孤岛问题
Dreaming异步记忆优化记忆膨胀、信息质量下降

核心收益

  • ✅ Agent 能记住跨会话的信息
  • ✅ 记忆自动整理、去重、丰富
  • ✅ 检索效率随时间提升而非下降
  • ✅ 支持人工审查和干预

核心理念:就像人类需要睡眠来整理记忆一样,Agent 也需要 “Dreaming” 来优化记忆。这不是简单的存储,而是一个持续进化的记忆生态系统。


参考资源

  • Claude Agents 官方文档
  • Memory Store API 参考
  • Dreaming 功能指南
  • Workshop 仓库(包含本文所有示例代码)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 15:01:07

5分钟实现浏览器二维码扫描:告别App依赖的Web解决方案

5分钟实现浏览器二维码扫描&#xff1a;告别App依赖的Web解决方案 【免费下载链接】html5-qrcode A cross platform HTML5 QR code reader. See end to end implementation at: https://scanapp.org 项目地址: https://gitcode.com/gh_mirrors/ht/html5-qrcode 还在为移…

作者头像 李华
网站建设 2026/6/22 14:59:59

从零开始构建稳定AI对话平台:SillyTavern终极故障排查与优化指南

从零开始构建稳定AI对话平台&#xff1a;SillyTavern终极故障排查与优化指南 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 你是否曾经为AI对话平台的频繁崩溃而烦恼&#xff1f;是否在深…

作者头像 李华
网站建设 2026/6/22 14:53:20

【信息科学与工程学】【安全领域】第八十四篇 隐私计算方案中的算法01

隐私计算核心算法全景梳理 前置说明 隐私计算不是单一算法,而是一组密码学原语 + 系统层机制 + 统计干扰方法的组合体。下面按「每类一个独立编号条目」拆开,每个条目同时标注它触及的电路/硬件/加密/信息论维度。 编号 类型 领域 子领域 问题【含硬件/软件/电路电子/集…

作者头像 李华
网站建设 2026/6/22 14:52:26

零配置视频流转发神器:go2rtc让你5分钟搭建专业监控系统

零配置视频流转发神器&#xff1a;go2rtc让你5分钟搭建专业监控系统 【免费下载链接】go2rtc Ultimate camera streaming application 项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc 你是否曾为监控摄像头无法在手机浏览器中流畅播放而烦恼&#xff1f;或是…

作者头像 李华
网站建设 2026/6/22 14:52:03

BilibiliDown:B站视频下载的终极解决方案,3分钟轻松搞定离线收藏

BilibiliDown&#xff1a;B站视频下载的终极解决方案&#xff0c;3分钟轻松搞定离线收藏 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://git…

作者头像 李华
网站建设 2026/6/22 14:35:07

Seedance 2.0技术解析与AI编舞工具真实能力边界

1. 项目概述&#xff1a;一次被严重误读的“接入”事件最近在多个内容平台刷到标题为“重磅消息&#xff01;Seedance 2.0 正式接入豆包”的推送&#xff0c;点开后却发现内容空洞、逻辑断裂&#xff0c;有的配图是豆包App界面截图&#xff0c;有的直接贴出Seedance官网旧版介绍…

作者头像 李华