实测对比:用思源笔记当 AI 知识库 vs 传统 RAG,结果让我意外
我用同一个 AI 助手,分别挂载了思源笔记和传统 RAG 向量库作为知识源,从准确率、响应速度、上下文完整性等多个维度做了实测对比。结论可能和你想的不一样。
写在前面
最近在折腾 AI 个人知识库的方案。需求很简单:让 AI 能读懂我的笔记,然后基于我的笔记回答问题。
市面上主流的方案是传统的 RAG(检索增强生成)路线:把文档切块、嵌入向量、存进向量数据库,查询时做语义检索,再喂给大模型生成回答。
但作为一个用了好几年思源笔记的人,我一直在想:能不能直接让 AI 读我的思源笔记?
于是我做了一个实验——用同一个 AI 助手,分别挂载了两种知识源,跑了相同的查询任务,把结果放在一起对比。
先说结论

一句话总结:思源笔记方案准确率碾压,但速度慢一截;传统 RAG 速度快但容易"答非所问"。
下面展开说说。
什么是传统 RAG?它的问题在哪
传统 RAG 的流程是这样的:
原始文档 → 切块(chunking) → 嵌入(embedding) → 向量数据库 查询时:问题 → 向量检索 → 拼接片段 → 大模型生成回答
看起来很完美,实际用起来有几个痛点:
1. 分块切断上下文
文档被切成 500-1000 字的片段后,很多关键信息被拦腰截断。比如一篇笔记里"系统建模"的完整流程被切成两半,AI 只拿到了第三步和第四步,回答自然不完整。
2. 语义漂移
向量检索是基于"语义相似度"的,但它经常召回语义相近但内容不相关的片段。比如你搜"成功学",它可能给你返回一堆"心理学"的内容——语义确实近,但完全不是你要的。
3. 格式全部丢失
你笔记里的 Mermaid 流程图、Markdown 表格、层级标题、代码块……切块之后全部变成纯文本碎片。那些精心整理的结构化信息,在向量检索面前一文不值。
4. 嵌入模型的中文能力参差不齐
很多嵌入模型是英文优先的,中文语义理解不够精准,导致检索质量打折扣。
思源笔记方案是怎么做的
思路很直接:利用思源笔记的 API,让 AI 直接查询和读取笔记内容。
具体流程:
用户提问 → AI 生成 SQL/API 查询 → 思源笔记返回完整文档块 → AI 基于完整内容回答
关键技术点:
通过 fullTextSearchBlock 做全文搜索,快速定位相关文档
通过 SQL 查询(SELECT ... WHERE root_id = '...')按文档 ID 聚合所有块,拿到完整文档
利用思源的文档树结构,保留"笔记本 → 文档 → 子文档"的层级关系
Markdown 格式直接返回,表格、代码、引用块都完好
实测对比:同一个问题,两种知识源
我用了一个真实的查询案例来对比。我的思源笔记里有一个「modelica系统建模仿真课程」的笔记本,里面有接口定义、组件原理、动力学方程、流量方程等完整的课程笔记。
测试问题:"给出一个完整的 Modelica 建模案例"
传统 RAG 的回答:
返回了 3-4 个文本片段
每个片段大约 500 字
动力学方程被切块切断,只看到一半
表格变成了乱序的纯文本
缺少完整的模型代码
思源笔记的回答:
AI 通过 SQL 查询拿到了完整的溢流阀建模文档
返回了包含接口定义、组件参数表、完整方程推导、完整 Modelica 代码的完整案例
表格格式完好,代码块高亮正确
甚至连文档里的层级结构都保留了
差距非常明显。
准确率对比:为什么思源笔记接近 100%
思源笔记方案准确率高的核心原因是:你检索的是你自己整理过的、结构化的笔记。
具体来说:
内容是你认可的 — 笔记是你亲手写的或者筛选过的,不存在"脏数据"
结构是完整的 — 文档有标题层级、标签、引用关系,AI 可以利用这些结构信息
不存在分块损失 — 通过 root_id 聚合拿到的是完整文档,不是碎片
格式是保留的 — Markdown 原样返回,表格、代码、公式都不变形
传统 RAG 的准确率问题主要来自:
向量检索的语义漂移
分块导致的上下文丢失
嵌入模型对中文的理解偏差
无法利用文档的结构信息
响应速度对比:思源笔记的短板
坦率说,思源笔记方案在速度上确实不如传统 RAG。
我的实测数据:

慢在哪?
需要多次查询 — 搜到关键词后,还要按 root_id 聚合完整文档,可能要来回 5-7 次 API 调用
没有预计算索引 — 每次都是实时查库,不像向量数据库有预建的索引
分页限制 — 大文档需要 LIMIT/OFFSET 分页读取,多次往返
关键词匹配而非语义检索 — 全文搜索是精确匹配,不像向量检索能一步到位
各自适合什么场景
思源笔记方案更适合:
个人知识管理 — 你自己的笔记库,几百到几千篇的量级
结构化内容 — 笔记有清晰的标题层级、标签、引用关系
需要完整上下文 — 比如查一个完整的建模案例、一套完整的方法论
格式敏感 — 内容包含表格、代码、公式、流程图
信任度要求高 — 你不希望 AI 基于不确定的来源胡说八道
传统 RAG 更适合:
大规模知识库 — 几万到几十万篇文档
非结构化语料 — 网页、PDF、合同等原始文档
需要快速响应 — 对话式应用,用户等不了几十秒
多源聚合 — 需要同时检索多个来源的内容
一个更优的混合方案
用了两种方案之后,我觉得最好的方案其实是混合架构:
思源笔记(知识源 + 结构化存储)
↓
定期导出 / 实时同步
↓
向量数据库(ChromaDB / Milvus,预计算索引)
↓
AI 查询时:向量检索(快) + 思源原文验证(准)
核心思路:
思源笔记作为"真相来源" — 你的笔记是最终的、可信的知识源
向量数据库作为"加速层" — 预计算 embedding,提供快速检索
查询时双重验证 — 先用向量检索快速定位,再回思源拿完整原文确认
这样既保留了思源笔记的准确性和完整性,又获得了向量检索的速度优势。
给想折腾的同学一些建议
先整理好你的笔记 — 不管用哪种方案,知识库的质量取决于你笔记的质量。垃圾进,垃圾出。
给笔记加标签和层级 — 思源笔记的文档树和标签系统不是摆设,结构化程度越高,AI 检索越准。
从小规模开始 — 先拿你最常用的几十篇笔记试试,别一上来就导入几百 GB 的文档。
关注思源的语义搜索 — 如果你开了 AI 功能,semanticSearchBlock 可以提供类似向量检索的效果,速度比 SQL 聚合快。
定期备份 — 知识库是你长期积累的资产,一定要做好备份。
总结
思源笔记当 AI 知识库,准确率碾压传统 RAG,上下文完整性遥遥领先,维护成本几乎为零(因为笔记你本来就在记)。代价是响应速度慢一些,查询需要多次 API 调用。
对于个人知识管理场景,如果你的笔记量在几百到几千篇,思源笔记方案的体验其实比传统 RAG 更好。它不是万能的,但在"让 AI 真正读懂你的笔记"这件事上,它做到了传统 RAG 做不到的事情。
最后说一句:最好的知识库,是你愿意持续往里写东西的那个。工具只是手段,持续积累才是核心。
本文基于实测对比撰写,测试环境为 SiYuan v3.7.x + AI Agent 框架。如有疑问欢迎评论区交流。
