光屿云霞科技
技术知识工程2026-05-24·1 分钟阅读

知识工程进阶之三:RAG 真正难的不是搜到,而是组好上下文

RAG 的关键不只是召回,更是把规则、事实、证据片段和当前问题装配成模型真正能用的一包上下文。

知识工程

知识工程进阶之三:RAG 真正难的不是搜到,而是组好上下文

搜到相关材料只是开始。
真正难的是,怎么把这些材料组装成模型一看就能用、而且不容易误解的上下文包。

先给结论

RAG 最容易被低估的一步,是上下文装配。
很多系统检索没问题,但回答还是不稳,常见原因包括:

  • 检索结果顺序不对
  • 规则和事实混在一起
  • 同类片段重复
  • 旧版本和新版本同时塞进来
  • 当前问题真正需要的证据被噪声盖住

也就是说,RAG 的难点,很多时候不是 retrieval,而是 assembly。

一包好上下文,至少要有四种成分

1. 当前任务

现在要解决的到底是什么问题。
这部分决定检索结果该围绕什么组织。

2. 规则约束

哪些规则必须优先遵守。
例如只能基于给定资料回答、不能编造、不确定要说明。

3. 证据片段

真正支撑回答的文档内容。
这部分应该是最有信息密度的。

4. 来源和版本信息

告诉模型这些内容来自哪里、哪个版本、可信度如何。
否则模型很容易把冲突材料混成一团。

为什么“把 top-k 全塞进去”很危险

因为 top-k 只是检索得分高,不等于最适合最终回答。

常见问题包括:

  • 多个 chunk 其实表达的是同一件事
  • 一个重要 chunk 被几个次优 chunk 挤掉
  • 不同文档的立场冲突,却没有说明优先级

所以 assembly 阶段至少应该做:

  • 去重
  • 压缩
  • 排序
  • 规则前置
  • 证据与来源标注

知识工程和上下文工程在这里会合

RAG 一旦进入实际系统,就不再只是“搜文档”。
它开始变成上下文工程的一部分。

因为最终你要给模型的,不是“检索结果列表”,而是:

  • 当前问题
  • 规则
  • 证据
  • 结构

这些东西一旦装不好,哪怕召回很准,结果也会不好看。

一个很实用的经验

别急着增加更多文档,先看:

  • 当前上下文里有多少重复
  • 当前上下文里有多少无用背景
  • 当前上下文里有没有证据排序错误

很多 RAG 优化,不是“再加数据”,而是“把已有数据组得更合理”。

一句带走

RAG 的上限,不只是由检索决定,还由上下文装配决定。
搜到只是起点,装好才是能力。

继续深入

系列导航
知识工程进阶
3 / 4
返回总索引

评论功能需要配置 Giscus 环境变量

请访问 giscus.app 获取配置信息