企业知识库用久了,库里一定会有同一份制度的好几版。差旅办法 2023 年发过一版,2025 年改了标准又发一版,两份都在库里,员工问报销上限,答案引用了旧的那一版,引用标注一应俱全,看上去完全可信。v2.6.2 让知识库自己认出新旧版本,确定是旧版的直接退出检索,拿不准的交给管理员确认,确认之前回答里引用到旧版会标出来。每一条判断都写明依据,判错了一键撤回。
这一版另一件事是元数据录入。关于元数据怎么使用,可见 企业知识库里的元数据,到底应该怎么用?管理员先把字段定好,录入的人照着字段挑选和填写,不用再记键名该怎么写、日期用什么格式。字段统一了,按元数据过滤才靠得住,回答上方也会写出这一轮按哪些条件筛了文档。
一、版本冲突自动识别,作废的旧版不再进答案
文件哈希只能认出一模一样的文件
知识库里出现重复和旧版,来路主要有三条。
员工把同一份文件传了两次。制度修订后,新版传上来了,没人去删旧版。还有数据源同步,源头的文档改一次,库里多一份“差旅管理办法(1).pdf”。
常见的处理是按文件哈希去重,上传时算文件指纹,库里已有同样指纹的文件就提示重复。哈希去重能拦住第一条来路,后两条拦不住,修订版哪怕只改了一个数字,文件指纹也就变了,系统会把它当成一份全新的文档。
最麻烦的就是后两条。重复文件顶多让答案啰嗦一点,旧版制度会让答案出错,而且错得很体面。检索并不知道哪份作废了,两份内容高度相似,谁排在前面看运气。
人怎么认新旧版,系统就怎么认
管理员判断两份文件是不是新旧版,看的东西很固定。文件名去掉“最终版”“修订”、日期和括号以后是不是同一个名字,文号是不是同一个,版本号谁大,正文里有没有“原《差旅管理办法》同时废止”这样的话,再翻两页看内容是不是大体一样。
v2.6.2 就看这几处。文档解析完成后,系统拿下面五样东西,和同一知识库里所有启用中的文档比一遍。
判定分两档。正文点名替代了对方,或者文件名、文号对得上而且版本号分得出先后,算高置信,旧版直接停用,标上“已被替代”,鼠标移上去能看到是被哪一份替代的。只有名字相同或者内容相似、分不出谁新谁旧的,算中置信,进入待确认,由管理员拍板。

文档列表里,被新版替代的旧版自动停用,启用开关旁标着“已被替代”
整个判断不调大模型。同样两份文件,今天比和明天比结果一样,每一条关系后面都列着依据,“文号相同”“版本 V3 新于 V2”“正文声明替代《xx》”,管理员看得懂,也挑得出毛病。

版本治理页的“已生效”,每一对新旧版本都写着依据,比如标题都是考勤制度、2024 版新于 2023 版,也写着是入库时识别、存量扫描还是上传时指定的
旧版制度的危险在于它看起来完全可信。版本识别要做的,就是在它进入答案之前把它拦下来。

版本识别的判断过程,解析完成后与同库文档逐份比对,高置信的旧版直接停用,拿不准的进入待确认,每条关系都带依据,都能撤销
判错了能退回去
自动停用文档是一件敢做就得敢退的事。v2.6.2 在知识库侧栏加了“版本治理”页,按待确认、已生效、已拒绝、已撤销分开列出所有版本关系。

版本治理页按待确认、已生效、已拒绝、已撤销分开,上面能发起存量扫描,并显示上次扫描的结果
待确认的,逐条或批量处理。 方向对就确认,方向反了点“调换方向后确认”,两份根本不是一回事就标为不是版本关系。拿不准的时候点开对比,新旧两版正文并排显示,改了哪几行一眼能看到。PDF 解析出来的正文常带版面断行和页码,直接对比会冒出一堆假改动,我们在对比前先把这些规整掉,留下的差异基本都是真改了的地方。

