企业知识库真正困难的地方,也许不在技术,而在维护

最近又重新研究了一下知识库系统。这一次和之前研究个人知识库不太一样。之前更多是从自己的资料整理出发,想知道能不能把几十个项目、几百 G 的材料整理成一个可以长期调用的个人资料系统。而这一次,更多是结合企业业务场景,尤其是基于 RAGFlow 这类系统,去思考知识库在企业中到底能发挥什么作用。

一开始我以为问题的重点可能还是技术选型。比如到底用普通 RAG,还是用 GraphRAG;到底用向量数据库,还是知识图谱;到底用 RAGFlow,还是换成别的开源系统。但研究到后面,我越来越觉得,技术当然重要,可是它可能不是最根本的问题。真正决定一个企业知识库能不能发挥作用的,可能是知识库数据的全生命周期维护。

这里说的维护,不只是把文件上传进去以后定期更新一下,而是从一开始就要想清楚:哪些文件应该进入知识库,为什么进入,进入以后要被怎样解析、怎样切分、怎样分类、怎样验证,后面又要怎样更新、废弃、重构。甚至可以说,知识库建设的起点,并不是“我有什么资料”,而是“我将来想从知识库里得到什么”。

如果最后考核知识库的标准,是能不能准确获取到我想要的知识内容,那么这个标准其实从一开始就已经决定了知识库应该怎样建设。你想要什么样的答案,就要反过来决定你需要什么样的数据;你需要什么样的数据,就要反过来决定哪些资料应该入库、怎样入库、怎样处理。这样一看,知识库的起点其实就是终点,目标本身也就是原因。

问题也正是在这里变得复杂起来。

有没有可能存在一种万能知识库?也就是说,不需要人类提前规划,不需要先定义业务目标,不需要先想清楚未来要查询什么内容,只要把企业里的所有数据都扔进去,它就能自动变成一个适应各种场景的知识库系统。

从想象上看,这当然很诱人。比如企业日常工作中产生的所有数据,大到项目报告、合同、会议纪要、支撑材料,小到某个人在某个工作场合、某个时间点做了一个很细微的动作,都可以被自动收集起来。然后在知识库前面再放一个“知识库智能体”,由它判断这些数据应该进入哪个分类、哪个知识库、哪个专题。等到用户查询时,再构建一个“查询智能体”,由它先分析用户意图,再决定应该去哪些知识库、哪些图谱、哪些文件中寻找答案。

如果这套系统真的成立,那么知识库的数据维护几乎就可以完全交给智能体。人类只需要把工作过程自然暴露出来,智能体负责收集、整理、分类、入库、查询和综合。

但想到这里,其实一个悖论慢慢浮现了。我有些分不清楚,这到底是科幻,还是荒唐。

因为知识库的数据存储还只是第一步。就算我们假设智能体可以自动判断哪些数据应该入库,接下来还有一个更现实的问题:这些数据本身是各种各样的。企业资料中可能有 Word、PDF、图片、音频、视频、Excel、PPT,也可能有系统导出的结构化数据、聊天记录、网页内容、扫描件。知识库要真正使用这些资料,就必须先有一套解析机制,把不同文件形式中的信息有效提取出来,并且尽量保留它原本的结构和意图。

现在像 RAGFlow 这样的知识库系统,确实已经提供了很多解析和切分工具。但问题是,提取出来的结果是否符合预期,目前看起来仍然只能由人来判断,而且这个人最好还得知道知识库最终的查询目标。

原因很简单。解析工具并不能完美理解所有文件,尤其是在处理 PDF、大型 Excel 表格、PPT 这类资料时,经常会出现表格被合并、被切碎、窜行、窜列,或者上下文丢失的情况。对人来说,这种错误有时一眼就能看出来,因为人知道原始文件本来想表达什么,也知道哪些数据之间应该存在对应关系。但对一个不了解业务的智能体来说,它能不能判断这里发生了窜行窜列,就很难说。换句话说,我们构建知识库就是为了让不了解业务的智能体了解业务,而现在我们却要让不了解业务的智能体帮助我们判断业务目标是实现了。

