首页openclaw教程中心 › Memory 记忆系统教程

Memory 记忆系统教程

记忆系统概述

OpenClaw 的记忆系统有一个核心设计理念:模型只记住保存到磁盘的内容。 这意味着智能体的"记忆"不是什么神秘的向量数据库或复杂的知识图谱——它就是纯 Markdown 文件。智能体通过读写这些文件来"记住"和"回忆"信息。 为什么这样设计? - 透明可控:你可以直接打开文件查看智能体记住了什么 - 可编辑:你可以手动修改记忆内容,纠正错误或补充信息 - 可迁移:记忆文件就是普通文本,可以备份、同步、版本控制 - 不依赖外部服务:不需要向量数据库,不需要云服务

三个核心文件

OpenClaw 的记忆系统由三个核心文件组成,各有不同的用途。

MEMORY.md — 长期记忆

MEMORY.md 是智能体的"长期记忆本",存储需要跨会话保留的重要信息。 位置:~/.openclaw/workspace/MEMORY.md 典型内容: ``markdown

长期记忆

用户偏好

- 喜欢使用 TypeScript,不喜欢 JavaScript - 代码风格偏好:函数式编程 - 常用编辑器:VS Code

项目信息

- 当前项目:龙虾技能库 - 技术栈:Node.js + Express + MySQL - 部署方式:PM2 + Nginx

重要约定

- 数据库密码不要写在代码里 - 部署前必须跑测试 - Git 提交信息用中文
` MEMORY.md 在每个会话开始时会被加载到智能体的上下文中,所以智能体在新会话中也能"记住"之前的信息。

memory/YYYY-MM-DD.md — 每日笔记

每日笔记是智能体的"日记本",按日期自动创建,记录当天的重要事件和发现。 位置:
~/.openclaw/workspace/memory/2025-01-15.md 典型内容: `markdown

2025-01-15

完成的任务

- 修复了教程列表页的搜索功能 - 添加了标签筛选功能

发现的问题

- ssr.ts 文件超过 3000 行,需要考虑拆分 - Redis 缓存偶尔失效,需要排查

用户提到的

- 下周要上线新的排行榜功能 - 需要支持深色模式
` 每日笔记的特点: - 自动按日期创建新文件 - 不会加载到每个会话的上下文中(太多了会占用 Token) - 通过 memory_search 工具按需搜索 - 适合记录细节信息和临时笔记

DREAMS.md — 实验性记忆

DREAMS.md 是 OpenClaw 的实验性功能(Dreaming),用于存储经过"梦境处理"的记忆。 位置:~/.openclaw/workspace/DREAMS.md > 注意:Dreaming 是实验性功能,默认未启用。它的工作方式可能在未来版本中变化。

记忆工具

OpenClaw 提供了两个内置工具来操作记忆。

memory_search — 语义搜索

memory_search 工具可以在所有记忆文件中进行语义搜索,找到与查询最相关的内容。 工作方式: 1. 智能体收到一个需要回忆的问题 2. 调用 memory_search 搜索相关记忆 3. 返回匹配的记忆片段 4. 智能体基于记忆片段回答问题 示例对话: ` 用户:上次我们讨论的数据库优化方案是什么? 智能体:(调用 memory_search 搜索"数据库优化") 找到相关记忆: - 2025-01-10.md: 讨论了索引优化,决定为 skills 表的 slug 字段添加唯一索引 - MEMORY.md: 数据库使用 MySQL,服务器 IP 10.0.8.10 根据记忆,上次我们讨论了为 skills 表的 slug 字段添加唯一索引来优化查询性能... ` 语义搜索的优势在于它不是简单的关键词匹配——即使你用不同的措辞描述同一件事,它也能找到相关内容。

memory_get — 读取记忆

memory_get 工具直接读取指定的记忆文件内容。 ` 用户:看看我的长期记忆里有什么 智能体:(调用 memory_get 读取 MEMORY.md) `memory_search 的区别: | 工具 | 用途 | 方式 | |------|------|------| | memory_search | 搜索相关记忆 | 语义匹配,返回最相关的片段 | | memory_get | 读取完整文件 | 直接读取指定文件的全部内容 |

自动记忆刷新

OpenClaw 有一个智能的自动记忆刷新机制,确保重要信息不会在对话压缩(compaction)时丢失。

什么是对话压缩

当对话变得很长时,OpenClaw 会触发"压缩"——将之前的对话总结为一段摘要,释放上下文空间。但压缩可能会丢失一些细节信息。

自动保存机制

在压缩发生之前,OpenClaw 会自动执行以下操作: 1. 扫描即将被压缩的对话内容 2. 识别重要信息(用户偏好、项目决策、关键发现等) 3. 将重要信息保存到记忆文件(MEMORY.md 或当天的每日笔记) 4. 然后再执行压缩 这样即使对话被压缩了,重要信息已经安全地保存在记忆文件中,后续可以通过
memory_search 找回。

手动保存记忆

你也可以主动要求智能体记住某些信息:
` 用户:记住,我们的项目部署到 106.52.9.75 这台服务器 智能体:好的,我已经将这个信息保存到长期记忆中。 (将信息写入 MEMORY.md) ` 或者更具体地: ` 用户:把今天讨论的数据库优化方案记到笔记里 智能体:已记录到今天的笔记中。 (将信息写入 memory/2025-01-15.md) `

Dreaming 实验性功能

Dreaming 是 OpenClaw 的一个实验性功能,灵感来自人类睡眠时大脑整理记忆的过程。

工作原理

1. 短期信号收集:在日常对话中,系统会标记"有趣"的信号(用户反复提到的话题、重要的决策、情绪变化等) 2. 信号评分:每个信号会被评估重要性分数 3. 梦境处理:在空闲时(类似"睡眠"),系统会处理这些信号: - 高分信号提升为长期记忆(写入 MEMORY.md) - 低分信号逐渐衰减 - 相关信号被关联和整合 4. 记忆提升:经过梦境处理的记忆会更加结构化和精炼

启用 Dreaming

Dreaming 默认未启用,因为它还在实验阶段。如果你想尝试:
`json5 { "memory": { "dreaming": { "enabled": true } } } ` > 提醒:Dreaming 功能会消耗额外的 API Token(因为需要调用模型来处理信号),且行为可能在未来版本中变化。建议在非生产环境中尝试。

CLI 记忆管理命令

OpenClaw 提供了一组 CLI 命令来管理记忆系统。

查看记忆状态

`bash openclaw memory status ` 输出示例: ` 记忆状态: MEMORY.md: 2.3 KB (上次更新: 2025-01-15) 每日笔记: 12 个文件 DREAMS.md: 0.8 KB 索引状态: 已建立 (14 个文档) `

搜索记忆

在命令行中搜索记忆内容:
`bash openclaw memory search "数据库优化" ` 输出示例: ` 找到 3 条相关记忆: [1] memory/2025-01-10.md (相关度: 0.92) 讨论了为 skills 表添加索引优化查询性能... [2] MEMORY.md (相关度: 0.78) 数据库服务器 IP: 10.0.8.10,使用 MySQL... [3] memory/2025-01-08.md (相关度: 0.65) 发现慢查询问题,排行榜接口响应超过 2 秒... `

重建索引

如果你手动编辑了记忆文件,需要重建搜索索引:
`bash openclaw memory index ` 这会重新扫描所有记忆文件,更新语义搜索索引。通常在以下情况需要执行: - 手动编辑了 MEMORY.md 或每日笔记 - 从备份恢复了记忆文件 - 搜索结果不准确时

记忆管理最佳实践

1. 定期整理 MEMORY.md

MEMORY.md 会随着使用不断增长。建议定期检查和整理: - 删除过时的信息 - 合并重复的条目 - 按主题分类组织
`bash

