返回文章列表
RAGHybrid SearchMCPKnowledge Engineering

企业 RAG 知识工程与可调优座舱实践

深入解析企业级 RAG 的知识工程落地:从结构感知分块、Dense+Keyword 混合检索与 RRF 重排,到时效元数据治理、MCP 权限边界与 Retrieval Lab 评测闭环。

在企业级知识问答场景中,问答质量的瓶颈往往并不在终端大模型的文本生成能力,而在于前端摄取与检索召回链路中的工程缺陷:文档层级标题丢失、表格被打平破坏、合同号/错误码等精确标识未命中、过期制度覆盖最新版本,或是多轮对话中的代词无法对齐。

为了系统性解决这些问题,本项目对企业智能座舱进行了知识工程架构升级。调优重心从单纯调整 Prompt 提示词,前移至文档结构化解析、混合检索融合、元数据时效治理以及可度量的评测闭环。

索引链与查询链的解耦与排障流程

RAG 架构本质上是由相互独立的索引链(Index Pipeline)与查询链(Query Pipeline)构成的复合系统:

索引链:文件摄取 -> 结构解析/标题恢复 -> 语义分块 -> 来源追踪(Provenance) -> Embedding -> 向量/倒排索引
查询链:用户提问 -> 指代补全 -> 权限/时效过滤 -> Dense + Keyword 双路召回 -> RRF 融合重排 -> 上下文组装 -> 模型生成与引用

两套链路在不同阶段均可能引发信息衰减:索引阶段丢失章节层级,会导致切片脱离上下文业务语境;查询阶段忽略版本与时效元数据,则极易召回已作废的条款。

基于此,系统确立了自底向上的分层排障机制:

  1. 结构解析校验:验证原文解析是否完整,章节标题、段落层级与业务编号是否正确保留;
  2. 候选集覆盖度:验证目标分块是否成功进入 Dense 或 Keyword 初筛候选集;
  3. 过滤与融合检查:验证相关候选是否被权限过滤、去重或 RRF 重排算法降权;
  4. 上下文版本冲突:核查最终上下文是否存在互相矛盾的新旧版本切片;
  5. 模型引用归因:最后验证大模型是否严格基于提供的上下文证据进行推理。
排障链路:解析结构完整性 -> 初筛召回覆盖 -> 融合重排权重 -> 上下文版本一致性 -> 模型推理引用

结构感知分块与来源追踪(Provenance)

早期基于固定字符窗口的切分方式虽然实现简单,但容易破坏语义连贯性,导致标题与正文脱节。新版实现引入了结构感知分块算法:优先识别 Markdown 标题、中文章节层级、阿拉伯/罗马数字列表、空行自然段以及句末终止符进行断句;仅当单一逻辑单元超过设定阈值时才进行滑动切分。

每个切片均携带其所属的上级章节路径,例如:

章节路径:制度规范 > 售后政策 > 退款审批规则
内容切片:退款申请应在签收后七天内提交,并附订单号和付款凭证。

即使切片在检索阶段独立命中 top-k,模型也能通过前缀元数据准确感知其所属的业务语境。系统在切片入库前通过内容哈希实现精准去重;检索召回后,若来自同一文档的相邻切片均获得高相关度评分,系统会在组装上下文阶段按原文顺序自动合并并去除滑动重叠部分,从而提升上下文利用率。

在摄取元数据层面,系统完整记录了 source(来源路径)、sourceType(文件类型)、parser(解析器版本)、ingestedAt(入库时间戳)、contentHash(内容哈希)与 chunkStrategy(分块算法版本),确保文档索引变更具备全链路审计能力。

Dense 向量与 Keyword 混合检索及 RRF 融合

语义向量(Dense Retrieval)擅长捕捉概念相似与同义改写,但在精准匹配合同号、SKU、错误码及特定命名实体时表现欠佳;关键词检索(Keyword/Lexical Retrieval)则能精准锁定专有名词,但难以处理自然语言语义泛化。

座舱采用双路并行召回架构:

dense_candidates   = pgvector.cosine_search(query_vector, candidate_k)
keyword_candidates = mysql.lexical_search(query_tokens, candidate_k)
fused_ranked       = reciprocal_rank_fusion(dense_candidates, keyword_candidates, k=60)
final_ranked       = apply_freshness_and_exact_match_boost(fused_ranked)
context_chunks     = merge_adjacent_chunks(deduplicate(final_ranked), top_k)