新旧两版正文并排对比,考勤制度 2024 版把迟到按旷工处理的门槛从 30 分钟改成 15 分钟,又新增了一条远程办公报备
已生效的,随时撤销。 撤销后旧版恢复检索,以后也不会再被同一份新版自动停用。管理员在文档列表里手动启用一份已被替代的文档,系统同样当作人工否决了这条关系。删掉新版,旧版自动恢复;删掉的是中间那一版,最新版接着替代最老的那一版。
存量文档扫一遍。 升级前就在库里的文档,点“扫描存量”在后台比一轮,扫完显示检查了多少份、发现多少对、自动处理了多少对。
确认之前,回答会提醒
中置信的关系等着管理员确认,这段时间新旧两份都还在检索里,回答有可能引用旧版。v2.6.2 在引用来源上做了标记,被引用的文档如果是一对待确认关系里的旧版,卡片上标“可能有新版”,悬停能看到新版的名字。两份同时被引用,下方再提示一句,说法不一致时请注意核对。

同一个问题引用到待确认的一对新旧手册,旧版卡片标“可能有新版”,下方提示两份说法不一致时请注意核对。回答上方同时写明了这一轮的过滤条件
检索和回答的方式没有改。这一层只负责把系统已经知道、但还没定论的事告诉读答案的人。
从入口少产生旧版
识别是事后补救,入口处也能少产生一些。
上传新版本。 文档列表里可以对某一份文档直接“上传新版本”,新版解析完成后旧版自动停用,沿用旧版的解析设置。用户自己声明的替代关系不经过识别,也不受自动处理开关的影响。
上传时提示重复。 一批文件里有内容和库里完全相同的,上传时弹窗列出来,用户选跳过或者仍然上传。SDK 的上传接口同样支持。
数据源同步原地更新。 源文档改了,再次同步时覆盖库里原来那一份,内容没变就不重新解析。“(1)”“(2)”这样的副本从源头上不再产生。
几个前提要说清楚。自动识别只处理本地上传的文档,数据源同步的文档靠上面说的原地更新保持一份。识别依据的是文件名、文号、版本号、替代声明和正文相似度,一份制度改了名字、换了文号、内容又大幅重写,系统认不出它们是一家,这种情况仍然要靠“上传新版本”主动声明。
二、元数据录入更简单,过滤条件看得见
自由填写的元数据,填着填着就乱了
RAGFlow 原本就支持给文档挂元数据,聊天时按元数据过滤,可以手动设定条件,也可以让模型按问题自动推断。元数据是自由的键值对,问题出在“自由”上。一个人的键名写“部门”、值写“财务部”,另一个人的键名写“发布部门”、值写“财务”,第三个人把日期写成“2025年3月”。过滤条件写“发布部门 = 财务部”,前两份里只能命中一份,第三份的日期谁也比不了大小。
自动过滤还有一个隐患,用户看不见。模型从问题里推断出条件,按条件筛掉文档,答案却是“知识库中未找到您要的答案”。用户只会觉得知识库里没有,不知道其实是条件推错了,把该找的文档筛掉了。
管理员定一次字段,录入照着填
知识库侧栏新增“元数据”页,管理员在这里添加字段,每个字段定下名字、类型(文本、日期、数字)、可选值、能不能填多个、一句说明。库里文档已经填过的元数据可以一键收集成字段,每个字段旁边显示有多少份文档填了。

知识库的“元数据”页,每个字段的类型、可选值、能否多值、说明和已填写份数一目了然
录入的人感受最明显。单个文档的元数据以前要在一个 JSON 编辑器里手写,键名要加引号,多个值要写成数组,漏一个逗号就保存不了。现在是一张表单,已定义的字段一行一个,文本字段从可选值里挑,日期字段用日期选择,能填多个的直接多选,不要的一键清空。批量设置也一样,勾选一批文档,选一个字段,设成某个值或者清空。

