OpenClaw 记忆系统设计学习笔记

OpenClaw 记忆系统设计详解


一、初始架构:本地优先的双层存储

核心设计哲学:「Markdown 即真相」

OpenClaw 最初采用的记忆架构以 "Markdown 即真相" 为核心理念:

记忆文件以纯 Markdown 格式 存储在本地磁盘,是人类可读、git 可追踪的原始真相;SQLite 向量索引是从 Markdown 派生出来的加速层,始终可重建。

整体分为短期缓存长期持久化两层:

复制代码
记忆系统
├── 短期记忆(Short-term Cache)
│   └── 内存缓存,72小时内对话上下文
└── 长期记忆(Long-term Storage)
    ├── SQLite 数据库(结构化索引)
    └── Markdown 文件(原始真相)

1. 短期记忆 ------ 内存缓存

  • 存储位置:运行时内存(In-Memory)
  • 存储内容:当前对话窗口的原始上下文
  • 生命周期:72小时,会话结束后失效
  • 容量限制:受限于模型 Max Tokens
  • 作用:保证多轮对话的连贯性

2. 长期记忆 ------ Markdown 文件持久化

复制代码
~/.openclaw/workspace/
├── MEMORY.md                  # 长期决策、用户偏好、关键事实
└── memory/                    # 每日日志目录
    ├── 2026-01-30.md          # 按日期分片的每日笔记
    ├── 2026-01-31.md
    └── ...
文件 存储内容 加载时机
MEMORY.md 持久性事实、用户偏好、关键决策 仅在主私有会话加载
memory/YYYY-MM-DD.md 每日会话摘要、日常笔记 按日期按需读取
extraPaths 外部文档索引(用户自定义路径) 按需检索

3. SQLite ------ 派生索引层

复制代码
~/.openclaw/memory/
└── <agentId>.sqlite    # 每个 Agent 独立的向量索引库
    ├── FTS5             # 全文搜索索引
    ├── vec0             # 向量相似度搜索
    └── 结构化元数据      # 文件路径、时间戳等
  • 性质 :从 Markdown 派生,不是原始真相
  • 作用:加速检索,支持语义搜索与关键词混合搜索
  • 可重建:Markdown 存在时,SQLite 索引随时可重新生成

4. 整体数据流向

复制代码
用户对话
    ↓
内存上下文(短期缓存)
    ↓ 触发写入规则
Markdown 文件落盘(真相层)
    ↓ 索引管道
SQLite(FTS5 + vec0)加速层
    ↑ 工具调用检索
Agent 对话上下文注入

5. 本地优先原则

所有存储方式均遵循 Local-First(本地优先) 原则:

  • ✅ 所有记忆数据存储在用户本地设备,不上传云端
  • ✅ 纯 Markdown 格式,人类可读、可直接编辑
  • ✅ 支持 git 追踪,记忆变更历史可回溯
  • ✅ 仅调用 LLM API 时联网,支持切换本地模型零联网运行

二、社区演化:分层记忆架构

随着社区实践深入,原生架构暴露出核心痛点------整份 MEMORY.md 每轮全量塞进 system_prompt,不做检索,随使用无限增长,导致 Token 消耗爆炸。社区在此基础上演化出更完善的分层架构。

分层设计总览

将不同类型的信息存储在不同层级,平衡连续性与 Token 消耗:

层级 存储内容 加载策略 Token 成本
身份层 核心自我、用户偏好 始终加载 ~200 tokens
活动上下文 当前任务、近期决策 始终加载 ~500 tokens
档案层 完整历史、项目细节 按需语义检索 节省 96%

核心记忆文件结构

复制代码
~/openclaw-workspace/
├── SOUL.md        # AI 的人格和核心行为准则
├── USER.md        # 用户信息(名字、偏好、职业等)
├── IDENTITY.md    # AI 的自我认知(名字、性格、定位)
├── MEMORY.md      # 长期记忆(重要事件、项目进度、关键决策)
├── HEARTBEAT.md   # 周期性任务清单(主动服务配置)
└── memory/        # 每日记忆文件夹
    ├── 2026-03-04.md
    ├── 2026-03-05.md
    └── ...

RAG 记忆工作流程

每次对话,系统自动完成以下流程:

复制代码
用户输入
   ↓
预处理(清洗、脱敏)
   ↓
检索 Retrieve ------ 在向量库中搜索 Top-K 相关历史记忆
   ↓
增强 Augment ------ 检索到的记忆 + 当前对话 + System Prompt 组装完整 Prompt
   ↓
生成 Generate ------ LLM 基于完整 Prompt 输出回复
   ↓
存储 Store ------ 将当前对话追加到短期上下文

记忆生命周期

① 首次启动:基础记忆加载

