ClawMem 是 Sentō 自带的持久记忆层。它索引你智能体的工作区(~/workspace/),让智能体对自己的笔记、过去的对话、你加进来的文件做快速检索。
没有 ClawMem,你的智能体每次对话都从零开始。有它,它能记得你们上周聊了什么。
索引什么
默认情况下,ClawMem 索引:
~/workspace/CLAUDE.md—— 智能体的身份和规则~/workspace/memory/**/*.md—— 它对你学到的一切~/workspace/里任何智能体被告知要记住的东西
它不索引 .openclaw/、node_modules/ 或隐藏目录 —— 这些明确排除。
搜索怎么工作
ClawMem 跑两种互补的检索方法:
- BM25 —— 经典关键词搜索。快,零依赖。
- Gemini embeddings(可选)—— 语义 / 向量搜索。需要免费的 Gemini API key(在
sento init时或之后通过sento config配置)。
跳过 Gemini,你就只有关键词搜索。这对大多数智能体也够用 —— 整个工作区通常是几十到几百个小的 Markdown 文件,不是语料库。
写入记忆
智能体在你让它记时自己写入记忆:
"记住我喜欢简洁的回答"
它在 ~/workspace/memory/ 下创建或更新一个文件,按类型分类(用户档案、反馈、项目上下文、参考)。文件系统就是记忆 —— 没有数据库,没有远程服务。
读取记忆
每个新回合,ClawMem 跑一次快速检索,把最相关的记忆条目注入到智能体的上下文里。智能体看到它们就像看到任何其他 tool result 一样,可以在回应里使用。
为什么不用向量数据库
三个原因:
- 零 setup 成本。 ClawMem 就是你智能体工作区里的一些文件。向量数据库是个服务器。
- 可审计。 你可以用
cat读你智能体的记忆。没有不透明的 embedding 空间。 - 可移植。 记忆跟着智能体走。把工作区克隆到新主机,记忆也跟过去了。
什么时候可能需要更多
如果你的智能体最终索引了几千个文件(比如一个完整的代码库),BM25 还能用但语义搜索更有价值。把 Gemini 连上做 embeddings —— 在合理的速率限制内是免费的。
文件
~/workspace/memory/—— 整棵记忆树~/workspace/memory/MEMORY.md—— 索引 / 摘要;智能体自己维护它- 每个记忆一个 Markdown 文件,frontmatter 声明
type: user | feedback | project | reference