
🧠 记忆分层架构(原生 3 层 + 我扩展的 2 层)
| 层级 | 存储形式 | 生命周期 | 用途 | 访问范围 |
|---|---|---|---|---|
| 0️⃣ 会话上下文 | 当前对话历史(数组) | 单次会话 | 实时理解、即时决策 | 当前 session |
| 1️⃣ 每日日志 | memory/YYYY‑MM‑DD.md | 永久(文件) | 原始事件记录、原始决策、待办 | 当前 agent(main session) |
| 2️⃣ 长期记忆 | MEMORY.md | 永久(文件) | 精炼知识、经验总结、偏好、教训 | 仅 main session(安全隔离) |
| 3️⃣ 结构化知识 | Ontology 知识图谱(可选技能) | 永久(图谱文件) | 实体关系、项目依赖、跨技能状态共享 | 安装了 ontology 技能时 |
| 4️⃣ 跨会话索引 | 已索引的会话记录(内部存储) | 永久(索引) | 搜索历史对话、跨会话回忆 | 通过 memory_search 工具 |
| 5️⃣ 外部补充 | Compiled‑wiki 补充资料(可注册) | 永久(外部) | 额外文档、知识库 | memory_search corpus=wiki |
📂 各层详情
0️⃣ 会话上下文(Session Context)
- 内容:本次对话的最近数十条消息。
- 特点:临时性,session 结束后自动消失(除非显式持久化)。
- 用途:维持对话连贯、处理指代。
1️⃣ 每日日志(每日日志)
- 路径:
<workspace>/memory/YYYY‑MM‑DD.md - 写入时机:
- 重要事件发生后(如完成任务、发布博客)
- Heartbeat 检查时归档临时信息
- 示例:
## 2026‑04‑29 - 解读 browser-use 仓库 - 创建 DeepSeek V4 博客文章 - 更新 TOOLS.md(新增 browser-use 技能笔记) - 安全:仅在 main session(直接对话)自动加载,群聊、共享环境不读取。
2️⃣ 长期记忆(MEMORY.md)
- 路径:
<workspace>/MEMORY.md - 本质:策划后的精华记忆,相当于人类的长期记忆。
- 存放:
- 用户偏好(如“主人喜欢简洁技术总结”)
- 重要决策(如“默认模型改为 GLM‑4.7”)
- 经验教训(如“避免在群聊中加载 MEMORY.md”)
- 项目上下文(如“blog‑demo 使用 Hugo + PaperMod”)
- 维护:Heartbeat 定期回顾最近的每日日志,提炼有价值信息写入。
3️⃣ 结构化知识(Ontology)
- 技能:
ontology(如果已安装) - 模型:实体(Person、Project、Task、Event、Document)+ 关系(link、depends_on 等)
- 好处:跨技能共享状态、约束检查、依赖可视化,适合复杂业务工作流。
4️⃣ 跨会话索引(Session Transcripts)
- 机制:OpenClaw 为每个会话生成
sessions/YYYY‑MM‑DD‑<slug>.md并自动建立向量+BM25 混合索引。 - 检索:
memory_search(query, corpus="all")自动搜索这些索引。 - 检索原理:
- 向量搜索(70% 权重)捕捉语义相似度
- BM25(30% 权重)保证精确关键词匹配
- 每块约 400 token,80 token 重叠,SHA‑256 去重
5️⃣ 外部补充(Compiled‑wiki)
- 用途:接入公司内部 Wiki、产品手册、行业文档等外部知识库。
- 访问:同样通过
memory_search corpus="wiki"检索。
🔍 原生检索机制
- 向量 + BM25 融合(70%/30%)
- 块分割:400 token 块 + 80 token 重叠,防止上下文丢失
- 去重:块 SHA‑256 哈希,已有向量直接命中缓存
- 压缩触发:当会话快达到上下文上限时,系统会让模型在压缩前把关键信息写入
memory/*.md或MEMORY.md(即所谓的 “Dreaming”)
📦 实际操作示例
# 查看今天的日志
cat $(date +%Y-%m-%d).md
# 向长期记忆写入关键结论(示例)
cat >> MEMORY.md <<EOF
- 结论:使用向量+BM25 的混合检索可以兼顾概念关联和精确匹配。
EOF
# 用 ontology 记录项目关系
ontology create entity Project name="blog-demo"
ontology create relationship link source=Project target=Document name="deepseek-v4.md"
🔐 记忆安全与隔离(简要回顾)
- 文件系统权限:
700目录、600文件,仅当前 agent 可读写。 - 会话层隔离:
MEMORY.md只在 主私人会话 加载,避免在群聊泄露。 - 审计日志:每次写入都会记录在
memory/heartbeat-state.json,可追溯。 - 子代理 sandbox:默认只读工作区,写入必须显式声明。
- 可选加密:若有合规需求,可对
MEMORY.md进行 AES‑256‑GCM 加密。
🎯 小结
- OpenClaw 的记忆分层把 即时日志、长期精华、结构化实体、跨会话索引 和 外部 Wiki 五层有机结合,兼顾 可检索性、安全性 与 可维护性。
- 通过 混合向量+BM25 检索、块去重 与 Dreaming 机制,保证重要信息不被上下文压缩遗失。
- 正确使用
memory_search、memory_get、ontology等工具,可以让企业 AI 助手在 千余次会话 后仍保持对关键业务的清晰记忆。
#openclaw #龙虾 #memory