910 万字个人知识库实战:RAG 和向量库吵翻天,我用一个 SQLite 文件先跑通了
我 39 岁,施工单位上班,业余在搞"一人公司+数字员工团队"。今天盘了一下家底:我的个人知识库 1661 条文档、910 万字(实测),装在一个 80MB 的 SQLite 文件里,检索一次 0.2 秒,零 token 成本。
先说清楚:我不是专业做数据库的。这套东西是实战里长出来的,不是设计出来的。今天把它拆开讲,顺便正面回答一个问题:最近到处在吵的 RAG、向量库,到底要不要上?
背景:一人公司也需要"组织过程资产"
做企业的都知道"组织过程资产"这个词——公司最有价值的核心资产,就是它沉淀下来的知识和数据。一人公司也是公司。我的数字员工团队每天要派单、验收、写稿、复盘,这些过程产出的对话、文档、配置、故障记录,如果只在会话里活着,会话一断就等于没发生过。
所以我给自己定了条铁律:裁定、故障、战果必须落持久层——章程里一行状态、台账里一条详情、知识库里可检索,三处落点缺一不可。
架构:两级存储,文件即真相源
整个体系一句话说清:Markdown 文件是本体,数据库只是索引。
原始层(任意格式,只读归档,不进索引)
└── .chaozuoye_src/ —— 抄来的大厂套件、zip、图片、yaml,字节级镜像
提炼层(统一 Markdown,带 front matter,进索引)
└── notes/ ideas/ summary/ tools/ gongwen/ —— 清单、复盘、拆解、公文
└── kb sync 按内容哈希增量索引 ↓
kb.db(SQLite,3 张表)
kb.db 就三张表:entries(条目全文+路径+内容哈希)、entries_fts(FTS5 全文索引,trigram 分词——按三个字一滑窗切词,中文友好)、sync_map(和印象笔记双向同步的账本,1310 条已映射)。
检索逻辑更简单:查询词 ≥3 个字符走 FTS5 短语匹配,不到 3 字符降级成 LIKE。没有 embedding,没有向量,没有语义层。
实测:这套"土办法"到底够不够用
今天正好做了个实测。我让军师模拟了两个真实使用场景,全程掐表:
场景一:"我要新增一个岗位,agent.md 怎么写、技能怎么定?"——3 次关键词检索(每次 0.17 秒,零 token),依次命中配置 SOP、大厂方法论消化稿、豆包 persona 样例,沿路径指针读到原文,36 秒出完整答案。
场景二:"对比我的团队配置和刚抄来的大厂配置有什么区别?"——2 次检索命中花名册和豆包清单,8 秒出对比结论。
两个场景共同的链路是:关键词检索命中"清单文档"→ 清单里的路径指针 → 读原始文件。检索环节毫秒级、零成本;真正花 token 的是 AI 读文件和组织答案,那是主循环的固定开销,换什么检索方案都省不掉。
正面回答:向量库,上不上?
我的结论:现在不上,但留了触发线。
理由三条:
- 召回率实测够用。关键词检索的短板是语义盲区——文档写"采集攻坚",你搜"爬虫"就 miss。但我的检索者不是固定管道,是个会换词重试的 AI:这次 miss,换"爬取""抓取"再来一轮,单次成本 0.17 秒。今天所有场景都在 3 次迭代内命中;
- 向量层的成本是实打实的。embedding 模型(本地跑或调 API)、切块策略、混合检索的融合排序——每一样都要维护。910 万字听起来多,摊到 1661 条文档,关键词+指针的两级跳转完全罩得住;
- 抖音上说"RAG 没有厂商做得好案例",这话糙但方向不假——RAG 的坑不在检索技术,在知识本身的组织度。我的知识库好用,根基不是 FTS5,是入库纪律:每篇文档带 domain/level/keywords 元数据、清单只放指针不吞原文、提炼层和原始层分离。这些功夫下在数据清洗和组织上,换向量库替代不了。
触发线也立好了:哪天出现"明知库里有、换三轮关键词都搜不到"的真实事故,记入故障台账,就立项上混合检索(关键词+向量双路)。技术储备随时在,但没发生事故之前上,就是过度工程。
往后看:企业级场景怎么办
如果以后做企业的 AI 落地项目,数据量不是我这种量级,还有图片、图纸、文件多模态——那时候方案怎么变?
我的判断:架构不用推倒,加层就行。两级存储、元数据规范、增量哈希同步、检索降级策略,这些全部直接复用;要加的是向量层(语义召回)和对象存储(大文件)两个组件,以及多模态文件的"提炼工序"——图片先过 OCR/描述模型转成文字再进提炼层,和我现在把 zip 套件提炼成清单是同一个动作。
工具齐不齐?检索、同步、沉淀的骨架齐了;缺的是向量检索组件和多模态提炼管道——这两件等到了触发线再建,建的时候今天的每一层都还是地基。
可以抄走的清单
- 文件即真相源:数据库只存索引+哈希,原文永远是人可读的 Markdown,坏了重索引就行;
- 两级存储:原始件只读镜像、提炼文档进索引,中间用路径指针连;
- trigram 分词:SQLite FTS5 自带,中文检索不用装任何插件,查询词 ≥3 字符即可;
- 入库纪律重于检索技术:front matter 元数据+三处落点(章程/台账/知识库),组织度决定召回率;
- 新技术上触发线,不上时间表:有真实事故再立项,没有就记账等着。
素材点:①910 万字/1661 条/80MB 的实测数字;②两次模拟检索的掐表数据;③"换词重试的 AI 就是我的语义层";④IMA 同步通道名存实亡(1310 条印象笔记 vs 3 条 IMA)的诚实自曝;⑤向量库触发线机制。
