引言:它们不是三个孤立概念,而是一套上下文系统

在大模型应用开发中,很多人会同时听到三个词:MCP、RAG、Context Engineering。它们看起来都和“上下文”有关,但又各自强调不同方向。

RAG 讲的是如何把外部知识检索出来,交给大模型使用。MCP 讲的是如何让大模型应用安全、标准化地连接外部工具和数据源。Context Engineering 讲的是如何设计、组织、压缩、选择和维护模型在运行时真正看到的上下文。

简单来说:RAG 是取知识的方法。MCP 是接工具和数据的协议。Context Engineering 是管理上下文的整体工程方法。

如果把大模型应用比作一个智能助理,RAG 像资料检索员,MCP 像标准接口和工具插座,Context Engineering 则像总调度员,决定什么时候查资料、什么时候调用工具、哪些信息该放进上下文、哪些信息该丢掉,以及如何让模型在有限窗口内做出稳定判断。

什么是 RAG

RAG,全称是 Retrieval-Augmented Generation,即检索增强生成。它的核心思想是:大模型在回答问题前,先从外部知识库、文档、数据库或搜索系统中检索相关内容,再基于这些内容生成答案。

传统大模型主要依赖训练时学到的知识,但模型知识可能过时,也可能缺少企业内部资料。RAG 的价值就在于,它能把最新、私有、专业的知识动态补充给模型。

RAG 最适合解决的问题是:模型不知道、记不准、容易过时、需要引用来源的知识型任务。

  • 用户提问:用户输入问题或任务。
  • 查询改写:系统将问题改写成更适合检索的查询。
  • 文档检索:从向量数据库、全文索引或知识库中查找相关内容。
  • 片段筛选:选择最相关的文档片段。
  • 上下文组装:把片段放入 prompt。
  • 模型生成:大模型基于检索内容回答问题。
  • 引用与验证:输出来源、证据或置信度。

RAG 的重点不是“让模型变聪明”,而是让模型在生成时能看到更准确的信息。RAG 最早的代表性论文提出,将预训练模型的参数知识与外部非参数记忆结合,可以让生成结果更具体、更有事实依据,尤其适合知识密集型任务。

RAG 适合哪些任务

只要任务需要外部知识支撑,就可能用到 RAG。

  • 企业内部制度问答
  • 产品文档助手
  • 法律条款检索
  • 代码库问答
  • 客服知识库
  • 研究资料总结
  • 数据库文档查询

什么是 MCP

MCP,全称是 Model Context Protocol,即模型上下文协议。它是一个开放标准,用来连接 AI 应用与外部系统。MCP 官方文档将其定义为一种开放标准,可以让 AI 应用连接外部数据源和工具。

如果说 RAG 主要解决“怎么查知识”,那么 MCP 解决的是“怎么标准化连接外部能力”。

MCP 的价值在于,它给 AI 应用和外部工具之间提供了统一接口。过去,每个 AI 应用都要单独适配一套 API。现在,通过 MCP,工具提供方可以暴露标准能力,AI 应用可以用统一方式调用这些能力。

可以把 MCP 想象成 AI 时代的 USB-C 接口。不同工具不必为每个模型单独写插件,只要支持 MCP,就能被支持 MCP 的 AI 应用发现和调用。Anthropic 在介绍 MCP 时也强调,它是一个开放标准,用于在 AI 工具和数据源之间建立安全的双向连接。

  • 文件系统
  • 数据库
  • Git 仓库
  • API 服务
  • SaaS 工具
  • 内部业务系统
  • 浏览器自动化工具
  • 终端命令
  • 设计工具
  • 监控日志系统

什么是 Context Engineering

Context Engineering 可以翻译为上下文工程。它不是单一技术,而是一套工程方法。它关心的问题是:在模型推理时,应该给模型什么信息、以什么顺序给、给多少、什么时候更新、什么时候删除、如何压缩、如何验证。

大模型不是直接“知道”应用里的一切。它只会基于当前上下文窗口中的内容进行推理。因此,谁能更好地设计上下文,谁就能更稳定地控制模型输出。

