2026年6月25日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


我要投稿

从个人知识库到企业级 RAG:我们最终选了 WeKnora

发布日期:2026-06-22 22:35:30 浏览次数: 1520
作者:翻斗花园二蛋

微信搜一搜,关注“翻斗花园二蛋”

推荐语

为什么从极客范儿的个人知识库转向企业级RAG?我们踩过的坑,或许能帮你避开弯路。

核心内容:
1. 个人wiki范式的优雅与局限
2. 升级企业级RAG时遇到的四大核心障碍
3. 最终选择WeKnora的关键考量与价值

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

从个人知识库到企业级 RAG:我们最终选了 WeKnora

工具没有最好的,只有最对的。我们绕了一大圈才真正信这句话——也才敢说「我们的场景,选 WeKnora」。

一个很优雅、但撑不起企业的起点

故事得从一个很「极客」的范式说起。

Andrej Karpathy 提过一个想法,大意是:把大模型当成一个「编译器」——与其每次提问都去向量库里现捞一堆碎片,不如先让 LLM 把原始资料「主动编译」成一座互相链接、可审阅的 Markdown 知识库,平时查询直接读这座编译好的库。

我们照着这个范式搭了第一版内部知识库。它长这样:

  • 原始资料/
     里堆着各种非结构化文档(PDF、Excel、Word);
  • 一条编译链把它们转成 知识库/<垂类>/**/*.md,再由人 + LLM 蒸馏出 摘要/概念/分析/ 这些带反向链接的高信号导航页
  • 查询时用一批 query 工具 直接 grep + 正则去读这些 Markdown,命中关键词就返回。

说实话,这套东西在「自己用」的尺度上非常优雅:知识是可读的、可审计的、互相连结的,没有一坨看不懂的向量黑箱。它把「知识沉淀」这件事做对了。

然后,我们想把它升级成一个企业级知识库——给团队、给业务系统、未来甚至给客户用。

撞墙了。

二、个人 wiki 范式,到底卡在哪

把「自己用的 wiki」搬向「企业级知识库」,几堵墙是同时压过来的:


个人 wiki 范式 vs 企业知识库要求
个人 wiki 范式 vs 企业知识库要求


第一堵:入口错位。 我们的查询入口本质是一套命令行 / IDE agent 工具。它服务开发者很顺手,但企业知识库要的是 REST/OpenAI 兼容 API + Web UI + IM 入口——业务系统没法去调你的 CLI,客户更不可能。

第二堵:召回方式落后。 grep + 正则只认「字面命中」。用户换个说法、用个同义词,就搜不到了。语义检索、关键词检索、重排这套现代 RAG 的标配,我们一样没有。

第三堵:多跳 agent 又慢又脆。 早期我们让模型自己多步推理、自己决定调哪个工具。结果是单次查询经常 50 秒以上,还有接近 9% 的「卡死率」——每问十来次就有一次彻底跑飞。为了兜住它,我们在链路里堆了一层又一层的防御补丁,越堆越脆。

第四堵:企业能力全缺。 多租户、权限隔离、审计日志、可观测、可回归的评测——这些「自己用」时根本不需要、但「对外用」时一个都不能少的东西,统统是空白。

到这里,结论已经很清楚:问题不是哪个 bug 没修好,是范式错配。 个人知识库 wiki 和企业知识库,根本是两种东西。

有意思的是,我们不是唯一一个得出这个结论的人。后面会讲到的一篇选型文里,作者开头就写:「原计划玩一玩 LLM wiki 的概念,用了一下发现还是有些不适应,所以还是想看看传统的 RAG 怎么样。」——英雄所见略同:个人 wiki 范式很美,但它不是企业知识库。

三、选型:先把业界方案铺开

认清这点之后,我们开始正经选型。开源知识库 / RAG 这块,大致就三条路线:


业界方案地图:三条路线
业界方案地图:三条路线


  • 路线 A:一站式开源平台
    ——Dify / FastGPT / RagFlow / MaxKB / WeKnora 这类,开箱即用、自带 UI、自带 API、社区活跃。第一阶段落地首选。
  • 路线 B:自研组件组合
    ——vLLM + 向量库 + Embedding + Reranker + 自己写编排。可控性最强,但要团队持续投入。
  • 路线 C:商业私有化产品
    ——能本地部署,但 license 贵、有供应商锁定、二开受限。对我们这种要深度定制的场景,默认不考虑。

我们的硬约束很明确:数据不能出网(必须私有化本地部署)、要能给业务线调 API、第一阶段的方案到后面别推倒重来。所以主战场就是路线 A 的几个一站式平台。

四、选型没有标准答案——它取决于你的场景

