拆解 OpenClaw 架构(四):70% 向量 + 30% 关键词,一套生产级记忆检索引擎¶
Ch01.1064 拆解 OpenClaw 架构(四):70% 向量 + 30% 关键词,一套生产级记忆检索引擎¶
📊 Level ⭐⭐ | 5.9KB |
entities/拆解-openclaw-架构四70-向量-30-关键词一套生产级记忆检索引擎.md
拆解 OpenClaw 架构(四):70% 向量 + 30% 关键词,一套生产级记忆检索引擎¶
来源: 科技充电站
发布日期: 2026-03-01
原文链接: https://mp.weixin.qq.com/s/t4OzcK0zHh3Toxs5V6EQQg
AI 时代,有两种行为:
一种,活在别人的评测里,把模型的强当自己的强,痴人说梦;
另一种,活在真实的实战里,用最顶级的 AI,武装自己。
前者在噪音里坐享"技术平权",后者在 疼痛中完成"自我进化"。
朋友们好,我是行小招。
这是 OpenClaw 深度技术解析系列的第四篇。前三篇我们拆了消息流水线、人格系统和 Agent Runner,今天聊 Memory,也就是 OpenClaw 的记忆系统。
上篇结尾我提到,OpenClaw 的记忆不是传统 RAG,而是一套完整的 IR 工程。写这篇之前我其实有点犹豫,因为"记忆"这个词太容易让人想到向量数据库、Embedding、语义检索这套标准叙事。
但读完 OpenClaw 的记忆模块源码后,我发现这套系统最有意思的地方根本不在检索算法,而在一个更底层的设计哲学。
先说结论, OpenClaw 的记忆系统不用数据库做主存储 。
所有记忆都是 Markdown 文件,明文存放在 Agent 的工作区目录里。
SQLite?只是一个派生的加速层。你把 SQLite 文件删了,系统会从 Markdown 文件自动重建索引。数据不会丢一个字。
这个设计选择在数据库出身的工程师看来简直是"开历史倒车",但在 AI Agent 的场景下,它有自己的道理。
传统 RAG 把数据藏在不透明的向量数据库里。你知道数据"在里面",但想看看具体存了什么?要写查询;想修改一条记录?要写代码;想追踪某条记忆是什么时候、因为什么事件被存进来的?祝你好运。
OpenClaw 的 Markdown 文件呢?人类可读, cat 一下就能看;Git 可版本化,谁改了什么一目了然; grep 可搜索,不用等索引构建;任何编辑器可编辑,vim、VS Code、甚至 iPhone 备忘录都行。
官方把这叫 "Memory as Documentation" ,跟传统的 "Memory as Database" 形成鲜明对比。
我觉得这个选择背后的逻辑是: 对于 AI Agent 的记忆,可审计性比查询性能重要得多 。
你想想,一个 Agent 替你管日程、写文档、回消息,时间长了它积累的"记忆"里会有你的偏好、你的决策模式、你跟谁聊了什么。这些信息如果藏在一个二进制的向量数据库里,你连看都看不到,更别说审计和修改。但如果它就是一堆 Markdown 文件,放在你能直接访问的目录下,安全感就完全不同了。
Milvus/Zilliz 团队后来把这套记忆架构提取成了一个独立库叫 memsearch ,让任何 Agent 都能用 OpenClaw 风格的记忆系统。一个向量数据库公司主动把"不以向量数据库为中心"的架构做成通用库推广,这本身就说明这个设计思路得到了业内认可。
工作区文件层级:8 个文件各司其职¶
OpenClaw 的记忆不是一个单一的"记忆库",而是一套层级分明的文件体系。每个文件有明确的职责和加载规则:
文件 用途 加载时机
SOUL.md Agent 人格、语气、价值观、边界 每次会话
AGENTS.md 操作指令、启动序列 每次会话
USER.md 用户档案:名字、时区、
→ 原文存档
关联¶
- 相关概念: Harness Engineering