Anthropic 将 Context Engineering 描述为在 LLM 推理期间策划和维护最佳 token 集合的一组策略。这个定义很关键,因为它说明上下文工程不是简单写 prompt,而是运行时信息管理。

  • 上下文选择:哪些信息该进入 prompt。
  • 上下文压缩:长文档、历史对话、工具结果如何缩短。
  • 上下文排序:重要信息放在哪里。
  • 记忆管理:哪些内容需要长期保存。
  • 工具结果管理:工具调用结果如何进入上下文。
  • 检索策略:何时使用 RAG,检索多少内容。
  • 状态维护:Agent 多轮任务中如何保持目标一致。
  • 安全过滤:敏感信息、恶意提示如何处理。
  • 成本控制:如何减少无效 token。
  • 评估优化:如何判断上下文设计是否有效。

一句话理解三者关系

RAG 是一种上下文来源。MCP 是一种上下文和工具连接方式。Context Engineering 是决定如何使用这些上下文的整体方法。

更直白一点:RAG 负责“找资料”,MCP 负责“接工具”,Context Engineering 负责“安排资料和工具怎么进入模型脑子里”。

三者不是互相替代,而是互相配合。

  • 用 MCP 连接企业数据库、文件系统、API 和内部工具。
  • 用 RAG 从文档库、知识库或代码库中检索相关信息。
  • 用 Context Engineering 判断哪些信息真正重要,并组织成适合模型推理的上下文。

三者在 AI 应用架构中的位置

RAG 和 MCP 通常位于上下文输入的来源侧,而 Context Engineering 位于整体编排层。

MCP 不等于 RAG。RAG 也不等于 Context Engineering。Context Engineering 可以包含 RAG,也可以使用 MCP 提供的工具结果。

  • 数据与工具层:文档、数据库、API、文件、业务系统,对应外部资源。
  • 连接协议层:用统一方式连接外部资源,对应 MCP。
  • 检索增强层:从知识源中找到相关内容,对应 RAG。
  • 上下文编排层:选择、压缩、排序、注入、维护上下文,对应 Context Engineering。
  • 模型推理层:基于上下文生成答案或行动计划,对应 LLM。
  • 执行反馈层:调用工具、运行任务、更新状态,对应 Agent Workflow。

MCP 和 RAG 的关系

MCP 和 RAG 很容易被混淆,因为它们都能把外部信息带给模型。但它们的目标不同。

RAG 更关注“知识检索”。它通常面对的是文档、文本、知识库、向量数据库和搜索索引。

MCP 更关注“能力连接”。它不仅可以连接文档,也可以连接工具、API、数据库、终端、浏览器和业务系统。

企业问答里谁是主角

一个企业问答机器人可以这样工作:用户问“我们公司的报销标准是什么?”,系统用 RAG 从制度文档中检索相关条款,模型根据检索内容回答。这个场景中,RAG 是主角。

再看另一个场景:用户说“帮我查一下张三这个月的报销记录,并生成审批建议。”系统通过 MCP 连接财务系统,调用报销 API 获取数据,再把结果交给模型分析。这个场景中,MCP 更关键,因为它连接的是实时业务系统和工具调用能力。

当然,二者也可以结合:MCP 连接企业知识库,RAG 在知识库中检索制度文档,MCP 再连接财务系统查询真实报销记录,Context Engineering 将制度条款和报销数据组合进上下文,模型生成审批建议。

RAG 和 Context Engineering 的关系

RAG 是 Context Engineering 的一个重要组成部分,但不是全部。

很多人以为只要接了向量数据库,就是做好了上下文工程。实际上,这只是完成了上下文工程中的“检索”环节。

所以,RAG 解决“取什么”,Context Engineering 解决“怎么用”。

  • 检索多少条?
  • 检索结果是否相关?
  • 是否需要重排?
  • 文档片段是否太长?
  • 是否需要摘要压缩?
  • 是否存在冲突信息?
  • 是否需要保留引用来源?
  • 多轮对话中旧信息是否仍然有效?
  • 工具返回结果要不要进入上下文?
  • 哪些内容会干扰模型判断?