这部分我想认真讲,因为它是整篇文章最值钱的一句话:RAG 选型没有银弹,谁是「最好」完全取决于你的文档形态和使用场景。

我们调研期间,正好读到两篇结论和我们完全不同的实测文章。它们都没错——错的是「以为存在一个放之四海皆准的最优解」。


场景决定选型:三类场景,三种最优解
场景决定选型:三类场景,三种最优解


先看两篇「对照组」:同样在选型,结论却相反

这两篇文章我都从头读到尾,结论都不是 WeKnora——但它们恰恰帮我把自己的场景照清楚了。

  • 参考文一
    (公众号「AI 易用君」)的核心场景是售前招标合同、客户支持文档,刚需写得明明白白:PDF/Word/Excel/PPT 全格式、跨页表格、合并单元格一格不差。在这个标准下他实测四款,选了 RAGFlow(自研 DeepDoc 引擎,复杂表格识别 90%+),还把 WeKnora 列为「不推荐」。他没说错——如果你的痛点是「把排版地狱般的合同表格一格不差抠出来」,RAGFlow 就是更对的工具。
  • 参考文二
    (公众号「幸运兔聊 AI」)讲的是 PageIndex:不切碎、不用向量库,把一份长文档变成「目录树」让 LLM 像翻书一样推理,金融财报基准冲到 98.7%。但它自己泼的冷水最值钱:多文档扩展性差、每次查询都要调 LLM 成本线性涨、中文开源版字符串匹配直接失效、单次查询 3–10 秒不适合高并发。它的决策树里甚至有一句直接替我做了判断——「你有几千上万份文档要做企业知识库 → 传统向量 RAG + 精排」。

两篇都对。只是他们要钉的钉子,不是我们的钉子。 一个在比「谁的解析刀更锋利」,一个在比「谁翻单本书更准」——而我们要的,根本是另一类东西。

我们的场景:一个要长期演进、要对外、要沉淀的「知识中台」

把对照组放回一边,回到我们自己。我们要建的不是「解析一份变态表格的工具」,也不是「翻一本财报的助手」,而是一个会长期生长、要给很多人很多系统共用、还要把知识沉淀成资产的平台。具体拆开看,有四个绕不过去的特征:

一、用的人不是一类,是好几类,而且高频。 同一套知识库,团队同事要在 IM 里随口就问、业务系统要按流程环节自动调 API、将来还要开给客户用。这意味着它必须同时有 IM 入口 + OpenAI 兼容 API + 多租户隔离——任何一个「只能人点 Web UI」或「只能单租户」的方案,第一关就出局。

二、文档不是一份,是一座持续生长的库。 我们的资料是数百篇文档、分散在多个专业垂类(规范标准、经验沉淀、案例库、法规条文、风险库……),而且每周都在变。所以「单文档神器」型的方案天然不适配,我们要的是多库、多垂类、能增量入库、跨库混合检索的底座。专业领域里又全是「编号、术语、金额、专名」,关键词精确命中和向量语义召回缺一不可——这正是混合检索 + rerank 的用武之地。

三、我们骨子里要「沉淀」,不只是「检索完就扔」。 别忘了我们是从 Karpathy 那套「LLM 编译 wiki」一路走来的,对「知识要被提炼成可浏览、可累积的资产,越用越厚」有执念。市面上多数方案只解决「查得到」,不解决「沉得下」——而能把零散文档自动蒸馏成互链知识页这件事,对我们是刚需,不是锦上添花。

四、要私有化,还要可治理。 数据是敏感私域,一个字节都不能出网,模型、向量库、文件存储必须全在内网闭环。同时,将来对客户就得有权限、审计、可观测、可评测——答错了要能定位到底召回了什么,调优了要能回归验证,出了问题要有审计轨迹。

把这四点落成一张硬指标清单,就是我们真正的选型标尺:

我们的刚需
为什么重要
私有化本地部署
数据是敏感私域,一个字节都不能出网
多文档 / 多垂类 + 增量入库
数百篇文档分散在多个专业垂类库,且持续生长
混合检索(向量 + 关键词 + rerank)
专业领域大量「编号、术语、金额、专名」靠关键词精确命中
知识能沉淀(越用越厚)
从「LLM 编译 wiki」一路来的执念:知识要变成资产
内建 Agent + 工具调用
复杂业务问题要多步推理、要调结构化查询
多租户 / 权限 / 审计
团队 + 业务系统 + 未来客户共用,隔离与合规一个都不能少
IM 入口 + OpenAI 兼容 API
同事在 IM 里随口问、业务线改一行 base_url 就能接
可观测 + 可评测
答错了能定位、调优能回归