OpenClaw 自动读取核心配置文件,构建初始记忆基础:

  • SOUL.md --- 明确 AI 的行为准则和沟通风格
  • USER.md --- 存储用户核心信息,让 AI 快速了解服务对象
  • IDENTITY.md --- 确立 AI 的自我定位,保证交互一致性

② 日常使用:动态记忆交互

  • 读取当天的 memory/YYYY-MM-DD.md,加载最新会话上下文
  • 检索最近 1~2 天的每日记忆文件,确保短期对话连贯性
  • 对话结束后自动写入新的记忆内容

③ 记忆写入规范

markdown 复制代码
## 记忆管理规范
- 日志写入 memory/YYYY-MM-DD.md,记录结论而非过程
- 项目变更时同步更新 memory/projects.md
- 遇到问题时记录到 memory/lessons.md

向量数据库后端支持

yaml 复制代码
memory:
  enabled: true
  # 支持: chroma(默认轻量)| milvus | qdrant | faiss
  backend: chroma
后端 特点
Chroma 默认,轻量级,适合本地使用
Milvus 适合大规模生产环境
Qdrant 高性能向量搜索
FAISS Facebook 开源,适合离线场景

三、社区主流优化插件

① MemOS(推荐 ⭐⭐⭐⭐⭐)

https://blog.csdn.net/qq_38604364/article/details/158893890

  • 底层用 Neo4j 图数据库记录实体关系
  • Qdrant 向量搜索记语义相似内容
  • 实测 Token 消耗下降 72%,支持多 Agent 共享记忆池

② PowerMem 插件

https://www.cnblogs.com/OBCE666/p/19770738

  • 会话前按需检索相关记忆注入上下文
  • 会话后智能抽取关键事实落库
  • 实测同等任务 Token 消耗降至默认方案的 18%

③ 知识图谱上下文引擎

https://so.html5.qq.com/page/real/search_news?docid=70000021_58069bafede28652

  • 从对话中提取结构化三元组(实体-关系-实体)构建知识图谱
  • 上下文压缩率高达 75%(174条消息从 9.5 万 token 压缩至 2.4 万)
  • 支持跨会话记忆重用

四、自定义记忆逻辑(高级)

参考:https://www.cnblogs.com/hewei-blogs/articles/19730086

OpenClaw 允许开发者通过 Python 脚本完全接管记忆的写入、读取和遗忘逻辑:

python 复制代码
# skills/custom/custom_memory.py
class CustomMemoryHandler:
    def write(self, content):
        # 自定义写入逻辑
        pass

    def read(self, query):
        # 自定义检索逻辑
        pass

    def forget(self, criteria):
        # 自定义遗忘逻辑
        pass

总结

复制代码
OpenClaw 记忆系统
├── 文件层(Markdown)------ 持久化、可读、透明
├── 向量层(Chroma/Qdrant 等)------ 语义检索、按需加载
├── 图谱层(Neo4j,可选)------ 关系推理、跨会话关联
└── 插件层(MemOS/PowerMem)------ Token 优化、智能管理

OpenClaw 记忆系统的核心设计哲学是:记忆以落盘 Markdown 的形式存在,而非黑盒式的隐式记忆,实现了从 "prompt" 到 "workspace" 的范式转变。初始架构奠定了本地化、透明可编辑的基础,社区演化则在此之上持续突破 Token 瓶颈,走向更智能的分层检索体系。

相关推荐
渣渣xiong20 小时前
从零开始:前端转型AI agent直到就业第十四天-第十七天
前端·人工智能
逍遥归来20 小时前
窥探Claude Code源码:Context上下文管理机制
人工智能
workflower20 小时前
机器人应用-楼宇室内巡逻
大数据·人工智能·算法·microsoft·机器人·动态规划·享元模式
电子科技圈20 小时前
从进迭时空K3看RISC-V CPU与Imagination GPU协同:如何构建高性能SoC能力
大数据·图像处理·人工智能·嵌入式硬件·边缘计算·智能硬件·risc-v
ZPC821020 小时前
fanuc 机器人通过PR寄存器实现轨迹控制
人工智能·算法·计算机视觉·机器人
阿里云大数据AI技术20 小时前
EMR Serverless Spark 推出 Spark 4.0,加速湖仓架构下的数据处理升级
大数据·人工智能·spark
hERS EOUS20 小时前
Spring Boot + Spring AI快速体验
人工智能·spring boot·spring
JAVA学习通20 小时前
LangChain4j 与 Spring AI 的技术选型深度对比:2026 年 Java AI 工程化实践指南
java·人工智能·spring
机器之心20 小时前
特斯拉开源硬件,中国团队开源大脑!首个具身智能顶配全家桶上线
人工智能·openai
机器之心20 小时前
天塌了,Pro用户用不了Claude Code,除非100美元买Max
人工智能·openai