退款政策例子里 Context Engineering 做什么

例如,用户问:“我们最新的退款政策是什么?”

普通 RAG 可能检索到五份文档,包括旧政策、新政策、会议纪要、客服 FAQ 和历史公告。如果系统直接把这些内容全部塞给模型,模型可能混合新旧规则,生成错误答案。

Context Engineering 要做的是判断哪些文档是最新版本,删除过期片段,提取关键条款,保留来源链接,将“以最新正式政策为准”写进上下文,并要求模型不确定时提示人工确认。

MCP 和 Context Engineering 的关系

MCP 为 Context Engineering 提供更多上下文来源和工具能力。

在没有 MCP 的系统中,AI 应用通常只能访问固定数据库或预先配置的 API。加入 MCP 后,AI 应用可以用标准方式访问更多外部能力。

但连接能力越强,上下文工程越重要。因为 MCP 带来的不只是信息,还有行动能力。模型不仅能“看”,还可能会“做”。

  • 读取项目文件。
  • 查询数据库。
  • 调用 Git。
  • 获取 Jira 任务。
  • 查看日志。
  • 调用浏览器。
  • 操作设计稿。
  • 执行内部 API。

MCP 是连接层,Context Engineering 是控制层。没有好的 Context Engineering,MCP 可能导致工具乱用、上下文污染、权限过大和安全风险。

MCP 工具调用时要控制什么

当模型可以调用 MCP 工具时,Context Engineering 必须决定:

  • 什么时候允许调用工具。
  • 工具结果是否可信。
  • 是否需要用户确认。
  • 是否要限制工具权限。
  • 调用结果如何进入上下文。
  • 失败后如何重试。
  • 哪些操作属于高风险。
  • 如何记录审计日志。

用一个比喻理解三者

假设你有一个 AI 实习生,正在帮你处理工作。

RAG 像资料室。它可以帮实习生找到公司制度、产品文档、历史邮件和技术方案。

MCP 像门禁卡和工具箱。它让实习生能进入不同系统,比如数据库、Git、工单系统、CRM 和日志平台。

Context Engineering 像主管。它告诉实习生:这次任务要看哪些资料、能用哪些工具、哪些信息最重要、哪些动作必须先请示、输出格式是什么、完成后如何验收。

如果只有 RAG,实习生能查资料,但不一定能操作系统。如果只有 MCP,实习生能打开很多工具,但可能不知道该看什么、怎么判断。如果只有 Context Engineering,但没有 RAG 和 MCP,它就缺少可用的数据和工具来源。三者合起来,才形成完整的 Agent 工作系统。

典型场景:企业知识助手

企业知识助手是 RAG 最常见的应用场景,但如果要做到可用,通常也需要 MCP 和 Context Engineering。

用户问:“我们公司今年的年假政策和去年相比有什么变化?”

这里,MCP 负责连接文档系统,RAG 负责找到相关文档,Context Engineering 负责版本判断、内容筛选、差异组织和输出约束。

如果只做 RAG,系统可能会把旧文档也当成有效依据。如果只做 MCP,系统只能拿到文档,却未必能高质量检索。如果缺少 Context Engineering,答案可能冗长、混乱,甚至引用错误。

  • 通过 MCP 连接企业文档系统。
  • 用 RAG 检索今年和去年的年假政策。
  • 对检索结果进行版本识别。
  • 提取政策差异。
  • 将差异整理成上下文。
  • 模型生成对比答案。
  • 输出引用来源。

典型场景:代码库 Agent

代码库 Agent 是三者关系最清楚的场景。

用户说:“帮我找出登录接口为什么偶尔返回 500,并尝试修复。”

这里,RAG 负责找相关代码和知识;MCP 负责让 Agent 能读文件、跑命令、调工具;Context Engineering 负责控制上下文、执行步骤和安全边界。