这张表摆出来,指向的根本不是「一把更锋利的解析刀」,也不是「一个更聪明的翻书器」,而是一个平台级的知识中台。拿它去套路线 A 那几个一站式平台,命中最多的,是 WeKnora

五、为什么是 WeKnora

WeKnora 是腾讯开源的、由 LLM 驱动的模块化知识库框架(后端 Go,前端 Vue3,license 宽松)。它把「文档 → 可检索知识 → 基于知识的问答 / 推理」整条链路做成了一个可自部署的系统。

但真正打动我们的,是它的能力清单几乎是照着我们那张刚需表长出来的,尤其是其中一项——

Wiki Mode:它把我们当初那套「LLM 编译知识库」的范式,直接产品化了。 WeKnora 能让 agent 自动把零散 chunk 蒸馏成互相 [[双链]]、可持续演进的 Markdown 百科页面,还带一张可交互的知识关系图。这不就是我们从 Karpathy 那借来、手搓了一版的东西吗?只不过人家做成了平台能力。理念契合这四个字,分量很重。

其余的能力,也基本逐项对上了刚需表:

  • 混合检索
    :向量 + 关键词(BM25)+ 知识图谱三路并发召回,RRF 融合 + rerank 重排——现代 RAG 标配,全有;
  • 内建 Agent + MCP 工具
    :基于 ReAct 的 agent 引擎,能多步推理、调内置检索工具和外部 MCP 工具,且工具调用带人工审批门控;
  • GraphRAG
    :可选的知识图谱(Neo4j),擅长关系类 / 多跳问题;
  • 多租户 RBAC
    :Owner / Admin / Contributor / Viewer 四级权限,按租户 + 按资源隔离,带审计日志、密钥静态加密;
  • IM 原生
    :企业微信 / 飞书 / Slack / 钉钉等渠道可直接问答;
  • 可观测
    :内建 Langfuse 全链路 trace,能看到「这个问题到底召回了哪些 chunk、模型怎么推理的」;
  • 多模型 + OpenAI 兼容 API
    :本地开源大模型、云厂商都能接,业务线零成本接入;
  • 社区活跃 + 官方维护及时
    :腾讯背书,GitHub 上迭代节奏很快、issue 响应很积极。对一个「要长期押注的底座」来说,「背后有人在认真持续维护」本身就是一条硬指标——后文会讲到,我们提的一个 issue,官方很快就跟进修复了。选型最怕选个半年后没人管的「开源孤儿」,而 WeKnora 在这点上让我们很安心。

一句话:RAGFlow 强在「把一份复杂文档啃干净」,PageIndex 强在「把一本长文档翻明白」,而 WeKnora 强在「做一个能长期演进、能对外、能沉淀的知识中台」。 第三个,才是我们要的。

六、WeKnora 的架构长什么样

挑能力之外,架构是否清晰、能不能 hold 住后续定制,也是我们看重的。WeKnora 是规整的分层架构:


WeKnora 分层架构
WeKnora 分层架构


从上到下:

  • 前端
    (Vue3 SPA):聊天 UI(SSE 流式)、知识库管理、Wiki 浏览器、Agent 设置、存储设置;
  • API 网关
    (Gin + JWT 鉴权)→ Handlers(REST 入口、参数校验)→ Services(业务编排,依赖注入装配)→ Repositories(数据访问抽象,透明支持多种检索后端);
  • 存储层
    :PostgreSQL(关系数据)/ Redis(缓存 + 流 + 会话)/ 向量库(pgvector、Qdrant、Milvus、Weaviate、ES 等多选)/ Neo4j(可选,GraphRAG)/ 对象存储(本地或 S3 系);
  • 外部集成
    :独立的 DocReader 文档解析服务(gRPC,含 OCR / 多模态)、LLM 推理、MCP 工具沙箱、Langfuse。

这套分层的好处是:向量库、图数据库、对象存储、LLM 全是可插拔的。我们要私有化,就把向量库放成 PostgreSQL(pgvector)、文件存本地、模型全指向内网自部署的开源大模型——不依赖任何外部服务,数据闭环。

七、检索的真相:不是「换个向量模型」那么简单

很多人以为 RAG 效果靠的是「选个好向量模型」。在 WeKnora 里真正跑下来,召回是一条 5 段流水线,每一段都可能是瓶颈:


