三个月前的一个晚上,我坐在电脑前,对着刚搭好的 AI 知识库输入了第一个问题:「Redis Cluster 的 gossip 协议在节点故障时怎么处理的?」
这个问题的答案我自己写过——一篇 5000 字的专栏文章,就在知识库里。
但检索结果让我愣住了:前三名全是 StackOverflow 的社区回答,第四名是一篇 2023 年的公众号转载,我自己的原创文章排在第七位。
那篇原创是我花了两个周末写的,结构清晰、有源码分析、有压测数据。StackOverflow 那个回答只有 200 字,就说了句「gossip 协议会自动检测并移除故障节点」,聊胜于无。
那一刻我才意识到:技术选型只是搭了个壳,真正决定检索质量的,是你往壳里放了什么、怎么放的。
这半年 AI 知识库相关的讨论,几乎全部集中在向量数据库选型上——Milvus 还是 Qdrant?Embedding 模型用哪个?chunk size 设 512 还是 1024?rerank 要不要加?
这些当然重要,但它们只是 AI 知识库的「硬件」。就像你配了一台顶配电脑,装的操作系统和应用软件全是盗版——跑起来的体验依然一塌糊涂。
我在上篇文章里讲了为什么决定退掉所有 AI 订阅、自建个人知识库。后台收到不少私信,大部分在问向量数据库怎么选、embedding 模型哪个效果好。很少人问我:「码哥,你那些文章放进知识库之前,做了哪些处理?」
说实话,我一开始也没处理。
第一批数据导入时,我把 240 篇文章、几十个 GitHub Discussion 收藏、几百条随手记的笔记一股脑全扔了进去。chunk 策略用了个看起来很合理的 800 字切片,跑了一遍 embedding,觉得大功告成。
然后就有了开头那一幕——检索结果被低质量内容淹没。
这不是向量数据库的问题,不是 embedding 模型的问题。是我自己在入库这一步就做错了。
第一次尝试:全部平权。
240 篇原创、200 多篇收藏文章、几十个 GitHub issue 讨论,全都用同一套参数处理。结果就是:你精心写的深度分析,和一篇你三年前随便收藏的热点文,在向量空间里的「地位」完全一样。
检索系统不知道哪篇是你的心血,哪篇只是你顺手点了个收藏。
第二次尝试:按来源分类。
我在文章上打了标签——「原创」「转载」「社区」。想着标签可以过滤。但实际用起来发现,标签只是给内容加了一个维度,检索的时候你不可能每次都手动筛选标签。而且标签太粗——同样是原创,8000 字的深度专栏和 1000 字的碎碎念,放在一起仍然不公平。
第三次尝试:手动精选。
我决定只放「我认为质量最高」的文章。花了两个晚上手动筛选,最后留下了 60 篇。效果确实好了不少——检索结果精准了很多。但代价也明显:很多「质量一般但内容相关」的信息没了。比如有一次我想查一个 Kafka 的配置参数,那篇收藏的 StackOverflow 回答被筛掉了,我的原创文章又没涉及这个细节——检索结果直接为空。
三次失败让我想明白了一个关键问题:知识库不是收藏夹,不是一个「要么放、要么扔」的二元选择。不同类型的内容应该有不同的定位和权重。
这就是三层结构的起点。

