RAG 知识库里的过期文档怎么治理?有效期、版本和下线流程
知识库问答给出过时答案,最常见的原因是新旧两版文档同时被索引,检索把旧版排在了前面。 治理办法是给每份文档加上「版本、生效日期、复核日期、负责人」四个元数据,检索时过滤或降权过期内容,并建立一个定期复核和下线的流程。
过期文档是怎么混进来的
- 制度更新了,新文件上传了,旧文件没删。
- 同一内容在多个地方有副本:网盘、群文件、旧网站。
- 文档本身没写日期,系统无法判断新旧。
- 临时通知(某次活动规则)活动结束后一直留在库里。
第一步:给文档加元数据
在入库时为每个文档(或每个切块)记录:
| 字段 | 含义 | 例子 |
|---|---|---|
| doc_id | 同一文档跨版本不变的编号 | HR-LEAVE |
| version | 版本号 | 3 |
| effective_from | 生效日期 | 2026-09-01 |
| review_by | 下次复核日期 | 2027-03-01 |
| owner | 负责人 | 人事部 |
| status | 状态 | active / superseded / archived |
关键是 doc_id:有了它,系统才知道「这两份文件是同一制度的不同版本」。
第二步:检索时处理新旧
- 只检索 active:最简单直接,
superseded和archived不参与检索。 - 同 doc_id 只保留最新版本:检索结果里如果同一 doc_id 出现多个版本,只保留最新的。
- 需要查历史时显式指定:比如用户问「去年的规定是什么」,再放开历史版本,并在回答里注明版本和日期。
- 回答中标注来源日期:让用户看到「依据 2026-09-01 生效的第 3 版」,有疑问能及时发现。
第三步:复核提醒
- 每周跑一次检查,列出
review_by已过期的文档,发给负责人。 - 负责人确认「仍然有效」就顺延复核日期;需要更新就上传新版本,旧版自动标为
superseded。 - 临时通知类文档入库时就填好结束日期,到期自动归档。
可以用 AI 帮忙生成提醒内容:
下面是本周复核已到期的文档列表(标题、负责人、上次更新日期)。
请按负责人分组,为每位负责人写一段简短的提醒,说明需要确认哪些文档是否仍然有效,
并附上操作选项:仍有效(顺延半年)/需要更新/可以下线。
第四步:找出没有元数据的旧文档
存量文档往往没有日期和版本。可以先用 AI 辅助初筛:
请阅读下面的文档片段,判断:1)文中是否出现明确的日期或版本号;2)是否像临时通知;
3)是否可能与其他制度重复。只依据文本回答,判断不了的写“无法判断”。
初筛结果交给负责人确认,不要让 AI 直接决定删除。
下线与归档
- 下线不等于删除:保留归档副本,便于审计和查历史。
- 下线后重新跑一遍常见问题测试,确认回答已经引用新版本。
- 记录下线原因和时间。
常见坑
- 只更新了原文件,没有重新切块和向量化,索引里仍是旧内容。
- 文件名里写「最新版」「最终版」,过几个月就不是最新了。用版本号和日期。
- 复核提醒没人处理。负责人要落到具体的人或岗位,而不是「大家」。
相关阅读:企业知识库搭建、入库前给 FAQ 去重,也可以看看 RAG 分块策略。