单个文档的元数据改成表单,已定义的字段逐个点选,日期用日期选择,没定义的键名在下面自由添加
写入时按类型和可选值校验,页面和 SDK 一样。没定义的键名仍然可以自由填,定义之前已经填好的旧值不受影响,不会因为加了字段就让存量数据报错。
字段的说明也会交给模型。自动过滤推断条件时,模型知道每个字段是什么意思、能取哪些值。
这一轮按什么筛的,写在回答上方
用了元数据过滤的回答,上方多一行,写明这一轮的条件和命中了几份文档,比如“已按问题自动筛选”,后面跟着“发布部门 = 财务部 且 文档类型 = 制度”,再写命中几份文档。一份都没命中时,这一行换成警告,写明“没有符合的文档,本次未检索到内容”,用户马上能分清是知识库里没有,还是条件把文档筛光了。

回答上方写明这一轮按什么筛的、命中几份文档,模型推断的条件可以“不筛选重新回答”
条件是模型自动推断的,这一行末尾有“不筛选重新回答”,点一下就去掉条件把同一个问题重答一遍。管理员在助手里手动设好的条件属于助手的规则,只展示,不提供撤销。
过滤条件也是答案的出处。说清楚按什么筛的、筛到几份,推错了让用户能撤回,这个答案才经得起推敲。

管理员定义一次字段,填写、过滤和回答都按同一套字段走,回答上方写明这一轮的条件和命中份数,模型推断的条件可以撤掉重答
三、对外接口和其他改进
SDK 能用智能模式了。 对外的对话接口可以按单次请求打开智能模式,指定这一轮用哪种专业能力,智能体中途停下来问人时,用同一个接口接着跑。调用方断开连接,服务端仍会把这一轮跑完存进会话。网页聊天、对外 SDK 和嵌入页的对话以前是三套代码,这一版合成一条,智能体出错时的收尾、断开后继续执行,三个入口表现一致。
知识库详情按权限显示操作。 没有写权限的人进到知识库,看不到上传、解析、启停、删除和版本治理的决策按钮,没有管理权限的看不到配置。服务端的校验本来就在,这次是前端不再摆出点了也没用的按钮。
登录与界面。 登录失败统一提示“用户名或密码不正确”,不再透露账号是否存在。SSO 登录后回到原来的页面,嵌入页聊天走 SSO 也能回到聊天页。弹窗、下拉、表格按 Ant Design 5 的规范统一了边框和阴影,顶栏去掉了 GitHub 入口。
四、稳定性和升级
这一版修了几处会影响结果的问题。启用一份停用过的文档时,父块和目录结构块会一起放进检索,回答里可能冒出一段目录 JSON,现在只放出正文切片。管理后台登录次数多了以后数据库连接耗尽,所有请求报错,现在每个请求结束都会归还连接。通过 API Key 建库时,不接受 smart 等 KnowFlow 自己的分块方式,MCP、WorkBuddy、Dify 这类接入建不出知识库,现在可以了。新建的助手,“空回复”默认填好“知识库中未找到您要的答案!”,没有检索到内容时直接这样回答。
升级前要知道的几件事。
数据库新增的表和字段在服务启动时自动创建,不需要手动迁移,也不需要重新解析文档。问数、Agent 沙箱和 SAG 的镜像这一版没有变化。
下一版
下一版围绕文件标签来做。这一版的元数据管的是文档有哪些固定属性,部门、类型、日期这些,一份文档每个字段一个值。标签更轻,一份文档可以挂好几个,“报销”“出差”“新员工必读”,适合按业务主题把散在不同目录、不同知识库里的文件归到一起。我们会在这一版字段定义的基础上把标签补完整,让它在整理文档和限定问答范围时都用得上。
有需要体验 KnowFlow 知识库或者加入社群交流学习的可以关注「KnowFlow 企业知识库」。