OpenClaw本地知识库搭建完全指南
每次都要重复解释自己的偏好?AI 答不上你之前写的笔记?用这个方法,让 AI 真正变成你的”第二大脑”。
一、为什么要知识库?
1.1 问题背景
在使用 AI 助手时,你是否遇到以下情况:
- 每次都要重复说明自己的偏好和背景
- AI 无法回答你之前记录的技术笔记
- 想要一个”第二大脑”,让 AI 能回答你积累的知识
知识库就是解决这些问题的:让 AI 能”记住”并”理解”你积累的文档。
1.2 什么是知识库?
知识库是一个结构化的信息集合,AI 可以从中检索相关内容来回答你的问题。
简单比喻:
- 普通对话:AI 靠”记忆”(上下文)回答
- 知识库:AI 有了”图书馆”,可以查阅你积累的文档
二、搜索技术的演进
2.1 文件系统搜索(最原始)
直接遍历文件夹,找文件名或内容包含关键词的文件。
工作原理:
用户搜索:"安装 docker"
系统:遍历所有 .md 文件,查找包含"安装 docker"的文件
缺点:
- 只能精确匹配
- 搜”安装程序”找不到”如何安装软件”
- 搜”docker setup”找不到”docker 安装”
2.2 关键词搜索(BM25)
搜索引擎使用的技术,如 Elasticsearch、Algolia。
工作原理:
- 统计词频(TF)
- 计算词的重要性(IDF)
- 给文档打分,返回最相关的
优点:比文件系统搜索聪明,能处理同义词
缺点:还是基于关键词,无法理解语义
2.3 向量搜索(语义搜索)
这是革命性的技术突破。
核心概念:向量(Embedding)
-
向量化:把文字转换成一段数字(向量/embedding)
- “狗” → [0.1, -0.3, 0.8, …]
- “猫” → [0.1, -0.2, 0.7, …] # 和”狗”很接近
- “汽车” → [0.9, 0.1, -0.2, …] # 和”狗”距离远
-
语义理解:向量接近的词,意思也接近
- “如何安装docker” → 向量A
- “docker setup教程” → 向量B
- 向量A和B很接近,所以能匹配上
优点:
- 能理解语义(“安装”和”setup”是一回事)
- 支持自然语言提问
- 跨语言搜索
2.4 混合搜索(Hybrid Search)
结合关键词搜索 + 向量搜索的优势。
OpenClaw 默认使用混合搜索:
- 70% 向量权重(语义理解)
- 30% 关键词权重(精确匹配)
三、数据库 vs 文件系统
3.1 为什么需要数据库?
| 维度 | 文件系统 | 数据库 |
|---|---|---|
| 搜索方式 | 遍历文件 | 索引加速 |
| 速度 | 慢(百万文件遍历很慢) | 快(毫秒级) |
| 向量支持 | 无 | 有(向量数据库) |
| 查询能力 | 弱 | 强(复杂查询) |
| 扩展性 | 差 | 好 |
关键点:
- 数据库不是简单的”存文件”,而是提供高效的检索能力
- 向量搜索需要数据库支持(SQLite、PG、MongoDB 等)
3.2 我们的情况
OpenClaw 使用 SQLite 存储向量索引:
- 路径:
~/.openclaw/memory/main.sqlite - 自动管理,无需手动操作
SQLite 的优势:
- 无需安装额外的数据库软件
- 零配置,开箱即用
- 性能足够个人使用
四、OpenClaw 记忆系统详解
4.1 记忆的三个层次
┌─────────────────────────────────────────────────┐
│ 长期记忆 │
│ MEMORY.md(启动时加载) │
└─────────────────────────────────────────────────┘
↑
┌─────────────────────────────────────────────────┐
│ 短期记忆 │
│ memory/YYYY-MM-DD.md(今天+昨天) │
└─────────────────────────────────────────────────┘
↑
┌─────────────────────────────────────────────────┐
│ 对话记忆 │
│ 当前会话的上下文(不断变化) │
└─────────────────────────────────────────────────┘
4.2 记忆文件说明
| 文件 | 作用 | 何时加载 |
|---|---|---|
| MEMORY.md | 长期记忆,重要事实和偏好 | 每次 DM 会话开始 |
| memory/YYYY-MM-DD.md | 每日笔记 | 今天+昨天自动加载 |
| DREAMS.md | 梦境日记(实验性) | 不自动加载 |
4.3 memory_search 工具
AI 可以用两个工具访问记忆:
memory_search("问题") # 语义搜索记忆
memory_get("文件路径") # 读取具体文件
五、Builtin 搜索引擎详解
5.1 什么是 Builtin?
Builtin 是 OpenClaw 内置的默认记忆搜索引擎,专门针对 Markdown 文件优化。
5.2 技术原理
| 技术 | 说明 |
|---|---|
| 存储 | SQLite 数据库(per-agent) |
| 关键词搜索 | FTS5 全文索引 + BM25 评分 |
| 向量搜索 | 可选,需要 API Key |
| 混合搜索 | 关键词 + 向量组合 |
| 中文支持 | CJK trigram 分词 |
5.3 工作流程
搜索查询
↓
SQLite FTS5 全文索引
↓
BM25 算法评分
↓
返回相关结果
5.4 索引方式
- 分块:把 MEMORY.md 和 memory/*.md 切成小块(约400 tokens)
- 重叠:80 tokens 重叠(保证上下文连续)
- 存储:存入 SQLite + FTS5 全文索引
- 自动更新:文件变化自动触发重新索引
5.5 核心特点
- ✅ 开箱即用,不需要额外依赖
- ✅ 速度快(毫秒级响应)
- ✅ 无需 API Key(只用关键词搜索)
- ✅ 支持中文(CJK trigram)
- ✅ 可选向量搜索(需要配置)
5.6 Builtin vs 向量搜索
| 模式 | 需要 API Key | 搜索方式 |
|---|---|---|
| 纯关键词 | ❌ 不需要 | BM25 精确匹配 |
| 向量搜索 | ✅ 需要 | 语义理解 |
| 混合搜索 | ✅ 需要 | 关键词 + 向量组合 |
六、如何搭建本地知识库?
6.1 配置 extraPaths
只需配置 extraPaths:
{
"agents": {
"defaults": {
"memorySearch": {
"extraPaths": [
"~/笔记目录1",
"~/笔记目录2",
"~/技术文档"
]
}
}
}
}
示例(使用别名):
{
"agents": {
"defaults": {
"memorySearch": {
"extraPaths": [
"~/笔记/我的笔记",
"~/笔记/技术文档",
"~/笔记/项目文档"
]
}
}
}
}
工作原理:
- OpenClaw 会扫描这些目录
- 对所有 .md 文件做向量 embedding
- 存入 SQLite 数据库
- 搜索时从数据库检索
6.2 注意事项
- 删除内容:直接从 Obsidian 删除即可,索引会自动忽略
- 修改内容:修改后等待自动刷新,或手动重建索引
- 大文件:超过 10MB 的文件不会被索引
七、日常使用
7.1 AI 如何使用知识库?
当你问我问题时:
用户:Ubuntu 怎么安装 Docker?
↓
OpenClaw 调用 memory_search("Ubuntu 怎么安装 Docker")
↓
在向量数据库中搜索相关文档
↓
找到 ~/技术文档/软件安装/Docker.md
↓
读取文件内容,结合上下文回答
7.2 搜索测试
手动测试搜索:
openclaw memory search "如何安装docker"
7.3 强制重建索引
如果新增文档没被索引:
openclaw memory index --force
八、RAG 是什么?
8.1 RAG 定义
RAG = Retrieval-Augmented Generation(检索增强生成)
简单说:AI 回答问题时,先去知识库检索相关资料,再结合资料生成回答。
用户问题 → 检索知识库 → 把结果给 AI → AI 生成回答
8.2 OpenClaw RAG 特点
| 特点 | 说明 |
|---|---|
| 本地 RAG | 数据不离开电脑,完全隐私 |
| 免费 | 不需要 API Key(基础版) |
| 无缝集成 | 问 AI 就自动搜知识库 |
| 自动搜索 | 不需要手动操作,AI 自动调用 |
8.3 自动搜索 vs 手动搜索
| 方式 | 需要操作 |
|---|---|
| 自动 | ❌ 只需要正常提问,AI 自动检索 |
| 手动 | 需要说”帮我搜索知识库” |
OpenClaw 是自动的!
当你问我问题时,OpenClaw 会自动:
- 分析问题
- 调用 memory_search 检索知识库
- 找到相关内容
- 结合上下文回答
8.4 RAG 搜索流程
1. 你正常提问
↓
2. OpenClaw 自动调用 memory_search
↓
3. 在 SQLite 知识库中检索
↓
4. 找到相关文档片段
↓
5. 把片段 + 问题发给 AI
↓
6. AI 生成回答
九、主流知识库方案对比
9.1 方案对比表
| 方案 | 类型 | 费用 | 部署方式 | 隐私 | 速度 |
|---|---|---|---|---|---|
| OpenClaw Builtin | 本地 RAG | 免费 | 本地 | ✅ 完全隐私 | 快 |
| Notion AI | 云端 AI | 付费 | 云端 | ❌ 上传云端 | 快 |
| Obsidian + Copilot | 本地 AI | 付费 | 本地 | ✅ | 快 |
| 腾讯 ima | 云端 | 免费 | 云端 | ❌ | 快 |
| AnythingLLM | 本地 RAG | 免费 | 本地 | ✅ | 取决于硬件 |
9.2 OpenClaw Builtin 优势
| 优势 | 说明 |
|---|---|
| 免费 | 不需要任何 API Key |
| 隐私 | 数据 100% 本地,不上传云端 |
| 简单 | 不用安装额外软件,配置就行 |
| 快 | SQLite FTS5 毫秒级响应 |
| 集成 | 和 AI 助手无缝集成 |
9.3 不足之处
| 不足 | 说明 |
|---|---|
| 向量搜索需要 API Key | 要语义搜索需要配置 |
| 不适合大型团队 | 个人使用足够 |
| 没有 UI | 只有配置文件 |
9.4 适合人群
| 用户群体 | 推荐方案 |
|---|---|
| 个人用户 | OpenClaw Builtin ✅ |
| 专业用户 | Obsidian + Copilot |
| 企业团队 | Notion AI / 腾讯ima |
十、如何更新知识库?
10.1 自动更新
- 新增的 .md 文件会自动被索引
- 定时任务会定期刷新
10.2 手动更新
# 强制重建整个索引
openclaw memory index --force
十一、整体架构图
┌──────────────────────────────────────────────────────────────┐
│ 用户提问 │
│ "如何安装 OpenClaw?" │
└──────────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────────┐
│ memory_search 工具 │
│ (语义搜索) │
└──────────────────────────────────────────────────────────────┘
↓
┌────────────────────────────────────┐
│ 向量数据库 (SQLite) │
│ ~/.openclaw/memory/main.sqlite │
└────────────────────────────────────┘
↑ │
┌────────────┘ │
│ ↓
┌────────────────────┐ ┌─────────────────────────────────┐
│ extraPaths │ │ 原始 Markdown 文件 │
│ (索引的目录) │ │ │
│ - 笔记/技术资料 │ │ - 技术文档/软件安装/Docker.md │
│ - 笔记/项目A │ │ - 文档/入门指南/xxx.md │
│ - 笔记/项目B │ │ - 文档/学习笔记/xxx.md │
└────────────────────┘ └─────────────────────────────────┘
十二、常见问题
Q1: 为什么需要向量数据库?
答:文件太多时,遍历太慢。向量数据库把文档转成数字(向量),搜索时计算向量距离,毫秒级返回结果。
Q2: 为什么不直接读文件?
答:文件少时可以。但当有几千个文档时,AI 不知道读哪个。向量搜索帮 AI 找到最相关的文件。
Q3: Builtin 够用吗?
答:Builtin 对于个人使用(< 1万文档)完全够用。配置简单,速度快,不需要额外安装。
Q4: Obsidian 和知识库的关系?
Obsidian 是管理 Markdown 文件的工具,知识库是让 AI 能搜索这些文件。两者是互补关系:Obsidian 用来写和看,AI 用来搜索和回答。
Q5: 隐私问题?
答:所有数据都在本地(SQLite 文件),不上传云端。非常适合存储个人笔记、技术文档。
十三、总结
| 概念 | 作用 |
|---|---|
| 向量 | 文字的数字表示,让AI理解语义 |
| 向量数据库 | 存储向量,提供快速搜索 |
| SQLite | 轻量级数据库,我们当前使用 |
| Builtin | OpenClaw 默认记忆后端 |
| extraPaths | 配置要索引哪些目录 |
| RAG | 检索增强生成,让AI结合知识库回答 |
推荐方案:
- 用 Obsidian 写笔记
- 配置 extraPaths 指向笔记目录
- 用 Builtin 向量搜索
- 搞定!
文档创建:2026-04-08 基于 OpenClaw 2026.4.8 版本