一、为什么 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: 遵循以下原则:
不在共享会话加载 MEMORY.md(OpenClaw 已默认实现)
不记录敏感信息(密码、财务数据等)
定期备份(git 版本控制或云备份)
加密存储(敏感工作区可使用加密文件系统)
Q4: 记忆系统会影响 AI 回答吗?
A: 会,而且是正面影响:
✅ 更了解你的背景和需求
✅ 减少重复交代信息
✅ 提供更有针对性的建议
⚠️ 但需确保记忆准确(错误记忆会导致错误回答)
八、最佳实践
1. 记忆更新节奏
| 频率 | 操作 |
|---|---|
| 每天 | 记录重要事件到 memory/YYYY-MM-DD.md |
| 每周 | 回顾本周记忆,提炼到 MEMORY.md |
| 每月 | 归档旧记忆,清理过期信息 |
| 每季 | 全面审查记忆系统,优化结构 |
2. 记忆质量检查
定期问自己:
这些信息还准确吗?
这些信息还有用吗?
有更简洁的表达方式吗?
有敏感信息需要移除吗?
3. 记忆与上下文平衡
不要过度依赖记忆:
重要信息在对话中明确提及
记忆作为补充,不是替代
关键决策仍需人工确认
九、总结
核心要点
三层架构:会话上下文 → 每日记忆 → 长期记忆
安全隔离:MEMORY.md 仅在主会话加载
持续演化:定期回顾、提炼、归档
简单可控:纯文本文件,完全透明
为什么重要?
记忆系统让 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 # 记忆回顾脚本
夜雨聆风