这也是为什么现代 AI Terminal、AI IDE 和编码 Agent 越来越强调“上下文工程”,而不只是简单的代码生成。

  • 通过 MCP 连接文件系统、Git、终端和测试工具。
  • 通过 RAG 检索相关代码、日志、历史 issue 和文档。
  • Context Engineering 将错误日志、相关函数、测试结果和任务目标组合成上下文。
  • 模型分析可能原因。
  • Agent 修改代码。
  • 运行测试。
  • 将 diff 和测试结果反馈给开发者。

典型场景:数据分析 Agent

假设用户问:“帮我分析上个月用户流失原因,并生成一份报告。”

在这个场景中,RAG 提供背景知识,MCP 提供实时数据访问能力,Context Engineering 负责让模型不要混淆指标、不要过度推断,并按业务需要生成报告。

  • 通过 MCP 连接数据库。
  • 调用 SQL 查询用户行为数据。
  • 用 RAG 检索历史分析报告、指标定义和业务文档。
  • 用 Context Engineering 组织查询结果、指标说明和分析目标。
  • 让模型生成结构化报告。
  • 最后输出图表说明和结论。

三者的核心区别

可以从关注点、主要作用、典型对象和解决的问题来区分三者。

RAG关注检索知识,主要找相关资料,典型对象是文档、知识库、向量库,用来解决模型知识不足或过时。
MCP关注连接工具和数据源,主要标准化外部能力接入,典型对象是 API、数据库、文件和工具,用来解决工具接入混乱。
Context Engineering关注管理模型运行时上下文,决定信息如何进入模型,典型对象是 prompt、记忆、工具结果和检索片段,用来解决上下文过长、混乱、不稳定。

为什么 Context Engineering 变得越来越重要

早期大模型应用多是简单问答,写好 prompt 就能完成不少任务。但 Agent 时代不同。

Agent 不只是回答问题,还会多轮规划、调用工具、读取文件、修改代码、查询数据库、记住用户偏好、执行长任务,并根据反馈调整计划。

这会带来上下文爆炸。上下文里可能同时有用户目标、系统规则、历史对话、工具返回、检索文档、代码片段、错误日志、API 响应、权限说明和输出格式要求。如果没有工程化管理,模型很容易被无关信息干扰。

Context Engineering 的目标就是让模型在正确时间看到正确信息。它关注的不是“把所有东西塞进去”,而是“让模型只看到完成当前任务所需的高质量信息”。

常见误区一:以为 RAG 就等于知识库问答

RAG 不只是知识库问答。它是一种检索增强思想,可以用于很多任务。

RAG 的核心是把外部信息动态引入生成过程。只要任务需要外部知识支撑,就可能用到 RAG。

  • 问答
  • 摘要
  • 代码生成
  • SQL 生成
  • API 调用
  • 合规审查
  • 推荐系统
  • 多轮 Agent 规划

常见误区二:以为 MCP 可以替代 RAG

MCP 不能替代 RAG。MCP 解决连接问题,RAG 解决检索问题。

MCP 可以让 AI 应用访问一个文档系统,但如何从几百万篇文档中找到最相关的几段内容,仍然需要检索、排序、过滤和上下文组装。这正是 RAG 和 Context Engineering 的工作。

换句话说,MCP 让门打开,RAG 帮你找到房间里的资料,Context Engineering 决定哪些资料放到桌上。

常见误区三:以为上下文越多越好

上下文不是越多越好。上下文越多,成本越高,噪声越多,模型越可能忽略关键内容。

在很多场景中,少而准的上下文比多而杂的上下文更有价值。

  • 删除无关片段。
  • 压缩重复信息。
  • 保留关键证据。
  • 标记信息来源。
  • 区分事实与推断。
  • 优先使用最新版本。
  • 避免把工具错误结果当成事实。

好的 Context Engineering 会做减法。

常见误区四:以为 Agent 只要接上工具就能工作

Agent 接上 MCP 工具后,确实能做更多事,但也更容易出错。

