乐于分享
好东西不私藏

OpenClaw 记忆系统详解:让 AI 真正"记住"你

OpenClaw 记忆系统详解:让 AI 真正"记住"你

一、为什么 AI 需要记忆?

先说个扎心的事实

你有没有遇到过这种情况:

  • 昨天跟 AI 助手说"我叫尘,在广东",今天它又问"请问怎么称呼?"

  • 上周让它记住某个项目细节,这周它完全忘了

  • 每次新对话都要重新交代背景,像在跟失忆症患者聊天

这不是你的问题,是大多数 AI 助手的通病。

传统 AI 的"失忆症"

大多数 AI 助手(包括某些大厂的)有个致命缺陷:会话结束 = 记忆清零

┌─────────────────┐│   会话 1        ││  你说:我叫尘   ││  AI:记住了!   │└─────────────────┘         ↓    [会话结束]         ↓┌─────────────────┐│   会话 2        ││  AI:请问怎么   ││       称呼?    │└─────────────────┘

为什么?因为它们的"记忆"只存在于当前对话的上下文窗口里。对话一结束,上下文一清空,它就真的什么都不记得了。

人类是怎么记忆的?

人类不一样。我们有两套记忆系统:

  • 短期记忆:刚才发生的对话、临时信息(相当于 AI 的上下文窗口)

  • 长期记忆:重要的事实、经验、技能(AI 缺的就是这个)

OpenClaw 的记忆系统,就是为了解决这个问题而设计的。

二、OpenClaw 记忆系统架构

核心设计理念

OpenClaw 的记忆系统模仿人类的记忆机制,分为三层:

┌─────────────────────────────────────────┐│           会话上下文(短期)             ││   当前对话的历史消息,模型直接可见       │└─────────────────────────────────────────┘                    ↓┌─────────────────────────────────────────┐│         每日记忆文件(中期)             ││   memory/YYYY-MM-DD.md,原始日志        │└─────────────────────────────────────────┘                    ↓┌─────────────────────────────────────────┐│         MEMORY.md(长期)               ││    curated 记忆, distilled 精华         │└─────────────────────────────────────────┘

三层记忆详解

1️⃣ 会话上下文(短期记忆)

作用:当前对话的连续性和连贯性

特点

  • 自动维护,无需手动操作

  • 包含完整的对话历史

  • 受模型上下文窗口限制(如 128K tokens)

  • 会话结束即失效

适用场景

  • 多轮对话中的指代消解("它"、"这个"、"刚才说的")

  • 临时信息的传递

  • 当前任务的进度跟踪

2️⃣ 每日记忆文件(中期记忆)

作用:记录每天发生的重要事件和原始日志

位置memory/YYYY-MM-DD.md

特点

  • 按日期自动创建

  • 记录原始、详细的事件

  • 类似人类的"日记"

  • 可追溯、可查询

内容示例

# 2026-03-31## 重要事件- 19:05 新会话启动,用户问候- 19:11 请求生成公众号文章(OpenClaw 系列 003)- 19:27 开始撰写记忆系统详解文章## 学习到的信息- 用户偏好:公众号文章需要详细的技术细节- 项目进度:OpenClaw 系列文章已完成 3 篇## 待办事项- 继续生成 OpenClaw 系列文章- 完善记忆系统文档

3️⃣ MEMORY.md(长期记忆)

作用:存储经过提炼的、值得长期保留的信息

位置MEMORY.md(工作区根目录)

特点

  • 仅在主会话加载(安全考虑,防止泄露给陌生人)

  • curated(精心挑选)的内容

  • distilled(蒸馏提炼)的精华

  • 类似人类的"长期记忆"和"知识体系"

内容示例

# 长期记忆## 关于用户- 称呼:尘- 位置:中国广东(GMT+8)- 时区:Asia/Shanghai- 目标:共同进化,持续学习## 项目信息- OpenClaw 公众号系列:进行中- 已完成文章:3 篇(AI 工具/大模型横评/RAG 教程)- 发布计划:每周 2-3 篇## 偏好和习惯- 文章风格:技术严谨 + 通俗易懂- 发布时间:工作日 19:00-21:00- 偏好工具清单类文章(高收藏率)## 重要决策- 公众号定位:开发者 AI 技术分享- 记忆系统:三层架构(会话/每日/长期)

记忆加载规则

OpenClaw 的记忆加载遵循严格的规则,确保安全性和效率:

┌─────────────────────────────────────────┐│          新会话启动                      │└─────────────────────────────────────────┘                    ↓    ┌───────────────┴───────────────┐    ↓                               ↓┌─────────┐                   ┌─────────────┐│主会话    │                   │ 共享会话     ││(直接聊天)│                   │(群聊/他人)  │└─────────┘                   └─────────────┘    ↓                               ↓加载 MEMORY.md              不加载 MEMORY.md+ SOUL.md                   + SOUL.md+ USER.md                   + USER.md+ 昨日&今日记忆              + 昨日&今日记忆

