OpenClaw 知识库搭建:把私有文档喂给 Kimi 做检索增强(RAG 思路)
AI先给结论:OpenClaw 接好 Kimi 后,最有价值的一步不是再写工作流,而是给它一个「知识库」——把你自己的文档、代码、笔记喂进去,让 Kimi 在回答前先检索、再生成(业内叫检索增强,RAG)。这样做既不依赖把整库硬塞进长上下文(贵且慢),又能让 Kimi 基于你的私有资料回答,而不是凭空编。
一、为什么需要知识库 / 检索增强
- 长上下文的代价:D9 讲过,长上下文每次请求都携带全文,资料越大越烧钱。把几 MB 的资料每次都发,纯属浪费。
- 私有数据不外泄:把敏感资料传公网向量库有风险;本地检索、只把「相关片段」发给 Kimi,暴露面小得多。
- 回答更准:先检索出最相关的几段,再让 Kimi 基于这些片段作答,比让它从记忆里硬猜靠谱。
二、RAG 的极简思路(不堆术语)
检索增强本质就四步,不用被名词吓住:
- 切块:把一份长文档按语义切成小段(一段几百字),太大检索不精准,太小丢上下文。
- 建索引:给每块一个可检索的索引——最简单的用文件名/关键词,进阶的用向量(语义相似度)。
- 检索:用户提问时,从索引里挑出最相关的 topN 段。
- 拼 prompt:把 topN 段和用户问题一起发给 Kimi,让它「基于以下资料回答」。
关键只有一句:发给 Kimi 的,永远只是「和问题相关的那几段」,不是全库。
三、三种落地档位(按资料量选)
| 档位 | 适合 | 做法 | 成本 |
|---|---|---|---|
| 档1:长上下文直喂 | 资料很小(几 MB 内、几十篇) | 提问时把相关文件直接随 prompt 发,不建索引 | 低,但资料变大就崩 |
| 档2:关键词/文件名检索 | 中等资料、本地优先 | OpenClaw 本地用 grep/文件名匹配挑片段,再发 Kimi | 极低,零额外服务 |
| 档3:向量数据库 RAG | 大库(上千文档) | 用 Chroma / FAISS / 腾讯云向量等建语义索引,检索 topN | 中,需跑一个向量服务 |
绝大多数个人站、小团队,档2 就够用:资料不大,本地按文件名/关键词检索已经能把正确片段挑出来,还不用把数据传出去。
四、用 OpenClaw 工作流串起来(通用步骤)
具体插件名各 OpenClaw 版本不同,以你所用版本官方文档为准,这里只给通用链路:
- 触发:用户提问或一个定时任务(比如每天摘要你的笔记)。
- 检索步骤:调用本地检索 / 向量库查询,拿到 topN 片段(这一步的「检索器」可能是脚本、HTTP 请求或某个插件)。
- 拼 prompt:把片段 + 用户问题合成一段,发给 D5 配好的 Kimi。
- 生成 + 输出:Kimi 基于资料作答,结果再走 D10 的 webhook 推到群里。
呼应 D5:Kimi 的 Key 走环境变量;这里检索服务的路径/密钥也只引用变量名,别明文写死。
五、五个常见坑
| 坑 | 原因 | 规避 |
|---|---|---|
| 切块太大/太小 | 大则检索不精准,小则丢上下文 | 单段 300~800 字,按标题/空行切 |
| 检索不准 | 关键词没命中、向量粒度差 | 先小步验证:问一个问题看挑出的片段对不对 |
| 隐私外泄 | 敏感资料传公网向量库 | 优先本地检索(档2),敏感库不上公网 |
| token 成本失控 | 每次发太多片段 | 限制 topN(如 top3~5),只发最相关 |
| 版本插件差异 | 各 OpenClaw 检索/向量插件命名不同 | 以你所用版本官方文档为准,本文只给思路 |
六、FAQ
Q:必须上向量数据库吗? 不一定。资料小就档1/档2,只有资料大到本地检索吃力才上向量库。先别一上来就搭 Chroma。
Q:资料存在哪? 本地文件、笔记目录、代码仓库都行。重点是能被 OpenClaw 读取和检索,路径走变量配置。
Q:和 D5 的 Key 管理什么关系? D5 负责 Kimi 的 Key;本篇的检索器配置是另一类设置,同样走环境变量,别混在一起明文写。
Q:检索插件叫什么? 各 OpenClaw 版本命名不同(可能叫「检索」「知识库」「向量」等),以你所用版本官方文档为准,本文只给通用四步。
小结
OpenClaw + Kimi 的真正闭环,是「搭起来(旗舰教程)→ 配 Key(D5)→ 日常用(D10 推群)→ 给记忆(本篇知识库)」。知识库不用一上来就上向量库,本地检索 + 只发相关片段给 Kimi 对个人和小团队最稳最省。先把「切块 → 检索 topN → 拼 prompt → Kimi 生成」这条链路在小资料上跑通,再按需升级到向量库。具体插件名与字段,回到官方文档按版本照做最稳。