例如,Agent 可以访问数据库,但它是否应该执行写操作?Agent 可以调用终端,但它是否可以删除文件?Agent 可以读取日志,但是否会泄露用户隐私?Agent 可以打开网页,但是否会被网页中的恶意提示诱导?

这些问题都不是 MCP 单独能解决的,而需要 Context Engineering、安全策略、权限管理和人工审查共同完成。

如何设计一个合理的组合架构

一个成熟的大模型应用,通常可以按五层设计。

  • 第一层:资源连接。使用 MCP 或类似协议连接外部系统,包括文件、数据库、API、搜索引擎、业务系统和开发工具。
  • 第二层:检索增强。使用 RAG 从文档、知识库、代码库或历史记录中检索相关内容,并进行重排、过滤和摘要。
  • 第三层:上下文编排。使用 Context Engineering 决定哪些检索结果进入 prompt,哪些工具结果需要保留,哪些历史对话要压缩,哪些规则必须放在最前面,哪些内容必须引用来源,哪些动作需要人工确认。
  • 第四层:模型推理。大模型基于整理好的上下文进行回答、规划或决策。
  • 第五层:工具执行与反馈。Agent 调用工具执行任务,再把结果反馈回上下文系统,形成闭环。

安全视角下的三者关系

三者越结合,系统能力越强,安全要求也越高。

在生产环境中,三者必须配合权限控制、日志审计、输入过滤、输出验证和人工确认机制。

RAG 风险检索到错误或过期内容,文档中存在恶意提示,私有数据被错误暴露,引用来源不准确。
MCP 风险工具权限过大,连接了不可信服务,API 调用缺少审批,工具返回结果被污染,可能出现命令执行风险。
Context Engineering 风险重要规则被上下文挤掉,敏感信息进入模型,历史记忆污染当前任务,工具结果未验证就被使用,用户指令覆盖系统约束。

实际落地建议:知识问答类应用

知识问答类应用优先建设 RAG,再补充 Context Engineering。

重点是文档切分、检索质量、版本管理、引用来源和答案准确性。

  • 企业制度问答。
  • 产品文档助手。
  • 客服知识库。
  • 内部培训助手。

实际落地建议:工具调用类应用

工具调用类应用优先建设 MCP 或工具协议,再强化 Context Engineering。

重点是权限控制、工具描述、参数校验、调用审批和执行日志。

  • 自动创建工单。
  • 查询业务数据。
  • 调用内部 API。
  • 操作开发工具。
  • 自动化办公流程。

实际落地建议:Agent 类应用

Agent 类应用必须同时重视 RAG、MCP 和 Context Engineering。

重点是任务规划、上下文记忆、工具选择、错误恢复、安全边界和结果验证。

  • AI 编程助手。
  • 数据分析 Agent。
  • 运维 Agent。
  • 研究 Agent。
  • 企业流程自动化 Agent。

未来趋势:从 Prompt Engineering 走向 Context Engineering

Prompt Engineering 曾经是大模型应用开发的核心技能。开发者主要关注如何写好提示词,让模型输出更好结果。

但随着 Agent、工具调用、长上下文、记忆系统、RAG 和 MCP 的发展,只写 prompt 已经不够了。真正影响模型表现的,是整个上下文系统。

未来的大模型工程更像系统架构设计:数据从哪里来,工具怎么接入,信息如何筛选,记忆如何维护,权限如何控制,结果如何验证,错误如何恢复,成本如何优化。

这就是 Context Engineering 变得重要的原因。它不是 Prompt Engineering 的简单升级,而是 AI 应用从“对话玩具”走向“生产系统”的关键能力。

FAQ:常见问题

1. MCP、RAG、Context Engineering 哪个更重要?

它们解决的问题不同。RAG 解决知识检索,MCP 解决工具和数据连接,Context Engineering 解决上下文编排。对于简单知识问答,RAG 更重要;对于工具型 Agent,MCP 更重要;对于复杂生产系统,Context Engineering 通常最关键。

2. 有了 MCP 还需要 RAG 吗?

