用 AI 助理最头疼的问题:它不记得你。每次对话都是从零开始,上次说的偏好、做过的决定、踩过的坑,它全忘了。
我用 OpenClaw 搭了一套记忆系统,运行一个月,效果不错。分享一下架构设计。
核心问题
AI 助理的记忆问题本质是三个层次:
- 短期记忆:今天聊了什么?做了什么决定?
- 中期记忆:这周/这个月的重要事项?
- 长期记忆:用户的偏好、习惯、业务背景?
什么是 Embedding(向量嵌入)
Embedding 是把文字转换成「数字向量」的技术。
一段文字 → 数学模型 → 一串数字(向量)
"花生医院的私密科" → [0.23, -0.45, 0.78, ...]
"产后修复服务" → [0.22, -0.44, 0.79, ...]
相似含义的文本,向量在数学空间里距离更近。
OpenClaw 里的 Embedding 架构
用户查询 ("花生医院竞品")
↓
nomic-embed-text(本地 Ollama)
↓
生成查询向量 [0.12, -0.33, ...]
↓
向量数据库(Ollama 内置)
↓
计算向量距离,找出最相似的记忆文件
↓
返回结果
关键组件
模型:nomic-embed-text
- 由 Nomic AI 提供
- 向量维度:768维
- 大小:274MB(极小,本地运行无压力)
本地运行(Ollama)
- 模型跑在本地(MacBook Air M1 就能跑)
- 不需要 API 调用,不花钱
- 响应快(~430ms),隐私安全
为什么选 nomic-embed-text
- 免费:不需要 API 费用
- 本地:数据不出设备,完全隐私
- 够用:对个人助理场景完全满足
实际配置
# Ollama 启动命令:
ollama pull nomic-embed-text
# 验证是否运行正常:
curl http://127.0.0.1:11434/api/tags
# 返回包含 nomic-embed-text 即为正常
局限性
- 向量维度有限:768维,对非常长的文档会丢失一些细节
- 没有精确匹配能力:需要用 grep 做关键词精确搜索
- 需要预先嵌入:新写入的文件不会立即可搜索
最佳实践
语义搜索适合:「上次关于XX说了什么」「有没有关于XX的方案」
关键词搜索适合:「2026年4月的日志」「包含’江湾’的所有文件」
总结
OpenClaw 的 memory_search 本质是:用户语义查询 → 本地嵌入模型向量化 → 向量数据库相似度匹配 → 返回相关记忆片段。
nomic-embed-text + Ollama 这套组合,给个人助理提供了免费、私有、足够准确的语义搜索能力。
本文系作者个人实践,方案和结论仅供参考。OpenClaw 版本 2026.5.5,nomic-embed-text via Ollama。