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

📅 2026/6/22 15:01:47
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-idyour-agent-id--environment-idyour-env-id--titletest with no memoryPrompt 1向第一个会话发送信息昨天我参加了一个关于 CMA 的讲座关键词包括multi-agent orchestration、multiple illustration outcomes 和 memory。我还认识了一个叫 Alex 的人。Agent 的回应通常是“好的谢谢你的信息。还有什么需要我帮忙的吗”步骤 2创建第二个会话询问刚才的信息# 创建第二个无记忆会话claude session create --agent-idyour-agent-id--environment-idyour-env-id--titletest no memory - second sessionPrompt 2向第二个会话询问之前的信息告诉我昨天 CMA 讲座的内容以及我认识了谁。Agent 的回应“我没有访问到这些信息但我可以在以下方面帮助你……”结论信息没有跨会话传递这就是 Agent 的失忆问题。二、解决方案Memory Store记忆存储Memory Store 是一个持久化的类文件系统存储可以附加到会话上让 Agent 能够跨会话读取和写入信息。2.1 核心特性特性说明持久化会话结束后数据不会丢失类文件系统使用目录结构组织记忆支持bash、grep等工具操作多会话共享同一个 Memory Store 可以附加到多个会话灵活边界可按用户、工作区、项目定义存储边界读写权限支持read-write默认和read-only两种模式2.2 创建 Memory Store# 创建 Memory Storeclaude memory-store create--nameworkshop-memory--descriptionMemory for workshop sessions创建后可在 Console 的Manage Agents → Memory Stores中查看初始状态为空。2.3 将 Memory Store 附加到会话# 创建带 Memory Store 的会话claude session create --agent-idyour-agent-id--environment-idyour-env-id--memory-store-idyour-memory-store-id--memory-promptFocus on workshop-related information--memory-accessread-write--titletest with memory参数说明参数必填说明--memory-store-id是Memory Store 的唯一标识--memory-prompt否引导 Agent 关注特定领域的信息--memory-access否read-write默认或read-only2.4 演示有记忆的 Agent步骤 1创建带 Memory Store 的会话发送信息# 创建带 memory 的会话claude session create --agent-idyour-agent-id--environment-idyour-env-id--memory-store-idyour-memory-store-id--titletest with memoryPrompt 3向带记忆的会话发送信息昨天我参加了一个关于 CMA 的讲座关键词包括multi-agent orchestration、multiple illustration outcomes 和 memory。我还认识了一个叫 Alex 的人。此时 Agent 会先检查 Memory Store 是否有相关信息发现没有后将信息写入 Memory Store通常保存为sessions.md或类似文件确认已保存步骤 2创建新会话使用同一个 Memory Store询问之前的信息# 创建第二个带相同 memory 的会话claude session create --agent-idyour-agent-id--environment-idyour-env-id--memory-store-idyour-memory-store-id--titletest with memory - second sessionPrompt 4询问之前保存的信息告诉我昨天 CMA 讲座的内容以及我认识了谁。此时 Agent 会先读取 Memory Store使用grep搜索关键词 “CMA”找到之前保存的信息基于记忆内容回答问题结论信息成功跨会话传递2.5 Memory Store 的文件系统操作因为 Memory Store 是以类文件系统挂载到会话容器的Agent 可以使用强大的文件操作工具# Agent 可以执行的内部操作示例# 1. 列出记忆文件ls/memory/# 2. 搜索关键词grep-rCMA/memory/# 3. 读取特定文件cat/memory/sessions.md# 4. 创建新文件echoNew insight/memory/insights.md# 5. 编辑现有文件sed-is/old/new/g/memory/sessions.md2.6 管理 Memory Store2.6.1 通过 CLI 管理# 列出 Memory Store 中的所有文件claude memory-store list-files --memory-store-idid# Memory Store 支持版本控制每次修改都会创建新版本claude memory-store list-versions --memory-store-idid--file-pathpath2.6.2 通过 Console UI 管理在 Console 的Manage Agents → Memory Stores中查看文件系统目录结构直接编辑记忆文件修正错误或补充信息手动添加新的记忆文件2.6.3 手动添加记忆# 通过 API 直接添加记忆文件claude memory-store add-file --memory-store-idid--file-pathnotes/important.md--contentThis 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负责任务分发和进度管理子 AgentSub-Agent每个子 Agent 负责分析一个输入会话或执行特定优化任务设计原则穷尽式Exhaustive——给定 100 个会话确保每个都被仔细审查3.4 创建 Dreaming Job# 创建 Dreaming Jobclaude dream create--modelclaude-sonnet-4-7--input-memory-store-idinput-memory-store-id--output-memory-store-idoutput-memory-store-id--session-idssession-id-1,session-id-2,...,session-id-n--promptFocus on fact-checking dates and organizing by topic.参数说明参数必填说明--model是claude-sonnet-4-7或claude-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 的自定义提示词PromptsPrompt 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-iddream-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: alexexample.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-iddream-id# 获取输出 Memory Store 的 ID# 输出中包含 output_memory_store_id步骤 2创建使用优化后记忆的新会话claude session create --agent-idyour-agent-id--environment-idyour-env-id--memory-store-idoutput-memory-store-id--titlesession with dreamed memoryPrompt 7询问跨会话的整合信息我参加了哪些讲座资源链接是什么我标记了哪些重点此时 Agent 会读取优化后的 Memory Store查看索引文件快速定位相关记忆读取具体的会话文件给出整合后的完整回答包含时间、主题、资源链接等丰富信息对比效果优化前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 sessions2创建带 Memory 的会话claude session create --agent-id id --environment-id id --memory-store-id id --title test with memory3向会话发送信息自动保存到 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,id26指导 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-id9列出 Memory Store 文件claude memory-store list-files --memory-store-id id10使用优化后的 Memory 创建会话claude session create --memory-store-id output-memory-store-id11询问整合后的信息我参加了哪些讲座资源链接是什么我标记了哪些重点12淘汰旧 Memory Storeclaude memory-store retire --memory-store-id input-id八、常见问题 FAQQ1: 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 仓库包含本文所有示例代码