需要。MCP 可以连接文档系统或数据库,但它不负责高质量检索。RAG 负责从大量信息中找到相关内容,并将其组织给模型使用。MCP 是连接方式,RAG 是检索方法。

3. RAG 是不是 Context Engineering 的一部分?

可以这样理解。RAG 是 Context Engineering 中非常重要的一环,但 Context Engineering 还包括上下文压缩、排序、记忆、工具结果管理、安全过滤和任务状态维护。

4. 小团队应该先做哪个?

如果目标是知识问答,先做 RAG。如果目标是让 AI 调用工具,先做 MCP 或工具接口。如果目标是复杂 Agent,应该从 Context Engineering 的角度整体设计,再选择是否使用 RAG 和 MCP。

5. MCP 会不会带来安全风险?

会。因为 MCP 让模型应用可以连接外部工具和系统,一旦权限设计不合理,就可能带来数据泄露、误操作或命令执行风险。因此需要最小权限、调用审批、日志审计和高风险操作人工确认。

6. Context Engineering 和 Prompt Engineering 有什么区别?

Prompt Engineering 主要关注如何写提示词。Context Engineering 关注整个运行时上下文系统,包括用户输入、系统规则、历史记忆、检索结果、工具返回、任务状态和安全边界。它比 Prompt Engineering 更工程化,也更适合复杂 AI 应用。

7. RAG 会被长上下文模型取代吗?

不会完全取代。长上下文可以放入更多信息,但仍然需要检索、筛选、排序和压缩。否则上下文会变得昂贵、混乱且难以控制。RAG 和长上下文更可能是互补关系。

8. MCP、RAG、Context Engineering 和 AI Agent 有什么关系?

AI Agent 要完成复杂任务,需要知识、工具和上下文管理。RAG 提供知识,MCP 提供工具连接,Context Engineering 负责管理任务过程中模型看到的信息。因此,三者共同构成了 Agent 系统的重要基础。

结论:RAG 取知识,MCP 接工具,Context Engineering 管全局

MCP、RAG、Context Engineering 并不是三个互相竞争的概念,而是现代 AI 应用中的三个关键层次。

RAG 负责把外部知识找出来。MCP 负责把外部工具和数据源接进来。Context Engineering 负责把知识、工具结果、历史记忆和任务状态组织成模型可用的上下文。

如果只做 RAG,系统可能会成为一个知识库问答工具。如果只做 MCP,系统可能拥有很多工具,却缺少稳定判断能力。如果缺少 Context Engineering,系统很容易出现上下文混乱、工具滥用、答案不稳定和安全风险。

真正成熟的 AI 应用,不是简单接一个模型,也不是随便接几个工具,而是围绕上下文进行系统化设计。未来,大模型应用的核心竞争力,很可能不只是模型本身,而是谁能更好地管理上下文、连接工具、检索知识,并让 Agent 在复杂环境中稳定完成任务。

参考来源

Retrieval-Augmented Generation for Knowledge-Intensive NLP TasksarXivWhat is the Model Context Protocol (MCP)?MCP 官方文档Introducing the Model Context ProtocolAnthropicEffective context engineering for AI agentsAnthropic Engineering

相关文章

MCP Server 安装前怎么检查 tool poisoning 风险智能编程 / 约 12 分钟AI Terminal 会改变什么:为什么终端正在变成 Agent 工作台智能编程 / 约 10 分钟为什么 AI Agent 写代码必须有 AGENTS.md / CLAUDE.md:提高质量的 9 个关键理由智能编程 / 约 16 分钟AI Coding 的下一步:从 prompt 技巧到工程约束智能编程 / 约 18 分钟AI Agent 权限怎么设:哪些命令能自动跑,哪些必须人工确认智能编程 / 约 13 分钟AI Agent 让你安装依赖时,哪些包不能直接允许智能编程 / 约 12 分钟7 个关键洞察:AI Coding 工具真正改变的不是写代码,而是验证代码智能编程 / 约 18 分钟Claude Code 项目上下文怎么检查开发环境 / 约 11 分钟