如何通过Nanobot源码学习OpenClaw的Memory架构为?
摘要:【OpenClaw】通过 Nanobot 源码学习架构 (7)Memory 目录【OpenClaw】通过 Nanobot 源码学习架构 (7)Memory0x00 概要0x01 OpenClaw1.1 核心设计理念1.2 双层存储架构(核心
【OpenClaw】通过 Nanobot 源码学习架构---(7)Memory
目录【OpenClaw】通过 Nanobot 源码学习架构---(7)Memory0x00 概要0x01 OpenClaw1.1 核心设计理念1.2 双层存储架构(核心)1.2.1. 短期记忆(每日日志)1.2.2. 长期记忆(精选持久)1.3 记忆写入规则(何时写、写哪里)1.4 检索机制(混合搜索)1.5 关键流程与特性1.6 Claw01.6.1 混合搜索管道 -- 向量 + 关键词 + MMR1.6.2 _auto_recall() -- 自动记忆注入1.7 ZeroClaw1.7.1 记忆系统架构1.7.2 数据流向1.7.3 RAG 集成1.7.4 颜色图例0x02 会话消息2.1 消息记录结构2.2 存储位置2.3 会话状态更新2.4 重要特性2.5 Claw00x03 MemoryStore3.1 两层记忆结构3.1.1 HISTORY.md3.1.2 MEMORY.md3.2 与其他组件的协作3.3 记忆管理方式3.3.1 记忆存储的时机会话压缩(系统驱动/自动写记忆)手动记忆管理3.3.2 记忆读取的时机3.4 记忆整合/会话压缩3.4.1 机制总体流程具体流程3.4.2 示例图3.5 代码0x04 SKILL.md4.1 文件内容4.2 文件结构前置元数据正文使用说明4.3 核心作用4.4 使用流程4.5 memory 技能用法拆解4.6 关键补充0x05 相关工具5.1 文件系统工具5.2 _SAVE_MEMORY_TOOL0xFF 参考
0x00 概要
OpenClaw 应该有40万行代码,阅读理解起来难度过大,因此,本系列通过Nanobot来学习 OpenClaw 的特色。
Nanobot是由香港大学数据科学实验室(HKUDS)开源的超轻量级个人 AI 助手框架,定位为"Ultra-Lightweight OpenClaw"。非常适合学习Agent架构。
Memory 是构建复杂 Agent 的关键基础。如果仅依赖 LLM 自带的有限上下文窗口作为短期记忆,Agent 将在跨会话中处于 stateless 的状态,难以维持连贯性。同时,缺乏长期记忆机制也限制了 Agent 自主管理和执行持续性任务的能力。引入额外的 Memory 可以让 Agent 做到存储、检索,并利用历史交互与经验,从而实现更智能和持续的行为。
Nanobot 的记忆系统提供了两层存储方案:频繁访问的重要信息保存在 MEMORY.md 中并始终加载到上下文,而详细的历史事件保存在 HISTORY.md 中可通过搜索访问。然而,实际上的记忆系统还应该包括会话消息,因此记忆系统总体包括如下:
Session messages:当前会话临时存储
HISTORY.md:历史日志文件,记录会话历史事件,用于搜索查询
MEMORY.md:长期记忆文件,存储偏好、项目上下文、关系等重要信息
0x01 OpenClaw
OpenClaw 的记忆机制以 文件即真相(File-First) 为核心,采用 双层 Markdown 落盘存储 + 混合向量检索 + 自动刷新 的工程化设计,彻底解决 Agent 跨会话失忆问题,同时保证透明、可控、可治理。
1.1 核心设计理念
文件是唯一真相源:所有记忆以纯 Markdown 文件存储在本地工作区,模型只 “记住” 写入磁盘的内容,无黑盒向量库。
透明可控:可直接用编辑器查看、编辑、Git 版本管理记忆文件。
持久优先:重要信息必须落盘,不依赖内存,跨会话、重启后不丢失。
分层治理:短期临时信息与长期重要知识分离,避免记忆污染。
模型不会因为你用得更久而变聪明。但围绕它的文件会变得更丰富、更精准、更贴合你的具体需求。