WeKnora 混合检索 5 段链路
WeKnora 混合检索 5 段链路


  1. 查询理解
    :把「它的赔付是多少?」结合上文改写成完整问题,做意图分类、必要时多模态描述。这一步对命中率的影响,常常比换向量模型还大;
  2. 并行三路召回
    :向量(语义)+ 关键词(BM25)+ 图谱(实体/关系)并发 fan-out,召回不足时还会自动做查询扩展;
  3. RRF 融合
    :用排名而非原始分数融合多路结果,免疫不同引擎的量纲差异;
  4. rerank 重排
    :cross-encoder 精排,这一步要单独配模型;
  5. 8 步合并
    :child→parent 上下文还原、重叠/重复 chunk 合并去重。

这里藏着一个中文专属的坑,也是我们花最大力气填的:PostgreSQL 的全文检索默认没有中文分词——它会把整句话当成一个 token,关键词召回这条腿在中文场景下直接瘸掉。专业领域里大量「编号、术语、金额、专名」靠的就是关键词精确命中,这条腿不修好,基础问答的正确率上不去。这是私有化部署时一定要专门处理的一件事。

八、我们真实落地中踩的坑(脱敏版)

光看功能表是选型,真正的功夫在落地。挑几个最有代表性的,都是「文档结构高度规范的专业领域」会撞上的通用问题。

坑一:分级标准类文档,必须让 chunk 自带「标题面包屑」

有一类「按某条专业标准判定等级」的问题,系统一直答错一级

排查到根上:这类分级文档是深层嵌套标题结构(X 级 → X.Y 条款系列 → 第 N 项)。按固定长度切分后,「第 N 项」所在的那个 chunk 丢掉了它头上「X 级」这个标题上下文——检索和大模型都不知道这一项到底属于几级。

修法是改分块器,让每个 chunk 自动带上它完整的标题路径

# 《XX 分级标准》 ## 5、等级分级 ### 5.9 九级 #### 5.9.2 九级条款系列 ... 第 23 项 ...

这样这个 chunk 既更容易被检索到(向量里带了「九级」的语义),又自带等级信息(模型一眼看懂归哪级)。这一步把分块从「按句子递归切」升级到了「结构感知 + 目录路径」的工业级做法。

顺带一提:父子分块解决不了这个问题——它只在检索后补上下文,不改变「召回了哪个 chunk」。把标题写进 chunk 本身,才是根治。