更麻烦的是,就算智能体判断出了问题,它能不能采取正确行动也不确定。比如它是否能调用知识库系统中的另一种解析方式?这些系统是否开放了 API?如果某个操作只能在界面上由人点击完成,比如切换解析工具、重新切分、重新上传,那么智能体能否稳定地完成这些操作?如果所有解析方式都不理想,是否还需要重新整理原始文件,把 Excel 改成更适合解析的格式,把 PDF 转成结构化文档,再重新上传?这些动作看起来都很具体,但真正做起来已经不仅是“智能体推理”的问题,而是涉及文件理解、业务理解、工具调用、格式转换和人工判断的一整套流程。

所以我暂时很难想象,怎样开发一个智能体,能够完全代替人类完成这些判断和行动。至少在目前阶段,如果没有业务目标,没有人类校验,没有对数据质量的持续检查,只靠一个通用智能体自动维护企业知识库,我觉得并不可靠。

再往下看,GraphRAG 也会遇到类似的问题。

现在很多知识库系统都开始支持 GraphRAG,或者至少号称支持 GraphRAG。它们可以把 chunk 中的内容实体化,抽取实体之间的关系,再构建知识图谱。表面上看,这似乎解决了多跳查询问题。因为如果知识都已经变成了实体和关系,那么用户问一个复杂问题时,系统就可以沿着图谱去推理,而不是只靠向量相似度找几个片段。

但问题是,实体到底应该怎么定义?

对于一个软件企业来说,日常管理资料中的实体可能是企业、部门、人员、软件、系统、模块、功能、接口、服务器、项目、客户。可是对于一个生产型企业来说,实体可能变成企业、车间、设备、原料、工人、工艺、产线、批次、质检指标、供应商。即使是同一家公司,在不同业务目标下,实体定义也可能完全不同。为了做项目管理,可能要关注人员、任务、节点、交付物;为了做质量分析,可能要关注设备、工艺、批次、异常原因;为了做销售分析,可能又要关注客户、合同、商机、产品和区域。

也就是说,并不存在一套天然适用于所有企业、所有目标的实体体系。一张知识图谱解决企业所有问题的可能性很低。知识图谱不是把文本自动抽成节点和边就算完成了,它背后一定有一套业务视角。你关心什么,图谱才应该突出什么;你想解决什么问题,实体和关系才应该围绕这个问题来定义。

这就导致 GraphRAG 在企业场景中并不是一个一劳永逸的答案。它确实可以增强多跳查询能力,也可以帮助系统从“文本片段检索”走向“关系结构检索”。但它同样需要规划、维护和不断修正。实体抽错了,关系连错了,分类不合适,图谱过时了,最后得到的就不是智能推理,而是结构化的错误。

更进一步说,知识图谱本身也有生命周期。企业组织会变化,人员会流动,项目会结束,设备会更换,业务流程会调整,产品功能会迭代。如果知识图谱不能持续更新,它很快就会和现实脱节。而如果让智能体来维护这张图谱,它又会回到前面的问题:智能体如何知道哪些实体重要,哪些关系真实,哪些关系已经失效,哪些业务变化应该触发图谱重构?

所以我现在并不觉得,构建一个智能体自动维护企业知识图谱是一件很靠谱的事情。至少在现阶段,很多图知识库系统本身可能也没有提供足够成熟的接口,让智能体去精细维护图谱。如果真想这么做,可能不是简单套一个现成产品,而是要自己开发一套适配智能体的知识图谱和知识库系统。

但这件事的投入会非常大。

尤其是对于我们这样一个只有四五个开发力量的公司来说,如果不做其他事情,直接 all in 智能化知识库开发,我觉得风险很高。因为这里面要解决的问题太多:文件解析、数据清洗、业务建模、知识图谱、查询意图识别、多跳推理、智能体工具调用、质量评估、权限管理、系统集成。每一个问题单独拿出来都不简单,更何况还要把它们整合成一个真正可用的企业产品。

更现实的问题是,市场前景也不确定。很多公司可能会说自己需要知识库系统,但它们到底想用知识库解决什么问题,并不一定清楚。中国真正有自己完整知识体系的公司并不多,能通过知识库系统直接带来经济效益的公司可能更少。很多企业买知识库系统,可能只是希望“资料能查得更方便一点”,但这和真正建设一个高质量、可维护、可演化的企业知识系统,中间还有很长距离。