系统采用 Reciprocal Rank Fusion(RRF,倒数排名融合) 算法进行多路合并。RRF 基于候选切片在各路检索中的名次而非绝对分值进行融合,具备参数鲁棒性高、无需对异构分数做复杂归一化的特点。在 RRF 基础上,系统对完整短语命中、业务编号精确匹配、标题完全一致以及较新生效版本的切片赋予适当的权重加成。

双路设计同时提供了服务高可用保障:当向量检索服务发生波动或响应超时时,系统仍可通过关键词检索提供基础上下文支撑,反之亦然。

知识生命周期与时效元数据治理

在企业制度与业务文档管理中,常见风险之一是系统中存在多份效力冲突的历史文档。单一的语义相关度计算无法识别“草稿”、“审批中”、“已废止”或“未来生效”等业务属性。

系统将生命周期状态显式抽象为切片级元数据字段:

字段类型检索约束规则
statusString业务问答默认严格限制 status IN ('active', 'published')
effectiveFromTimestamp未到达生效时间的文档不参与日常检索召回
effectiveToTimestamp超过截止有效期的历史版本在默认查询中自动剔除
supersededByString被新版本替代的历史文档,默认由新文档接管
versionString当多份候选切片相关度相近时,优先加权最新版本

管理员可在后台维护“版本替换联动规则”,并配置定时对账任务,清理孤儿向量切片与过期文档索引。

多轮对话中的指代补全与查询重写

在多轮交互中,用户的后续追问往往带有强指代性(例如首轮询问“退款期限是几天?”,次轮追问“那该规则适用于海外订单吗?”)。如果直接将次轮提问转化为向量进行检索,会因主语缺失导致召回偏移。

系统采用确定性的上下文拼接策略:检测到包含代词或主谓缺失的追问时,提取最近一轮的核心用户提问构建复合检索字符串:

首轮提问:退款审批的期限是几天?
次轮提问:该规则适用于海外订单吗?
拼接后的检索输入:退款审批的期限是几天? 该规则适用于海外订单吗?

重构后的文本仅用于向量与关键词检索阶段,大模型生成阶段依然接收原始对话历史,从而在提升检索召回率的同时,避免因过度改写 Prompt 引入噪声。

MCP 工具调用与知识库的职责划分

系统将知识库与 Model Context Protocol(MCP)工具调用进行了明确的职责隔离:

  • 知识库(Knowledge Base):负责检索静态、可引用的制度文档、规范手册与业务档案;
  • MCP 工具:负责获取实时天气、高德地理位置、当前时间戳、数据库动态查询与业务系统写操作。

在权限控制上,系统遵循最小特权原则:模型仅允许规划用户在界面中显式授权的工具集合;后端服务依据 MCP 标准 Schema 严格校验参数合法性,并在安全沙箱中控制执行步数与超时时间,全量记录 Tool Call 轨迹。

用户显式授权 -> MCP Tool 目录与 Schema -> 模型生成调用计划 -> 宿主参数校验与沙箱执行 -> Observation 回填 -> 模型总结输出

Retrieval Lab 检索实验台与评测闭环

为了实现检索效果的可视化与量化调优,系统在控制台集成了 Retrieval Lab(检索实验室)。开发与运营人员可选择目标知识库,输入测试问题,直观查看 Hybrid + RRF 的候选排序、相似度分值、分块摘要及完整元数据,该实验台直接复用生产检索链路。

系统通过建立基准黄金问答数据集(Golden Dataset),持续跟踪关键评估指标:

  • Recall@k:标准答案所在的文档切片是否落在前 k 个候选集中;
  • MRR(Mean Reciprocal Rank):首个相关切片的平均排名倒数;
  • 引用精准率(Citation Precision):生成回答中的具体论断是否均有上下文切片支撑;
  • 冲突版本召回率:评估过滤规则对过期或草稿文档的拦截效果;
  • 端到端检索延迟(p50/p95):监控解析与重排链路的性能表现。

当检索未命中任何高置信切片时,系统显式返回“无相关依据”状态,引导运营人员排查文档状态、有效期限或补充相关知识,避免模型在缺乏证据的情况下产生幻觉。

可以在 企业智能座舱 中体验升级后的检索与问答链路。

参考资料

查看运行中的项目