SmaugBrain
← 返回新闻
资讯 焦点文章

RAG检索不准确时该怎么办:AI Agent知识库的故障排查与优化指南

2026年7月7日 smaugbrain 3 分钟阅读 WordPress 文章

RAG检索不准确时该怎么办:AI Agent知识库的故障排查与优化指南

当RAG产生不准确的回答时,最本能的反应是切换模型,但问题往往出在知识来源、文本分块或用户查询上。你必须先定位正确证据是在哪个阶段丢失的,才能避免盲目调参却毫无进展。

首先确定问题出在检索还是生成环节

将回答拆解为两个阶段:检索结果是否已包含正确证据,以及生成结果是否忠实利用了该证据。如果根本未检索到正确分块,请重点检查文档、分块策略和查询语句;如果证据已存在但回答仍不正确,请检查上下文组装、提示词边界和输出验证机制。

第一层:检查知识来源与元数据

  • 删除过时、重复或相互冲突的版本,或明确标注其生效日期。
  • 为每份文档存储元数据,如来源、版本、所属部门及适用产品。
  • 对于表格、图片和扫描件,首先确认其内容已被正确提取。
  • 权限过滤应在检索阶段生效,绝不能仅依赖生成阶段的隐藏操作。

第二层:调整文本分块,而非盲目追求固定长度

文本分块应尽可能保留完整的语义单元。操作手册可按标题和步骤划分,政策文件可按条款划分。分块过小会丢失上下文,分块过大则会混杂多个主题。重叠窗口可以减少边界信息丢失,但也会增加重复结果。

症状可能原因优先处理措施
回答缺少前提条件分块过小或跨章节拆分按标题或条款重新分块
结果混杂多个主题分块过大减小分块大小并保留元数据
引用重复重叠度过高降低重叠比例或去重
专有名词无法检索到仅使用语义检索添加关键词检索或混合检索

第三层:处理模糊的用户提问

“上个月报告中的数据”并未指明具体报告、指标或范围。Agent可以先请求澄清,或在上下文充足时进行查询重写或分解。复杂问题应先拆分为多个可验证的子问题,分别检索后再整合答案,而不是让单次检索操作承担所有推理任务。

第四层:检索、重排序与引用展示

关键词检索适用于标识符、产品名称和专业术语,而向量检索适用于措辞不同但含义相似的问题。混合检索可以结合两类候选结果,再通过重排序进行筛选。最终上下文应仅保留与问题直接相关的分块,并在回答中展示来源以便人工核对。

持续通过失败案例进行评估

  1. 收集真实问题及经人工确认的相关文档。
  2. 分别记录检索结果与最终回答。
  3. 将每次失败归类为文档、分块、查询、检索、排序或生成问题。
  4. 每次仅调整一个主要变量,并使用同一测试集重新运行。
  5. 将新发现的失败案例加入回归测试集。

常见问题解答

RAG与知识库有什么关系?

知识库负责存储和组织信息,而RAG根据问题检索分块并将其提供给生成模型。信息质量与检索策略同样重要。

是否应该单纯增加检索结果的数量?

不一定。更多的分块也可能引入噪声和冲突。应先确认是否已检索到正确证据,再调整候选数量与重排序策略。

在RAG和微调之间该如何选择?

当需要更新外部知识并提供引用时,优先选择RAG。当需要保持一致的行为或输出风格时,可考虑其他方法。两者解决的是不同的问题。

下一步该怎么做

在SmaugBrain的知识库工作流中,你可以提取一组真实的失败问题,并按照本文的分类记录其成因。在每次迭代中仅更改一个环节,并使用同一组问题进行验证。