OpenClaw 语义搜索原理:nomic-embed-text 本地向量搜索实战

用 AI 助理最头疼的问题:它不记得你。每次对话都是从零开始,上次说的偏好、做过的决定、踩过的坑,它全忘了。

我用 OpenClaw 搭了一套记忆系统,运行一个月,效果不错。分享一下架构设计。

核心问题

AI 助理的记忆问题本质是三个层次:

  1. 短期记忆:今天聊了什么?做了什么决定?
  2. 中期记忆:这周/这个月的重要事项?
  3. 长期记忆:用户的偏好、习惯、业务背景?

什么是 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 即为正常

局限性

  1. 向量维度有限:768维,对非常长的文档会丢失一些细节
  2. 没有精确匹配能力:需要用 grep 做关键词精确搜索
  3. 需要预先嵌入:新写入的文件不会立即可搜索

最佳实践

语义搜索适合:「上次关于XX说了什么」「有没有关于XX的方案」

关键词搜索适合:「2026年4月的日志」「包含’江湾’的所有文件」

总结

OpenClaw 的 memory_search 本质是:用户语义查询 → 本地嵌入模型向量化 → 向量数据库相似度匹配 → 返回相关记忆片段。

nomic-embed-text + Ollama 这套组合,给个人助理提供了免费、私有、足够准确的语义搜索能力。

本文系作者个人实践,方案和结论仅供参考。OpenClaw 版本 2026.5.5,nomic-embed-text via Ollama。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注