简介:本文围绕大模型上下文利用中的两类主流方案展开对比:一类是以检索增强生成(RAG)为代表的外部知识集成方式,另一类是以记忆系统、工具推理与多智能体协同为代表的上下文工程实现体系。文章将从架构设计、知识更新能力、系统复杂度、适用场景与迁移成本等维度进行系统分析,帮助技术负责人与开发者根据业务需求选择合适的上下文增强路径,避免盲目引入复杂架构或忽视长期维护成本。
大模型在静态参数中保存的知识存在两个明显边界:一是训练数据存在时间截止点,无法覆盖训练之后产生的信息;二是模型参数难以针对特定领域、特定企业或特定任务进行细粒度更新。为了突破这两个限制,业界逐渐形成了“通过上下文动态引入外部信息”的技术路线,也就是上下文工程。
上下文工程不是一个单一技术,而是一类方法的总称。它涵盖检索增强生成、记忆管理、工具调用与多智能体协同等多个方向,核心目标是把语言模型从“只依赖参数记忆的生成器”改造成“能够按需获取、组织并利用外部上下文的推理系统”。
本文的对比对象可以归纳为两组:
需要说明的是,RAG 本身也是上下文工程的一部分。这里将二者对比,目的不是割裂它们,而是帮助读者理解:当 RAG 的简单检索链路无法满足需求时,哪些额外的上下文机制值得引入,以及引入这些机制会带来怎样的成本与收益。
RAG 的基本思想是:在生成回答之前,先根据用户问题从外部知识库中检索相关文档、片段或结构化数据,再把这些检索结果作为上下文拼接到提示中,让模型基于最新证据生成答案。
其形式化理解可以简化为:
输入问题 Q→ 检索器从知识库 K 中召回相关片段 D→ 将 Q 与 D 拼接为上下文 C→ 生成器基于 C 输出答案 A
相比单纯依赖模型参数记忆的方式,RAG 的核心价值在于:
上下文工程并不满足于“检索—生成”的线性链路,而是把上下文的设计、获取、组织、更新与调度视为一个系统工程。从原文描述的实现分类来看,它至少包括四个方向:
| 分类 | 核心机制 | 解决的关键问题 |
|---|---|---|
| 模块化 RAG | 路由、调度、融合、子模块组合 | 不同查询需要不同检索策略,单一线性链路不够灵活 |
| 记忆系统 | 长期记忆与短期工作记忆架构 | 多轮交互中需要跨会话保持状态,支持长期学习 |
| 工具集成推理 | 函数调用、环境交互 | 模型不仅要“知道”,还要能操作外部系统 |
| 多智能体系统 | 通信协议与编排机制 | 复杂任务需要多个专业角色协作完成 |
因此,RAG 可被看作上下文工程中“知识获取”这一子问题的成熟解法,而完整的上下文工程体系则尝试解决更广泛的问题:模型如何持续积累、选择并使用各类上下文,以完成多变且复杂的真实任务。
尽管 RAG 与完整的上下文工程体系在复杂度上差异明显,但它们在以下方面具有共同基础。
第一,都试图超越静态参数限制。 无论是通过检索外部文档,还是通过记忆模块保存历史交互,本质上都是把“模型参数中没有的信息”转化为“生成时可用的上下文”。
第二,都依赖上下文窗口作为信息通道。 二者的最终效果都受限于模型能够接收的上下文长度、组织方式与信息密度。上下文窗口是它们共同的资源约束。
第三,都需要处理“信息质量”问题。 RAG 要解决检索结果是否相关、是否冗余;记忆系统要处理记忆是否过期、是否冲突;工具推理要判断工具返回结果是否可信。信息质量是所有上下文工程方案的共同挑战。
第四,都遵循“获取—组织—利用”的基本阶段。 从原文对模块化 RAG 的描述可以看到,即使是更复杂的上下文系统,也依然围绕检索、融合、读取、生成等基础操作单元展开。这说明再复杂的架构也是对基础范式的组合与重构。
朴素 RAG 的链路相对固定:先检索、再拼接、最后生成。这种方式实现简单,但在面对多跳问题、模糊查询或多知识源场景时,容易产生检索偏差,且错误会沿链路向后传递。
模块化 RAG 则引入了更灵活的结构:
顶层:整体 RAG 阶段编排中层:检索、重写、路由、融合等子模块底层:具体操作单元,如向量召回、关键词匹配、重排序等
这种分层设计允许系统根据查询类型动态选择执行路径。例如,对于需要比较多个候选答案的问题,可以采用“生成—读取”方式,先让模型生成中间结果,再基于中间结果发起二次检索;对于多查询场景,可以并行执行多个检索分支后融合结果。
差异点在于:线性架构的优点是可控、易调试;可重构架构的优点是灵活、能应对复杂场景,但系统复杂度和调试难度显著上升。
基础 RAG 的知识更新主要靠重建或增量更新知识库索引。这种方式对文档型知识有效,但难以处理“随时间变化的用户状态”“任务执行中的临时上下文”等信息。
记忆系统则引入了更接近认知科学的架构:
例如,在同一个用户多次使用的客服场景中,基础 RAG 每次只根据当前问题和知识库给出回答,无法记住用户三天前已经反馈过的设备型号;而带有记忆层的系统可以优先使用历史上下文,减少重复询问。
差异点在于:RAG 擅长“从外部文档获取静态知识”,记忆系统擅长“维护动态演进的交互状态”。
RAG 的输出本质上仍然是文本生成。即使检索到正确信息,模型也只能“告诉用户答案”,不能直接改变外部系统的状态。
工具集成推理则把语言模型扩展为智能体。例如:
用户:帮我把本周报告汇总后发送给相关人员模型:调用文档读取工具 → 调用摘要生成能力 → 调用消息发送接口
这种能力依赖函数调用定义、参数解析、执行结果回填与错误处理机制。它使模型从“信息提供者”转向“任务执行者”。
差异点在于:RAG 解决“知不知道”的问题,工具推理解决“做不做得到”的问题。 对于需要操作外部系统、触发业务流程或执行计算任务的场景,仅靠 RAG 是不够的。
基础 RAG 通常是单一路径:一个查询进来,一个答案出去。即使内部有检索与生成的组件分工,也是串行且单一角色的。
多智能体系统则允许不同角色并行或串行协作。例如,在一个复杂的分析任务中:
智能体 A:负责查询理解与任务拆解智能体 B:负责从数据库检索相关信息智能体 C:负责从文档库检索补充材料智能体 D:负责整合结果并输出报告
这些智能体通过通信协议交换中间结果,由编排机制控制执行顺序与失败重试。
差异点在于:单链路系统适合边界明确的问题,多智能体系统适合需要多专业视角、多步骤协同的开放任务。 但多智能体系统的通信开销、一致性问题与调试难度也更高。
从工程实现角度看,几类方案的成本大致呈现递进关系:
朴素 RAG < 模块化 RAG < RAG + 记忆 < RAG + 工具 < 多智能体系统
成本不只在开发阶段。系统越复杂,监控、告警、错误追踪、版本管理、回归测试与人力投入都会相应增加。对于团队规模较小或业务需求尚不明确的场景,直接引入完整上下文工程体系可能带来“过度设计”风险。
| 对比维度 | 朴素 RAG | 模块化 RAG | RAG + 记忆系统 | RAG + 工具推理 | 多智能体系统 |
|---|---|---|---|---|---|
| 架构复杂度 | 低 | 中 | 中高 | 高 | 很高 |
| 知识来源 | 静态文档库 | 多源动态路由 | 文档库 + 交互历史 | 文档库 + 外部系统 | 多源 + 多角色协作 |
| 知识更新方式 | 索引更新 | 索引更新 + 策略调整 | 索引更新 + 记忆写入/遗忘 | 索引更新 + 实时调用 | 综合机制 |
| 跨会话状态保持 | 不支持 | 有限支持 | 强支持 | 有限支持 | 依赖编排设计 |
| 行动能力 | 无 | 无 | 无 | 有 | 有 |
| 可调试性 | 高 | 中 | 中 | 中低 | 低 |
| 适用任务类型 | 单轮知识问答 | 多策略检索问答 | 个性化助手、长期用户交互 | 业务操作、数据查询与执行 | 复杂分析、多方协作任务 |
| 运维负担 | 低 | 中 | 中高 | 高 | 很高 |
在这些场景中,朴素 RAG 或配置了混合检索策略的模块化 RAG 通常可以满足需求,工程成本可控。
此时系统不仅要“查到对的资料”,还要“记得之前发生了什么”。
RAG 负责提供背景知识,工具推理负责执行具体动作,两者结合可以覆盖“查询 + 执行”的完整链路。
这类场景通常意味着业务本身已经具备清晰的复杂度,并且团队有足够的工程能力进行长期的系统维护。
选型时,建议从四个问题出发进行判断:
第一,知识是否静态?
如果知识库更新频率低、结构稳定,基础 RAG 即可;如果用户状态和任务上下文持续变化,需要引入记忆机制。
第二,任务是否需要行动?
如果答案只需要被阅读,RAG 足够;如果需要改变系统状态,必须接入工具推理。
第三,单链路是否够用?
如果一种检索策略能覆盖大多数查询,不宜过早引入复杂路由;如果查询类型差异大,例如事实查询、对比查询、聚合查询混杂出现,模块化 RAG 的收益会更高。
第四,团队是否有能力维护复杂系统?
系统复杂度应当与团队运维能力匹配。对于尚未建立完善的监控、日志与回归测试机制的团队,优先选择链路简单、行为可预期的方案。
一个实用的渐进式演进路径是:
第一阶段:朴素 RAG 验证业务价值第二阶段:引入混合检索与重排序,提升检索质量第三阶段:按需加入记忆模块或工具调用第四阶段:在任务复杂度明确后,再评估多智能体编排
避免在业务早期直接构建全套上下文工程体系。架构上的“完备”如果超越了业务实际需求,反而会拖慢迭代速度并抬高维护成本。
如果已经在使用基础 RAG,计划向更复杂的上下文工程方案演进,以下事项需要提前评估。
数据与索引兼容性。 模块化 RAG 或记忆系统可能引入新的数据结构,例如用户记忆表、任务状态表、工具调用日志等。需要在现有知识库之外规划新的存储与同步机制。
接口与流程适配。 工具推理要求定义函数接口、参数格式与返回结构。如果企业内部已有服务接口,需要评估其是否满足模型调用的约束,例如是否支持结构化输入输出、返回内容是否简洁可解析。
权限与安全边界。 记忆系统会保存用户级数据,工具调用会触发真实业务操作。必须设计清晰的权限控制与审计机制,避免模型在缺乏约束的情况下执行高风险操作。
稳定性与回退策略。 更复杂的系统意味着更多可能的失败点。需要为检索失败、工具超时、智能体通信中断等情况设计降级方案。例如,工具调用失败时可以回退为纯文本回答,提示用户改为人工处理。
评估体系升级。 当系统从单轮知识问答扩展到多轮任务执行后,只评估“回答是否正确”已经不够。需要引入任务完成率、工具调用准确率、跨会话状态保持正确率等多维指标。
RAG 与更广泛的上下文工程体系并不是替代关系,而是能力层级上的递进关系。
RAG 的核心贡献在于:用可更新、可追溯的外部知识库弥补模型参数的时间边界与领域边界问题,是企业大模型应用的优先落地点。其实现相对轻量,效果容易验证。
而模块化 RAG、记忆系统、工具推理与多智能体系统,则分别从检索灵活性、状态持续性、行动能力与协作能力四个方向扩展了上下文工程的边界。
选择哪种方案,取决于业务对知识新鲜度、交互连续性、任务执行能力与系统弹性的具体要求。适度设计、渐进演进、与团队能力匹配,是更务实的工程策略。对于大多数团队来说,先用好 RAG,再根据真实瓶颈逐步引入更复杂的上下文机制,往往比一开始就构建完整系统更稳妥。