先说一下背景,我用 OpenClaw 已经快两个多月了。它跑在我本地的 Windows 机器上,通过 QQ 跟我对话,帮我做简报、管待办、发微博、查数据。时间一长,记忆文件越来越多,每天的日记、对话记录、项目笔记,加起来十几个文件。
但问题来了:它越来越“健忘”了。
我问它“之前那个微博超话发帖的 API 参数是什么”,它给我一堆日常闲聊的记录。我问“创艺提示符项目的技术栈”,它给我微博热搜的数据。明明信息都在文件里,但就是搜不准。
我知道 OpenClaw 有向量搜索功能,配置文件里也写着 vector.enabled: true。可搜出来的结果,怎么看都不像是真正理解的样子。
问题出在哪里?
经过一番摸索,我发现,要让向量搜索真正跑起来,需要三样东西同时对上号:
- 文本嵌入模型,把文字变成向量的引擎
- 本地推理服务(Ollama),跑模型的运行环境
- 正确的配置连接,让 OpenClaw 找到文本嵌入模型并调用它
我打开 openclaw.json,配置长这样:
{
"memorySearch": {
"store": { "vector": { "enabled": true } },
"provider": "ollama",
"remote": { "baseUrl": "http://localhost:11434" },
"model": "nomic-embed-text"
}
}
配置没问题。那模型呢?终端里跑 ollama list,nomic-embed-text:latest 在列,274 MB,已经拉取了。
Ollama 也在跑。那为什么搜索还是不准?
答案让我意外:模型在,服务在,配置在,但 OpenClaw 启动时 Ollama 没在跑。 向量搜索静默降级到了纯文本搜索,而且没有任何报错。我就这样用了一个星期残废版的记忆系统,自己都不知道。
真实场景:升级前 vs 升级后
场景一:查项目配置细节
我经常需要回忆第二大脑(我的个人管理系统)的具体配置。比如我问:“第二大脑的 API 端点是什么?”
升级前(关键词搜索):返回了大量包含“API”字样的记录,微博超话的 API 调用日志、OpenClaw 配置文件片段、QQ Bot 的消息格式,真正的第二大脑 API 端点记录被埋在了后面。因为那条记录的标题写的是“路由”,内容里没有直接出现“第二大脑 API”这个精确词组。
升级后(向量搜索):第一条就命中了第二大脑系统同步与 API 文档更新的完整记录,提到了 /api/todos、/api/memory-fragments、/api/crawlers/items 等具体端点。因为它理解了“第二大脑的 API 端点”和“wali 项目路由”在语义上是同一件事。
场景二:回忆之前讨论过的技术选型
有天我在想创艺提示符项目(我开发的一个提示词管理工具)要不要换个数据库方案,就问:“之前讨论过 caprompt 的技术栈吗?”
升级前:返回了所有包含“技术栈”或“项目”的条目,包括 OpenClaw 配置、微博发布记录、日常简报,真正关于创艺提示符技术选型的讨论被淹没了。
升级后:直接返回了创艺提示符项目分析的完整记录,包括 Next.js + React + TypeScript + Tailwind CSS + shadcn/ui 的技术栈细节、Prisma + SQLite 的数据库选型、通义千问的 AI 接入方案。因为在 768 维向量空间里,“技术选型”和“技术栈分析”的语义距离很近。
场景三:用中文搜英文内容
我的记忆文件是中英混杂的,中文日记、英文技术笔记、混合配置片段混在一起。
升级前:搜英文关键词找不到中文内容,反之亦然。搜“vector”只返回包含“vector”的条目,完全遗漏了写“向量搜索”的中文笔记。
升级后:搜“向量数据库”,连包含“vector search”配置的英文笔记也能命中。nomic-embed-text 虽然中文能力不如专业中文模型,但在中英混合场景下表现反而更好,因为它把两种语言的相似概念映射到了向量空间的相近区域。
升级过程:三步让记忆活过来
第一步:确保 Ollama 在线
# 确认 Ollama 服务在运行
curl http://localhost:11434/api/tags
# 如果没启动,手动启动
ollama serve
Windows 用户建议把 Ollama 设为开机自启服务。这是最关键的一步:如果 OpenClaw 启动时 Ollama 没在跑,向量搜索会静默降级,不会报任何错。
第二步:拉取嵌入模型
ollama pull nomic-embed-text
274 MB,CPU 就能跑,不需要 GPU。它的任务是把文字变成 768 维向量,让语义相似的文字在向量空间里靠得更近。
第三步:配置 + 重启
在 ~/.openclaw/openclaw.json 中确认:
{
"memorySearch": {
"store": { "vector": { "enabled": true } },
"provider": "ollama",
"remote": { "baseUrl": "http://localhost:11434" },
"model": "nomic-embed-text"
}
}
三个关键点:
provider必须是"ollama"(不是"openai")baseUrl必须指向本地 Ollama(默认http://localhost:11434)model必须跟ollama list输出的名字完全一致,大小写敏感
然后重启:
openclaw gateway restart
重启后 Gateway 会自动重建向量索引,把所有记忆文件重新嵌入。根据文件数量,可能需要几秒到几分钟。
验证:我这样确认它生效了
重启后,我立刻搜了一下“创艺提示符技术栈”。
返回结果的 debug 字段里写着:
"provider": "ollama"
"model": "nomic-embed-text"
这两个字段之前是空的。现在有了它们,说明向量搜索真正在运行。
然后我试了几个之前搜不准的查询:
- 搜“第二大脑 API” → 第一条就命中了 wali 项目的 API 文档更新记录
- 搜“创艺提示符技术栈” → 精准返回了 caprompt 项目分析的完整记录
- 搜“向量数据库” → 找到了包含“vector search”配置的英文笔记
每个查询的相关性都明显提升,不再是“哪个词匹配多就排前面”,而是“这段话跟你要找的东西意思接近”。
为什么选 nomic-embed-text
选 nomic-embed-text 的理由很实际:
- 隐私第一,我的记忆文件里有大量个人信息、API 密钥、对话记录,这些数据不能离开我的机器
- 274 MB 零门槛,不需要 GPU,不需要 Python 环境,
ollama pull一条命令搞定 - 8K 上下文,能处理整篇笔记,而不是只看前 512 个 Token
- 中英混合友好,我的记忆文件中英混杂,nomic 在这种混合场景下表现稳定
踩坑记录:我走过的弯路
坑 1:静默降级(最坑的一个)
OpenClaw 的 memory_search 在向量搜索不可用时,不报错,静默退回文本搜索。我用了整整一周“残废版”记忆系统,完全不知道。
验证方法:每次配置完后,检查搜索结果里的 provider 和 model 字段。如果是空的或者没有 nomic-embed-text,说明向量搜索没生效。
坑 2:模型名大小写敏感
nomic-embed-text 和 Nomic-Embed-Text 是两个不同的模型。必须跟 ollama list 输出完全一致。
坑 3:Ollama 没启动 = 一切白搭
如果 OpenClaw 启动时 Ollama 没在跑,向量搜索会自动降级。更坑的是:即使后来你启动了 Ollama,OpenClaw 也不会自动重连。必须重启 Gateway。
这是 2026.4.7 版本之前的通病,连个警告都没有。2026.4.7 版本开始,向量搜索不可用时会在 openclaw memory status --deep 中显示警告。
坑 4:Ollama 嵌入适配器 bug
2026.4.14 版本修复了一个关键 bug:memorySearch.provider: "ollama" 在某些情况下无法正常调用嵌入接口。如果你用的版本早于 2026.4.14,务必升级。
坑 5:重装后向量索引丢失
重装 OpenClaw 后,之前的向量索引可能已损坏或丢失。重启 Gateway 会自动触发重建,但重建需要时间,文件越多等得越久。
升级清单
- 安装 Ollama:
winget install Ollama.Ollama(Windows)或brew install ollama(macOS) - 拉取嵌入模型:
ollama pull nomic-embed-text - 确认 Ollama 在运行:
curl http://localhost:11434/api/tags - 把 Ollama 设为开机自启服务
- 配置
openclaw.json的 memorySearch 部分 - 确保 OpenClaw 版本 ≥ 2026.4.14(Ollama 嵌入适配器修复)
- 重启 Gateway:
openclaw gateway restart - 测试搜索并验证
provider和model字段
写在最后
升级向量搜索之后,我龙虾的搜索能力大大增强。问它项目细节,它能精确到具体的 API 端点和配置项。问它技术选型,它能回忆起完整的讨论上下文;用中文搜英文笔记,它也能找得到。
这不是什么高大上的技术突破。就是配了一个 274 MB 的模型,让 memory_search 从“逐字匹配”升级到了“理解语义”。
但效果是实实在在的:AI 的记忆终于从数据库查询变成了真正的回忆。
一行配置,一个模型,一次重启。10 分钟搞定。