为什么这样设计?

  • 安全性:MEMORY.md 可能包含个人隐私,不应在群聊或共享会话中泄露

  • 效率:共享会话不需要加载完整的长期记忆

  • 隔离:不同场景使用不同级别的记忆

三、记忆系统的工作原理

会话启动流程

每次新会话启动时,OpenClaw 自动执行以下步骤:

# 伪代码示意def session_startup():    # 1. 读取身份定义    read("SOUL.md")      # 我是谁    read("USER.md")      # 用户是谁    # 2. 读取近期记忆    read("memory/today.md")    read("memory/yesterday.md")    # 3. 如果是主会话,加载长期记忆    if session_type == "main":        read("MEMORY.md")    # 4. 准备就绪,开始对话    return "Ready"

记忆更新机制

记忆不是一成不变的,它会随着时间演化:

每日记忆文件 (原始日志)        ↓   [定期回顾]        ↓   提炼重要信息        ↓   更新 MEMORY.md (长期记忆)        ↓   删除过期日常记忆

定期回顾建议

  • 每 3-7 天回顾一次每日记忆

  • 将重要事件、决策、学习提炼到 MEMORY.md

  • 删除或归档过期的日常记录

记忆查询工具

OpenClaw 提供两个核心工具用于记忆管理:

memory_search

功能:语义搜索记忆文件

使用场景

  • "上次提到的项目是什么?"

  • "用户说过喜欢什么?"

  • "之前做过什么决定?"

工作原理