这也让我重新意识到,知识库不是一个单纯的软件产品。至少企业知识库不是。它更像是一套“业务知识治理工程”。软件系统只是外壳,真正困难的是企业有没有值得沉淀的知识,有没有稳定的业务目标,有没有人愿意持续维护,有没有能力判断知识质量。

如果企业本身没有清晰的知识体系,那么知识库系统再先进,也只是把混乱的数据换一种方式存起来。它不会自动让企业变得有知识,也不会自动让没有被整理过的经验变成可复用的方法。知识库最多只能放大已有的知识管理能力,不能凭空制造这家公司原本没有的知识秩序。

回到我这次研究的起点,我本来主要是想解决多跳查询问题,也就是 GraphRAG。比如一个问题的答案不在某一个文档中,而是分散在多个文档、多个实体、多个关系里,系统需要先找到 A,再通过 A 找到 B,再通过 B 找到 C,最后综合出答案。这确实是普通 RAG 比较吃力的地方,也是 GraphRAG 看起来很有价值的地方。

但研究之后我发现,多跳查询的真正难点,未必只是“图结构不够”。它更深层的问题是:系统必须知道哪些跳转是有意义的。否则它只是从一个错误节点跳到另一个错误节点,从一个模糊关系跳到另一个模糊关系。技术上看起来在推理,实际上可能只是在图谱里迷路。我不知道我在使用RAGFlow的过程中开启GraphRAG 偶尔会遇到模型没完没了的思考的现象是否和这个有关。

所以,GraphRAG 并不能取消业务建模,反而更加依赖业务建模。普通 RAG 至少还可以依赖文本相似度做一个粗略召回,而 GraphRAG 一旦要发挥作用,就必须让实体、关系和路径本身具有业务意义。图谱越复杂,对前期定义和后期维护的要求就越高。

这也是我现在对企业知识库比较谨慎的原因。

我并不是否定 RAGFlow,也不是否定 GraphRAG,更不是否定智能体。恰恰相反,这些技术都很有价值。但它们的价值,不应该被理解成“把资料扔进去,系统自动变聪明”。它们更像是工具,而工具是否有效,取决于使用工具的人有没有清楚的目标、规则和判断标准。

如果没有这些东西,所谓智能化知识库很容易变成一个幻觉:看起来有上传、有解析、有切分、有向量、有图谱、有问答,但真正问到关键问题时,答案并不稳定,来源也不可靠,结构也无法解释。最后它可能既不像资料库那样可核查,也不像专家系统那样可依赖,只是一个包装得很现代的资料堆。

因此,企业知识库真正应该先问的,不是“我们要不要上 GraphRAG”,而是:

我们到底希望知识库回答什么问题?

这些问题需要哪些资料支撑?

这些资料现在是否存在?

这些资料的格式是否适合机器解析?

解析结果谁来校验?

实体和关系由谁定义?

图谱如何更新?

错误如何发现?

过期知识如何废弃?

如果这些问题没有答案,那么技术选型再先进,也只是把问题往后推。系统上线时看起来完成了,真正使用时才会发现,知识库最难的部分其实才刚刚开始。

总的来说,这次研究让我更加明确了一点:企业知识库的核心,不是一次性搭建,而是持续维护;不是自动收集一切,而是围绕目标选择数据;不是把所有资料都变成 chunk,而是把真正有用的信息整理成可追溯、可验证、可更新的知识结构。RAG、GraphRAG、知识图谱、智能体,都只是这套工程中的技术手段,不是它本身。

如果从这个角度看,企业知识库建设最重要的能力,可能不是模型能力,而是人的判断力。人要判断企业究竟需要什么知识,哪些资料值得进入系统,哪些结构符合业务目标,哪些解析结果是错的,哪些图谱关系是有意义的。未来智能体也许可以承担其中一部分工作,但至少现在,它还很难完全替代这个判断过程。

所以,我现在更倾向于把企业知识库理解为一种长期的数据治理和知识治理工程。它可以借助智能体,但不能把责任完全交给智能体;它可以使用 GraphRAG,但不能幻想一张图谱解决所有问题;它可以用成熟系统起步,但最终能不能发挥作用,还是取决于企业是否真正知道自己想要什么,以及是否愿意为这些“想要的知识”付出持续维护

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注