新港智优科技机灵AI
GEO研究2026/10/8王涛(Taomir)

长上下文为什么不能自动取代RAG:从窗口容量到信息调度

长上下文能接收更多材料,但RAG是否保留仍取决于任务、资料和测试结果。本文解释检索、上下文组织、Skill、Memory与运行控制的职责及选择方法。

把全部资料放进上下文,模型就能把它们用好吗?这个问题值得和“窗口够不够大”分开检查。

长上下文让模型能接收更多材料,也让一些任务可以直接处理整篇文档。但外部资料如何取得、哪些证据与问题有关、旧信息是否过期、答案能否对应来源,仍然需要工程设计。我的判断是,窗口容量变大以后,信息筛选和组织的工作依然存在;RAG是否需要保留,要看任务和实际测试结果。

长上下文解决容量问题,有效利用仍需检验

一份材料能够放进窗口,只说明输入长度符合限制。要判断模型是否用得好,需要看它是否找到关键证据、正确处理冲突,并完成用户真正要做的事。

较早的原始研究《Lost in the Middle》在多文档问答和键值检索任务中观察到,相关信息的位置会影响所测模型的表现。这篇论文于2023年公开。它提供了检查上下文利用的实验依据,不能据此宣布所有当前模型都会以同样方式退化,也不能推出“窗口越长,答案必然越差”。

我把“注意力有限”作为提醒自己管理输入的工程说法。它不代表已经测到了某个平台内部的注意力分配,更不意味着答案错误都来自同一种机制。噪声、任务理解、检索缺失、来源过期和输出约束,都可能影响结果。

对资料已经完整取得、规模可控、需要理解全文的任务,可以先尝试直接使用长上下文。例如阅读一份结构清楚的合同,抽取条款后再检查条款之间的关系。若任务依赖持续更新的事实、分散的大量文档、访问权限或逐项引用,外部检索与来源管理仍有明确用途。资料能放进去,并不会自动解决这些问题。

向量化负责找候选,输入组织决定交给模型什么

向量化常用于把问题与文档片段表示成可比较的向量,帮助检索相关候选。候选进入答案生成之前,还需要检查主体、时间、来源、重复内容和相互冲突的事实。

我在自有RAG四层排查里把这部分放在答案层。哪些片段进入上下文、顺序怎样、token总量是否受控、有没有单一来源占据大部分输入,都值得检查。召回率较好,仍然可能出现证据组织不当或答案不忠于材料的问题。

检索算法不能直接替我们指定模型内部的注意力权重,但它可以通过候选筛选改变输入;排序、压缩、去重和提示结构也会影响模型面对的材料。所以“向量化解决了检索”不等于后续无需管理,也不意味着检索对有效利用毫无帮助。

我在检索工程与top-k中提到过TaoHtml的交付质量约束,包括隔离输入、浏览器QA、人工评审维度以及未通过检查时停止交付。这些措施检查报告的可追溯性和交付质量,不能直接当作注意力机制的实验。固定题集的作用也类似,它帮助比较不同运行结果;仅仅固定题数,无法证明模型已经充分利用上下文。

RAG把外部知识接入生成,多轮代理是其中一种工程选择

从工程角度看,我愿意把RAG理解为一段输入组织过程,依据问题取得外部材料,筛选证据,再以生成模型能够使用的形式提交。这里的“翻译”是一种工作解释,不是对所有RAG实现的严格定义。

Lewis等人的原始RAG论文将检索取得的非参数知识与生成模型结合。这个基础概念并不要求每个环节都有LLM,也不要求每个问题必须经过多轮搜索。

知识库范围稳定、问题清楚、一次检索即可提供完整证据时,简单流程可能已经够用。需要比较多个对象、检查新事实,或第一轮材料不足时,再考虑查询拆解、追加检索和证据评估。每增加一轮,都应能说清它补了哪个缺口,同时限制耗时和成本。Anthropic的工程说明也区分预定义工作流与模型动态控制的Agent,并建议按任务需要增加复杂度。

我在代理检索-lite中讨论过推荐类问题的多路检索。它解决多个检索方向的问题;长上下文解决能接收多少输入的问题。两者可以配合,也可能各自不必使用,不能只根据模型窗口大小决定整条检索架构。

每一步该看到什么,需要分清几种职责

Anthropic在2025年的Context Engineering文章中讨论了持续整理模型上下文的工程问题。对我来说,它把关注点推进到每次调用之前,当前任务需要哪些材料,哪些旧记录该继续保留,哪些内容已经可以移出。

下面是我用于理解工程职责的一种归纳,不是某一家产品的统一架构规范。实际系统可以把这些职责合并,也可以分开实现。

组件或工作 主要处理的问题 需要检查的边界
RAG与外部检索 这次问题需要取得哪些外部证据 召回完整性、时效、权限、来源是否可靠
Skill 当前任务需要加载哪些专业步骤或工具说明 适用任务、版本、是否只加载必要内容
Memory 过去哪些事实或决定值得保留到后续步骤 过期、错误累积、项目混淆和纠正机制
上下文组织 这次调用最终提交哪些指令、证据和状态 重复、冲突、顺序、体积和可追溯性
Harness或运行控制层 什么时候取资料、用工具、压缩、重试或结束 权限、预算、失败处理和停止条件

其中,Skill可以包含程序化步骤和辅助文件,按需加载是Agent Skills官方说明中的重要做法。它和检索事实资料解决的问题不同。工具说明加载正确,不代表事实来源已经充分;保留了历史记录,也不代表记录仍然有效。

以“根据新版本产品文档回答客户问题”为示意任务,第一步先明确产品和版本,第二步取得允许访问的相关文档,第三步检查关键事实和冲突,再组织生成输入。后续出现新问题,重新判断要补哪些资料。这个例子只是工作流程示意,不是客户项目或实验结果。

选长上下文、RAG还是组合,先看任务条件

我会先检查资料是否完整、是否持续变化,以及错误的代价,再决定输入路线。

任务条件 可以先尝试的路线 主要验证点
单份或少量完整文档,体积可控,需要理解全文 直接长上下文 关键内容有没有遗漏,全文关系能否正确处理
大量文档中只有少部分与问题相关,或资料持续更新 检索后生成 检索是否漏掉证据,是否取到正确版本
需要先发现材料,再对若干完整文档做综合分析 检索与长上下文组合 取得范围是否充分,输入是否保留原始依据
证据不足就应停止回答的任务 在上述路线加入证据检查与停止条件 能否明确承认不足,不靠流畅表达补齐事实

这些路线都要拿同一批真实任务比较。可以先固定资料版本、模型、问题和评分规则,记录正确性、证据支持、遗漏、延迟与成本。再分别观察输入路线的结果,确认差异来自哪里。

若要检查材料顺序或压缩是否影响结果,尽量一次只改一个因素。比较顺序时保持材料不变;比较压缩时记录压缩后删掉了什么;比较检索与全文输入时,明确两种路线取得的证据是否相同。模型有随机波动,就做重复运行,避免把一次变化当成稳定改进。

这也是我继续使用采样器和Benchmark的理由。它们应帮助我们发现具体失败、保留可比较记录,而不只是证明工具已经存在。眼下没有带明确指标和对照的原始记录,就不能把信息调度的收益写成“提升一个量级”。

下一次遇到答案错误,我会先把关键证据找出来,检查它有没有取得、有没有进入实际输入、版本是否正确,再看答案如何使用它。这样才能决定是改检索、改上下文组织,还是重新评估模型和任务约束。单独调大窗口,可能解决容量不足;剩下的问题需要沿这条记录继续查。

参考资料