如果从工程视角看,长上下文不会让 RAG 失效,只会改变 RAG 的重心。
我的判断是:
-
长上下文解决的是容量问题,不是选择问题。企业知识库里真正难的不是“能不能塞进去”,而是“该把哪几段塞进去”。如果没有检索和过滤,长上下文很容易把无关、过时、冲突的信息一起送进模型,反而降低回答稳定性。
-
RAG 仍然负责来源约束、权限过滤和实时性。很多业务场景要求只引用当前租户、当前版本、当前权限可见的数据,这不是单靠上下文窗口变大就能自动解决的。
-
长上下文更适合做二次整合。例如在检索后,把更多候选片段、目录结构、上下文线程一起交给模型,让它做更好的比对、归纳和引用,而不是直接替代检索层。
-
记忆层和知识库层不要混掉。知识库解决“系统知道什么”,记忆层解决“这个用户、这个任务、这个会话刚刚发生了什么”。两者都可能走检索,但职责不同。
如果让我给一个务实结论:
- 公共/企业事实知识:继续用 RAG
- 会话状态与用户偏好:单独做 memory
- 复杂归纳与多文档比较:利用长上下文增强生成阶段
所以不是“长上下文 vs RAG”,而是“长上下文把 RAG 从粗召回时代推进到精筛选时代”。