一、核心设计理念

OpenClaw 记忆全部以标准 Markdown 文件存储,不依赖向量数据库、外部存储服务,特点:

  • 透明可视:直接打开文件就能查看、编辑记忆内容
  • 自由迁移:可备份、同步、Git 版本管理
  • 轻量可靠:纯文本读写,无额外组件依赖
  • 分层管理:区分长期记忆、每日笔记、实验梦境记忆

核心规则:模型仅加载 / 读取已落地到磁盘的记忆文件。


二、三大记忆文件(路径 + 用途)

所有文件默认路径:~/.openclaw/workspace/

1. MEMORY.md 长期记忆(核心)

作用

跨会话永久保存关键固定信息每次对话启动都会自动加载进上下文

适合:用户习惯、项目配置、账号信息、规则约定、固定参数。

路径

plaintext

~/.openclaw/workspace/MEMORY.md

标准写法示例

markdown

# 长期记忆汇总
## 用户偏好
- 沟通风格:简洁、直奔重点
- 常用技术栈:Java、Python、SQL、Nginx
- 编辑器:VS Code

## 项目配置
- 数据库:MySQL 8.0
- 服务地址:106.52.9.75
- 部署方式:Docker + Nginx

## 通用规则
- 输出代码附带简要注释
- 报错优先给出可直接运行的修复代码

2. memory / 日期.md 每日笔记(临时 / 流水记忆)

作用

自然日自动生成日记文件,记录当日任务、问题、临时想法。

不会默认加载进上下文,仅通过搜索工具按需调取,避免占用 Token。

路径

plaintext

~/.openclaw/workspace/memory/2025-06-14.md

内容示例

markdown

# 2025-06-14 工作记录
## 已完成
1. 配置模型故障转移与流式传输
2. 调试 Telegram 渠道流式分块

## 待跟进
1. 优化 Ollama 局域网连接
2. 整理多智能体路由规则

## 问题记录
- Telegram 分块过小易触发平台限流

3. DREAMS.md 梦境记忆(实验功能)

作用

AI 空闲时自动整理、提炼碎片化记忆,合并关联内容、淘汰无效信息,优化记忆结构。

状态:实验性功能,默认关闭,接口与逻辑后续可能变更。

路径

plaintext

~/.openclaw/workspace/DREAMS.md

三、两大内置记忆工具(对话中调用)

1. memory_search 语义搜索(推荐)

  • 能力:语义匹配,不是简单关键词检索,换种说法也能搜到相关内容
  • 用途:回忆历史对话、查找每日笔记、检索零散信息
  • 触发方式:对话直接提问即可自动调用

示例

plaintext

用户:上次说的数据库部署地址是多少?
智能体:(自动调用 memory_search 检索记忆)
找到相关内容:MEMORY.md 记录服务地址为 106.52.9.75

2. memory_get 读取完整文件

  • 能力:直接读取整个记忆文件全文
  • 用途:查看完整长期记忆、翻阅某一天全部日记

示例

plaintext

用户:把我的长期记忆全部展示出来
智能体:(调用 memory_get 读取 MEMORY.md)

工具对比

表格

工具特点适用场景
memory_search语义匹配、返回片段、省 Token查历史信息、零散笔记
memory_get读取完整文件、内容全整体查看记忆、批量审阅

四、自动记忆机制

1. 对话压缩 & 自动落库

对话轮次过多时,系统会压缩历史会话(总结摘要、缩减上下文),避免超出模型上下文限制。

压缩流程:

  1. 扫描待压缩的对话内容
  2. 识别重要信息(配置、决策、用户要求)
  3. 自动写入 MEMORY.md 或当日每日笔记
  4. 执行会话压缩

👉 优势:长对话压缩后,关键信息不会丢失。

2. 手动指令保存记忆

可主动命令 AI 记录内容,精准控制记忆落点:

plaintext

# 存入长期记忆
用户:记住:生产环境端口统一使用 18789

# 存入当日笔记
用户:把今天讨论的接口限流方案记到今日笔记里

五、启用实验功能:Dreaming 梦境整理

空闲时段自动梳理、归类、精简记忆,提升检索效率。

开启配置

编辑 ~/.openclaw/openclaw.json

json

{
  "memory": {
    "dreaming": {
      "enabled": true
    }
  }
}

注意:该功能会额外调用模型、消耗 Token,生产环境不建议开启

工作流程

  1. 收集日常对话中的关键信号
  2. 按重要性打分
  3. 空闲时整合、提炼、迁移有效内容到长期记忆
  4. 衰减、清理无效碎片化信息

六、CLI 命令行记忆管理

1. 查看整体记忆状态

bash

运行

openclaw memory status

输出:文件大小、更新时间、笔记数量、索引状态。

2. 命令行检索记忆

bash

运行

openclaw memory search "数据库地址"

批量查找所有记忆文件中的相关内容。

3. 重建搜索索引

手动修改记忆文件、恢复备份后,必须重建索引,否则搜索失效:

bash

运行

openclaw memory index

七、多智能体记忆隔离

多智能体场景下,每个 Agent 拥有独立记忆目录,完全隔离互不干扰:

  • main 主智能体:~/.openclaw/workspace/
  • 自定义智能体(如 work):~/.openclaw/agents/work/workspace/

编辑对应智能体记忆:

bash

运行

# 编辑 work 智能体长期记忆
nano ~/.openclaw/agents/work/workspace/MEMORY.md

八、最佳实践与使用规范

1. MEMORY.md 管理(长期记忆)

  • 模块分类(偏好、配置、规则、项目),条理清晰
  • 定期清理:删除过期配置、重复内容
  • 控制篇幅:内容过多会占用上下文,导致可用对话轮次变少

2. 每日笔记管理

  • 记录:当日任务、问题、临时方案、跟进事项
  • 不用刻意精简,适合流水式记录
  • 历史笔记无需删除,依靠 memory_search 检索即可

3. 备份记忆(重要)

记忆是核心数据,建议 Git 版本管控:

bash

运行

cd ~/.openclaw/workspace
git init
git add MEMORY.md memory/
git commit -m "记忆备份 2025-06-14"

4. 记忆使用技巧

  1. 重要配置、规则主动让 AI 记录,不要依赖自动识别
  2. 细节、临时内容优先存每日笔记
  3. 固定不变的核心信息存入 MEMORY.md
  4. 手动改记忆文件后,务必执行 openclaw memory index

九、已知局限性(避坑)

  1. MEMORY.md 占用上下文 文件越大,留给对话的 Token 越少,建议精简内容。
  2. 每日笔记不会自动加载 必须通过 memory_search 主动搜索,AI 不会凭空想起历史笔记。
  3. 语义搜索存在误差 极专业、生僻细节可能匹配不准,关键信息建议写在长期记忆。
  4. 对话压缩仍可能丢失边缘细节 极度细节内容,建议手动写入笔记留存。

十、快速配置 & 排查总结

  1. 记忆本质 = 纯 Markdown 文件,透明易维护;
  2. 长期记忆 MEMORY.md 随会话加载,每日笔记按需搜索;
  3. 改记忆文件后 → 执行 openclaw memory index 重建索引;
  4. 多智能体记忆目录相互独立;
  5. Dreaming 为实验功能,测试环境使用即可;
  6. 重要数据定期 Git 备份,防止丢失。