这里要替 WeKnora 官方说句公道话。我们把这个「深层嵌套标题被切散」的问题连同修复思路,给官方提了个 issue(#1674[1])——结果响应非常快,官方很快就跟进修复了。对一个开源还不到一年的项目来说,维护能这么及时、社区这么活跃,本身就是一个被低估的加分项:选型时最怕「开源 < 1 年、长期维护没人管」的风险,而这次实打实的交互,让我们对长期押注它多了一分底气。腾讯在这个项目上的投入和响应速度,确实诚意十足。

坑二:多版本规范的「版本歧义」,靠生成层兜底

同一份核心规范有多个年份的版本,文本 99% 雷同。向量召回时,几个版本的分数全挤在 0.97~0.99,向量层和 rerank 都分不开它们。这是检索能力的物理边界,硬调参没用。

解法是在生成层加一条「版本守卫」:问到的版本确在检索结果里 → 直接肯定「依据实际检索到的 XX 版」;只有真缺失 → 才声明「未检索到 XX 版,以下基于实际的 YY 版」。绝不照抄用户给的版本号、绝不臆造一个不存在的版本——这是对外使用的安全底线。

坑三:评测时我自己摆了两个乌龙

为了量化检索质量,我们冻结了一套「黄金题集」做回归。过程中我踩了两个测量 bug,一度得出完全相反的错误结论,这两条特别值得记:

  • 乌龙 1:消费检索结果必须先按 score 排序。
     平台返回的引用数组不保证按相关性降序。第一版评测忘了排序,拿「chunk 顺序」当「相关性排名」,于是冤枉了 rerank「把正确文档往下压」,差点把 rerank 关掉。修了排序后真相反转:rerank 工作得很好,检索其实已达企业级。
  • 乌龙 2:黄金集别死盯文件名。
     用标题子串硬匹配,结果系统检回了同样相关、甚至更对的邻居文档却被判为 miss,人为压低了分数,还会诱导你「为这几道题专门调参」——那就是过拟合。

修正之后,检索指标稳定落在企业级区间(R@5 ≈ 0.81、R@10 ≈ 0.87)。方法论比分数更值钱:消费检索结果先按 score 排、黄金集别死盯标题、调参别盯着固定题库涨分。

落地形态:4+1 智能体 + 一个聚合编排器

最终我们没有用「一个万能 agent」,而是按业务环节拆成多个 per-scenario agent + 一个通用问答 agent


我们的落地形态:4+1 智能体
我们的落地形态:4+1 智能体


  • 每个业务 agent 输入相同(一份业务工单),差异只在「判断维度」和「输出格式」,各自的 system prompt 固化了规范、输出模板和反编造契约
  • 调用方先把一份工单拆成多个聚焦子查询(每一面锁定一类权威源),各自检索后合并去重再综合生成——这一步根治了「整块塞进去检索会失焦」的问题;
  • 还有一类「全国各地口径对比」的聚合题,单次向量召回只覆盖到约 16% 的地区。这类题不硬塞 RAG,而是走一个聚合编排器显式遍历,覆盖率拉到 100%。

效果(都是实测,不是自评):基础检索题 8 道里 7 道优秀;一个刻意构造的复杂「黄金案」4 个业务场景全部达到资深业务人员水平、无真实幻觉;针对提示注入 / 逼编数字 / 诱导造假等 6 类攻击各打 5 次,30/30 全防住

一个反直觉的结论:很多「检索调参」是低 ROI 的

最后这条想单独拎出来。业界总说重要的那些旋钮——chunk size、关键词权重、GraphRAG、Wiki、查询扩展——在我们这个精确条款问答场景里,逐一对照实验下来,大多无用甚至有害

  • GraphRAG / Wiki 我们最后都关了
    。注意,这不是说它们不好——GraphRAG 对「关系 / 多跳」问题确实有价值,Wiki 对「知识沉淀给人浏览」很有用。只是在「精确查一条规范」这个具体场景里,它们对召回是负收益或零贡献,还白白增加 LLM 开销;
  • 真正决定质量的是四件朴素的事:干净的检索范围(只查本库、不跨库污染)、受控的推理模式强反幻觉 + 防注入的提示工程完整的数据

把一堆「听起来很高级」的功能一个个证伪,省下的才是真金白银。别凭感觉堆功能,让评测数据决定开关。

九、诚实的边界:什么时候别选 WeKnora

写选型文最怕变成软文。所以这一节专门讲它的边界——也是回扣开头那两篇参考文:

  • 如果你的核心刚需是「复杂表格 / 全格式精准解析」
    (招标合同、财报报表那种排版地狱)——去看 RAGFlow,它的 DeepDoc 在这件事上更强(参考文一的结论是对的);
  • 如果你只是要问几份又长又结构化的单文档
    (财报、招股书、长合同)——PageIndex 那条「目录树 + LLM 推理」的路线可能更精准、更可溯源(参考文二的场景);
  • 如果你追求极低的单次查询延迟
    ——本地大模型 + 完整 RAG 链路下,复杂业务报告单次生成可能要几十秒,更适合异步 / 批处理,不适合做实时搜索框;
  • GraphRAG / Wiki 不是免费午餐
    ——它们强依赖 schema 质量,schema 烂反而是噪声源,且每个 chunk 都要过 LLM,文档量大要算 token 账。

WeKnora 真正的甜区,是**「多文档、要私有化、要沉淀知识、要对外(多租户 + IM + API)、还想要 Agent 能力」的企业知识中台**——这恰好就是我们的场景。

写在最后

复盘整件事,我们其实走了一条不算冤枉的弯路:

先用 Karpathy 的「LLM as Compiler」范式,亲手搓了一座个人知识 wiki,把「知识要被编译、被沉淀」这件事想明白了;再撞上企业级的真实门槛,才知道这套范式撑不起对外的载荷;最后在选型里发现,WeKnora 把我们当初那套手搓的理念,做成了一个带企业能力的平台。

变的是承载知识的工具,不变的是「把知识编译、沉淀下来」的那个念头。 从个人 wiki 到企业知识中台,WeKnora 刚好接住了这个念头——但前提是,你的场景真的需要一个「中台」,而不是一把更锋利的「解析刀」或「翻书器」。

选型没有银弹。先想清楚自己要钉的是哪颗钉子,再去挑锤子。#WeKnora知识分享季 


参考阅读:

  • 《我试了 4 个开源知识库(FastGPT、WeKnora、RAGFlow、Dify),最后选了一个最难装的》—— 公众号「AI 易用君」(场景:复杂表格解析,结论选 RAGFlow,可作对照)
  • 《PageIndex 实战:抛弃向量库的新一代 RAG,长文档检索准确率冲到 98.7%》—— 公众号「幸运兔聊 AI」(场景:单份长文档,另一条技术路线)
  • WeKnora 开源仓库:github.com/Tencent/WeKnora

本文已脱敏:隐去了具体行业身份、内网地址、账号、模型与系统标识;技术结论、踩坑过程与实测比例均来自真实工程记录。

引用链接

[1] https://github.com/Tencent/WeKnora/issues/1674

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询