用户问题 → 语义搜索 → 返回相关片段              ↓    MEMORY.md + memory/*.md

memory_get

功能:精确读取记忆文件的指定片段

使用场景

  • 搜索后获取完整上下文

  • 读取特定文件的特定行

  • 保持上下文窗口高效利用

示例

memory_get(path="MEMORY.md"from=10, lines=5)→ 返回第 10-15 行的内容

四、实战:配置你的记忆系统

第一步:创建记忆目录

# 进入工作区cd ~/.openclaw/workspace# 创建 memory 目录mkdir memory

第二步:创建今日记忆文件

# 创建今日文件(日期格式:YYYY-MM-DD)echo "# 2026-03-31" > memory/2026-03-31.mdecho "" >> memory/2026-03-31.mdecho "## 今日事项" >> memory/2026-03-31.md

第三步:创建长期记忆文件

# 创建 MEMORY.mdcat > MEMORY.md << 'EOF'# 长期记忆## 关于我- 姓名:[你的名字]- 位置:[你的城市]- 职业:[你的职业]## 项目- [项目 1]:[描述]- [项目 2]:[描述]## 偏好- [偏好 1]- [偏好 2]## 重要日期- [日期]:[事件]EOF

第四步:配置 AGENTS.md(可选)

AGENTS.md 是记忆系统的"使用说明书",通常已存在。如需自定义,可编辑:

# 编辑 AGENTS.mdnotepad ~/.openclaw/workspace/AGENTS.md

关键配置项

  • 记忆加载规则

  • 记忆更新频率

  • 安全边界(什么不该记)

记忆内容建议

✅ 应该记录

类型示例
身份信息姓名、位置、职业、联系方式
项目信息项目名称、目标、进度、技术栈
偏好习惯工作时间、沟通风格、工具偏好
重要决策技术选型、方向调整、关键决定
学习收获新技能、经验教训、踩坑记录
人际关系合作伙伴、客户、团队成员

❌ 不该记录

类型原因
敏感密码安全风险,应使用密码管理器
财务细节银行账号、完整卡号等
他人隐私未经同意的个人信息
临时信息很快过期的内容(如临时会议时间)

五、高级用法

1. 记忆模板

创建标准化的记忆模板,提高记录效率:

# {{DATE}}## 📅 日程- [ ] ## 💬 对话摘要## 🎯 决策## 📚 学习## ⚠️ 待办- [ ] 

2. 记忆回顾脚本

定期回顾记忆的自动化脚本:

# scripts/review-memory.pyimport osfrom datetime import datetime, timedeltadef review_memory():    # 读取过去 7 天的记忆    today = datetime.now()    for i in range(7):        date = today - timedelta(days=i)        file = f"memory/{date.strftime('%Y-%m-%d')}.md"        if os.path.exists(file):            print(f"\n=== {date.strftime('%Y-%m-%d')} ===")            with open(file, 'r', encoding='utf-8'as f:                print(f.read())    print("\n💡 建议:将重要信息提炼到 MEMORY.md")if __name__ == "__main__":    review_memory()

3. 记忆迁移

当 MEMORY.md 变得太大时,可以:

# 1. 创建归档mkdir memory/archive/2026-Q1# 2. 移动旧记忆mv memory/2026-01-*.md memory/archive/2026-Q1/mv memory/2026-02-*.md memory/archive/2026-Q1/mv memory/2026-03-*.md memory/archive/2026-Q1/# 3. 保留 MEMORY.md(只保留核心信息)

4. 多工作区记忆隔离

如果你有多个工作区,建议:

~/.openclaw/├── workspace-personal/      # 个人项目│   └── MEMORY.md           # 个人记忆├── workspace-work/          # 工作项目│   └── MEMORY.md           # 工作记忆└── workspace-learning/      # 学习项目    └── MEMORY.md           # 学习记忆

好处

  • 上下文隔离,避免混淆

  • 安全性更高(工作记忆不会泄露到个人会话)

  • 便于管理和归档

六、记忆系统 vs 其他方案

对比向量数据库记忆

特性OpenClaw 文件记忆向量数据库记忆
实现复杂度低(纯文本文件)高(需部署数据库)
查询方式语义搜索 + 精确读取向量相似度检索
可控性完全可控,可手动编辑需通过 API 操作
可解释性高(直接阅读)低(黑盒检索)
成本零成本需要服务器资源
适用场景个人助手、小团队大规模应用、企业级

结论:OpenClaw 的方案更适合个人和小型团队,简单、透明、可控。

对比大模型内置记忆

特性OpenClaw 文件记忆大模型内置记忆
持久性永久保存可能随模型更新丢失
隐私性本地存储,完全私有数据上传到云端
可移植性可备份、可迁移绑定特定平台
自定义完全自定义有限的自定义选项

结论:自建记忆系统在隐私和可控性上更有优势。

七、常见问题

Q1: 记忆文件太多怎么办?

A: 定期归档和清理:

# 按月归档mkdir memory/archive/2026-03mv memory/2026-03-*.md memory/archive/2026-03/

Q2: MEMORY.md 太大影响性能?

A: 提炼核心信息,移动细节到归档:

# 精简后的 MEMORY.md## 核心信息(保留)- 关键身份、项目、决策## 详细信息(移动到归档)- 具体对话记录 → memory/archive/- 临时信息 → 删除

Q3: 如何确保记忆安全?

A: 遵循以下原则:

  1. 不在共享会话加载 MEMORY.md(OpenClaw 已默认实现)

  2. 不记录敏感信息(密码、财务数据等)

  3. 定期备份(git 版本控制或云备份)

  4. 加密存储(敏感工作区可使用加密文件系统)

Q4: 记忆系统会影响 AI 回答吗?

A: 会,而且是正面影响:

  • ✅ 更了解你的背景和需求

  • ✅ 减少重复交代信息

  • ✅ 提供更有针对性的建议

  • ⚠️ 但需确保记忆准确(错误记忆会导致错误回答)

八、最佳实践

1. 记忆更新节奏

频率操作
每天记录重要事件到 memory/YYYY-MM-DD.md
每周回顾本周记忆,提炼到 MEMORY.md
每月归档旧记忆,清理过期信息
每季全面审查记忆系统,优化结构

2. 记忆质量检查

定期问自己:

  • 这些信息还准确吗?

  • 这些信息还有用吗?

  • 有更简洁的表达方式吗?

  • 有敏感信息需要移除吗?

3. 记忆与上下文平衡

不要过度依赖记忆

  • 重要信息在对话中明确提及

  • 记忆作为补充,不是替代

  • 关键决策仍需人工确认

九、总结

核心要点

  1. 三层架构:会话上下文 → 每日记忆 → 长期记忆

  2. 安全隔离:MEMORY.md 仅在主会话加载

  3. 持续演化:定期回顾、提炼、归档

  4. 简单可控:纯文本文件,完全透明

为什么重要?

记忆系统让 AI 从"一次性工具"变成"长期伙伴"。它真正理解你、记住你、适应你,而不只是机械地回答问题。

下一步

  • 创建你的 memory/ 目录

  • 写下第一条记忆

  • 开始和"记得你"的 AI 对话


📎 附录:完整目录结构示例

~/.openclaw/workspace/├── AGENTS.md                 # 记忆系统使用说明├── SOUL.md                   # AI 身份定义├── USER.md                   # 用户信息├── MEMORY.md                 # 长期记忆├── memory/                   # 每日记忆目录│   ├── 2026-03-30.md│   ├── 2026-03-31.md│   └── archive/              # 归档目录│       └── 2026-Q1/│           ├── 2026-01-*.md│           ├── 2026-02-*.md│           └── 2026-03-*.md└── scripts/                  # 辅助脚本    └── review-memory.py      # 记忆回顾脚本