OpenClaw本地知识库搭建完全指南

J.sky
DUET 「协奏·人与AI共创,互相启发」
8 分钟阅读

每次都要重复解释自己的偏好?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)

  1. 向量化:把文字转换成一段数字(向量/embedding)

    • “狗” → [0.1, -0.3, 0.8, …]
    • “猫” → [0.1, -0.2, 0.7, …] # 和”狗”很接近
    • “汽车” → [0.9, 0.1, -0.2, …] # 和”狗”距离远
  2. 语义理解:向量接近的词,意思也接近

    • “如何安装docker” → 向量A
    • “docker setup教程” → 向量B
    • 向量A和B很接近,所以能匹配上

优点

  • 能理解语义(“安装”和”setup”是一回事)
  • 支持自然语言提问
  • 跨语言搜索

结合关键词搜索 + 向量搜索的优势。

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 索引方式

  1. 分块:把 MEMORY.md 和 memory/*.md 切成小块(约400 tokens)
  2. 重叠:80 tokens 重叠(保证上下文连续)
  3. 存储:存入 SQLite + FTS5 全文索引
  4. 自动更新:文件变化自动触发重新索引

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": [
          "~/笔记/我的笔记",
          "~/笔记/技术文档",
          "~/笔记/项目文档"
        ]
      }
    }
  }
}

工作原理

  1. OpenClaw 会扫描这些目录
  2. 对所有 .md 文件做向量 embedding
  3. 存入 SQLite 数据库
  4. 搜索时从数据库检索

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 会自动:

  1. 分析问题
  2. 调用 memory_search 检索知识库
  3. 找到相关内容
  4. 结合上下文回答

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轻量级数据库,我们当前使用
BuiltinOpenClaw 默认记忆后端
extraPaths配置要索引哪些目录
RAG检索增强生成,让AI结合知识库回答

推荐方案

  1. 用 Obsidian 写笔记
  2. 配置 extraPaths 指向笔记目录
  3. 用 Builtin 向量搜索
  4. 搞定!

文档创建:2026-04-08 基于 OpenClaw 2026.4.8 版本