直接编辑

nano ~/.openclaw/workspace/MEMORY.md

或者让智能体帮你整理

openclaw agent --message "帮我整理一下长期记忆,删除过时的信息"
`

2. 善用每日笔记

每日笔记适合记录: - 当天完成的任务 - 遇到的问题和解决方案 - 临时的想法和计划 - 需要后续跟进的事项

3. 主动告诉智能体该记什么

智能体不会自动记住所有对话内容。如果有重要信息,明确告诉它:
` 用户:记住这个——以后所有 API 接口都要加上速率限制 `

4. 备份记忆文件

记忆文件就是普通的 Markdown 文件,可以用 Git 管理:
`bash cd ~/.openclaw/workspace git init git add MEMORY.md memory/ git commit -m "备份记忆文件" ` 这样你就有了记忆的版本历史,可以随时回溯。

记忆系统的局限性

了解记忆系统的局限有助于更好地使用它: - MEMORY.md 占用上下文:MEMORY.md 在每个会话开始时加载,内容太多会占用宝贵的上下文窗口空间 - 每日笔记不自动加载:每日笔记需要通过
memory_search 主动搜索,智能体不会自动"想起" - 语义搜索有精度限制:搜索结果可能不完全准确,特别是对于非常具体的技术细节 - 压缩可能丢失细节:虽然有自动保存机制,但对话压缩时仍可能丢失一些不被认为"重要"的细节

小结

OpenClaw 的记忆系统简单而实用: - 记忆就是 Markdown 文件,透明可控 - MEMORY.md 存长期记忆,每日笔记存日常细节 -
memory_search 语义搜索,memory_get` 直接读取 - 对话压缩前自动保存重要信息 - CLI 命令管理记忆状态和索引 记忆系统让智能体从"金鱼记忆"变成了真正能积累经验的助手。善用它,你的智能体会越用越懂你。 #OpenClaw记忆 #Memory系统 #长期记忆 #语义搜索 #龙虾技能库
#记忆系统#Memory#长期记忆#语义搜索#智能体

📚 相关教程

智能体人设与工作区配置中级
了解 OpenClaw 智能体的工作区目录结构、核心引导文件(AGENTS.md、SOUL.md 等),掌握如何自定义智能体人格和行为。
← Gateway 网关配置教程模型故障转移与流式传输教程 →