图:三层结构完整视图——每层独立筛选标准与分块策略,三层之间逐级补充
先说一个反直觉的事:这一层不需要筛选。你自己写的东西,全部入库。
筛选标准:写过 = 入库。不用再筛。
这不是偷懒,是策略。原创内容有几个天生的优势:
我现在有 240 篇文章在库里,覆盖 Redis、Kafka、JVM、MySQL、算法、AI、架构设计。每篇按 H2/H3 自然切分,chunk 控制在 800 字左右。一篇文章通常切成 8-12 个 chunk。
这样做有一个额外好处:你写文章时的标题就是天然的关键词索引。当 AI 检索时,H2 标题提供了一层语义锚点——不是靠 embedding 硬算相似度,而是结构本身在辅助检索。
分块策略:结构感知分块。
不要用固定字数一刀切。顺着你的文章结构切——每个 H2 一个 chunk,H2 内容超过 1000 字就按 H3 再切一级。这样做的好处是每个 chunk 都是一个完整的「知识单元」,不会出现一个技术点被拦腰截断的情况。
这一层是我踩完前两个坑之后才加的,也是三层结构里最关键的一层。
具体做法:每天读到的优质文章、论文、技术文档,读完写 200-500 字摘要。不是「收藏」,是「消化后重写」。
筛选标准:三条硬指标——
这三条筛下来,每天收藏的文章能留下来的大概 20% 左右。不是内容太少,是之前收藏得太随意。
摘要的价值不止于「把信息存下来」。最关键的一点:用自己的话重写一遍后,检索时会匹配你自己的表达方式。 你问 AI 知识库一个问题时,embedding 匹配的是语义——你自己写的摘要,用你自己的语言习惯,天然和你提问的方式更接近。
我做过一个小对比:同一个技术问题,直接用原文的 chunk 检索命中率大约在 60%,用我自己写的摘要检索,命中率能到 85% 以上。差距就来自于表达方式的匹配度。
分块策略:模板段落分块。
摘要的长度在 200-500 字,通常是 2-3 段。每段 200 字左右切成一个 chunk。不需要像原创那样按结构切——摘要本身就是精炼过的信息单元。
前两层已经覆盖了你自己的知识产出和消化后的信息。但还有一个空档——你知道自己不懂,但还没系统学过的东西。
这一层放别人写的优质内容:GitHub Discussion 里公认的好方案、StackOverflow 高票回答、Hacker News 上讨论质量很高的帖子。
但筛选必须是最严的,因为外部内容质量方差极大。你收藏的 100 篇里,真正有价值的可能不到 20 篇。
筛选标准:三条硬指标——
社区内容每周不超过 5 篇。宁缺毋滥——一张没有标准的海报墙,早晚变成垃圾堆。
分块策略:Q&A 对分块法。
社区内容有个特点:大部分是问答形式——「有人问了个问题,有人给了个答案」。这种内容不适合按段落切。
我采用 Q&A 对分块法:把问题和回答打包成一个 chunk。如果一个回答有多个方案/步骤,每个方案单独成一个 Q&A 对。chunk 控制在 600 字以内。
这个策略是最近才定型的。之前也是用固定 800 字切,效果很差——问题被切到 chunk A,答案被切到 chunk B,检索时要么匹配到问题、要么匹配到答案,很少同时匹配到两者。
知识库最怕的不是内容少,是内容多而乱。
第一层(原创):持续写,写完就入。 这是你的核心产出,不需要额外的时间成本。写完 → 检查 H2/H3 结构 → 入库。全程不超过 5 分钟。
第二层(摘要):每周 3-5 篇。 不是每天都要写摘要,是读完确认有价值的才写。平均每天不到一篇。关键不是速度,是「读完才写」——这一点我自己花了两三个月才真正养成习惯。很容易陷入「看了标题觉得不错就想先存下来」的模式,这种「先存后看」最后都变成了「存了就忘」。
第三层(社区):每周不超过 5 篇。 这个上限比你想的要低。对于外部精华内容,我给自己定了个规矩:如果一周之内没有在对话中主动引用过这篇文章,就说明它还不够重要,不值得入库。
季度清理。 每三个月做一次内容审计。标准很简单:
删东西比加东西更需要决断力。但不清的代价更大——每次检索都要在过时内容中做一遍相似度计算,浪费算力也稀释精度。
错误一:什么都往里扔。
这是最典型的坑。搭建 AI 知识库的初期,看到什么好文章都想收进来——反正存储不贵。但检索的成本不在存储,在精度稀释。每多一条无关内容,好结果的排名就可能往后掉一位。
错误二:只收集不消化。
用 RSS 订阅、Readwise 这类工具自动导入文章,看起来很「高效」。但 AI 尝到的只是原文的味道,没有你的消化和判断。当你用「自己的话」问问题时,匹配不上「别人的话」写的内容——隔了一层。
错误三:结构混乱。
同一主题的内容分散在不同的目录、不同的笔记工具里。向量检索会帮你搜,但结构化信息(目录层级、标签体系、章节关联)是向量检索永远补不上的维度。建议用目录 + 标签双轨制,让 AI 检索和人工检索互相备份。
错误四:从不清理。
三年前收藏的某框架 v1.0 最佳实践,v3.0 已经完全推翻——但你忘了删。AI 检索时把它排进了前三名,你照着做了半天发现不对。过期内容不是「反正都在那」,是「它在误导你的判断」。
“💬 这四个错你犯过哪个?
评论区说说,码哥猜选 A 的人最多 😂
Q: 三层结构和直接用目录分类有什么区别?
A: 目录分类是静态的——一个文件归属于一个目录。三层结构是动态的——原创、摘要、社区三个层级定义了内容的「信用等级」,在不同场景下动态调整权重。查自己写过的内容时,原创层权重最高;查一个新领域时,社区层补充盲区。这个权重是 AI 检索时实时计算的,不是手动筛选。
Q: 我的文章不够 240 篇,三层结构还适用吗?
A: 适用。三层结构不是按文章数量设计的,是按内容来源和质量等级设计的。哪怕你只有 30 篇原创 + 50 条摘要 + 20 条社区精选,这三层仍然有效——原创是你的知识锚点,摘要帮你消化外部信息,社区补你的盲区。等你有 200 篇的时候再回来看,三层结构不会因为规模变大而崩塌——这是它比「全扔一起」值钱的地方。
Q: 摘要写了但不用 AI 知识库检索,不是白写了?
A: 摘要的价值不止于给 AI 知识库当饲料。写摘要的过程本身就是深层阅读——你用自己的话重新组织一遍别人的内容,这个动作会让你对内容的理解上升一个台阶。即使不用知识库,摘要的习惯也值得保持。我自己很多选题,就是翻看旧摘要时想到的。
Q: 和 Notion 或 Obsidian 的知识库有什么区别?
A: Notion/Obsidian 做的是人工检索的知识库——你记得大致在哪、自己手动找到它。AI 知识库做的是语义检索——你描述你遇到的问题,它帮你找到相关内容。前者依赖你的记忆和组织习惯,后者依赖内容分块和语义匹配。三层结构同时服务两者:好的 H2/H3 结构方便人工浏览,合理的 chunking 策略保证 AI 检索的精度。
到底层,AI 知识库和传统知识库不是在「存量」上竞争,而是在「检索效率」上竞争。传统知识库是你自己建的图书馆,AI 知识库是配了个能听懂人话的图书管理员。三层结构就是给这个管理员配的工作手册——明确告诉他,哪个书架上的书是经典原著、哪些是读书笔记、哪些是别人推荐的参考书。
技术选型选的是图书馆的硬件——书架用什么材料、光照用什么配置。内容组织策略选的是图书管理员的工作方法。硬件决定了上限,工作方法决定了你现在能用到的下限。大部分人的知识库,连下限都没到。