rag vs agentic search

接入与开发

给技术选型者的对照清单:什么时候用经典 RAG、什么时候上 agentic search、MCP 又该放在哪一层,以及怎么用最小成本先验证再决定。

选型会上常吵成一团:有人说向量检索就够了,有人说必须让模型自己多轮搜,还有人提 MCP 一套就全解决。三个东西其实不在一个层面上,硬比很难有结论。这篇给一张对照表和一套先跑小样本再定方案的顺序,帮你在动手前把边界划清楚。

选型会上经常出现这种场面:做检索的同事说向量库已经跑得好好的,算法同学说必须让模型自己多轮搜才准,还有人拍桌子说接个 MCP 不就全解决了。三个东西被摆在同一张桌子上比高低,结论自然是吵不出结果。

问题出在它们根本不在一个层面上。RAG 是一种流程组织方式,agentic search 是一种决策权分配方式,MCP 是一种接入协议。硬比谁更好,就像问「螺丝刀和电钻哪个更厉害」。这篇不给立场,只给一张对照表、一套判断标准和一条先小样本验证再上线的顺序,帮你在动手写代码之前把边界划清楚。

先分清三层,再谈比较

把三者拆开看,其实各自解决的是不同层面的问题。判断要不要引入某一层,先问自己:现在卡住我的到底是「取不到资料」「不知道下一步该搜什么」还是「资料压根不在我库里」。卡点不一样,该加的层也不一样,加错了就是白折腾。

经典 RAG
固定流水线:切片、入库、召回、拼进上下文,每次问答走的路径完全一样
agentic search
把「搜什么、搜几次、要不要换关键词重搜」的决定权交给模型,路径不固定但可以设步数上限
MCP
工具接入协议,解决「模型怎么连上外部系统」,它本身不负责检索质量,也算不上检索方案

三层可以叠加,而且常见的落地形态就是叠加:RAG 当底座保证兜底召回,agentic search 在复杂问题上接管决策,MCP 把外部系统的实时数据接进来当工具。真正要防的是只有一层却硬撑所有场景。什么情况下这套框架不适用?如果你的全部资料塞得进一次上下文,或者用户问的压根跟你的资料无关,那任何检索层都是多余的一层。

按问题形态挑:四类场景对号入座

你遇到的形态优先选理由
语料稳定、问题集中在固定领域、要求延迟和成本可预测经典 RAG固定链路好压测、好算账,出问题定位也快
语料横跨多个来源、要跨文档比对或先定位再追问agentic search让模型多轮召回,比一遍过的固定链路更扛复杂问题
资料在别人系统里、需要实时读写而不是索引副本MCP把外部系统当工具接进来,不复制数据
数据量极小、全部塞得进上下文都不上多一层检索就多一层延迟和一个故障点

这张表只是第一道筛子,具体项目还得看数据更新频率和团队维护成本。举例来说,一个 5 人小团队做内部知识问答,语料就是几十份产品文档,这种情况经典 RAG 足够;但如果他们要同时查文档、查工单系统、查一份外部供应商接口,那就不是检索策略问题,而是接不上数据源的问题,该先解决 MCP 那一层。

  • 先写清楚现在卡住的环节:取不到、不知道该搜什么、资料在外部系统,三选一,别一次全上
  • 语料来源单一且更新慢,优先做经典 RAG,把切片和召回调稳比换模型有用
  • 跨源比对、需要多轮追问才出答案,再考虑把搜索决策交给模型
  • 外部系统要实时读写,先用 MCP 把通路打通,再回头谈检索质量
  • 任何一层上线前都先留一条能退回上一版链路的开关,别把两套逻辑焊死

成本、延迟与可控性的取舍

agentic 链路最容易被低估的是波动:调用轮次不固定,单次问答的 token 消耗自然也是浮动的。上线前必须给每一步设上限——最多几轮检索、单轮超时多久、命中几条就停。这些数字不设,后面压预算时你会很被动。具体单价口径和各家的计费方式,到站内官方 API 资料和 token 价格计算工具里按当时的数字核一遍,别凭印象估。

经典 RAG 的瓶颈通常不在模型,而在召回质量和切片策略。同一份语料,切片粒度差一点、召回条数差两条,答案质量可能差出一个档。所以顺序上先调检索,再考虑换模型,通常更划算。

  • 给 agentic 链路设死步数上限和单轮超时,超了就返回兜底答案而不是无限重试
  • 限制单次问答注入的上下文长度,长文档场景尤其要压
  • 把「检索轮次」和「召回条数」当成两个独立参数分别调,别一起动
  • 延迟敏感的业务先量延迟基线再决定并发,别等上线才发现排队

上线前的验证顺序与记录字段

最省钱的做法是先跑一个小样本评测,而不是先搭全套架构。准备一批真实问题,人工标好「正确答案应该出现在哪份资料里」,然后拿这个标注去判断失败原因:是检索阶段就没拿到,还是拿到了但模型没用上。这两种失败对应完全不同的修法,混在一起调只会越调越乱。

  1. 定小样本挑一批真实用户问题,覆盖常见问法和几个刁钻问法,人工标注答案出处;标注质量决定后面所有判断的可靠性
  2. 量延迟基线用站内测速工具先在目标网络环境下量一遍基线延迟,拿到数字再定并发和超时策略,不要拍脑袋
  3. 记关键字段每轮检索的关键词、命中的文档编号、注入的上下文长度、总耗时和 token 消耗全部落表,出问题才有得复盘
  4. 定回滚线给 agentic 链路留一个开关,跑飞时能一键切回固定链路;两套逻辑要能独立存活,不要共享同一份状态
失败现象优先怀疑下一步动作
答案里完全没有相关资料召回没拿到回去查切片和召回条数,别急着重写提示词
资料在上下文里但答案跑偏模型没用上检查上下文位置和提示词约束,必要时减少无关内容
同一问题每次答案差别很大检索路径不稳定收紧步数上限,或对高频问题加固定路径
整体慢链路太长或模型太慢先量各段耗时占比,再决定砍哪一段

评测做完不要只留一份结论,把「哪类问题适合哪条链路」沉淀成一张表,后面新需求进来直接对号入座,比每次重新争论省事得多。

下一步想先看别人踩过的坑和现成的评测记录,再去动手搭链路更省时间。

常见问题

is mcp better than rag?MCP 能替代 RAG 吗?

不能替代,它们的职责不同。MCP 是让模型连上外部工具或系统的协议,RAG 是让模型用上你自己资料的检索方案。你可以用 MCP 把一个检索服务暴露成工具,也可以完全不用 MCP 自己写检索调用。判断点在于:资料是否已经有索引、是否需要实时取数。

小团队资料不多,是不是直接上 agentic search 更好?

看问题复杂度,不只看资料量。如果问题基本是「从几份固定文档里找答案」,固定链路更快也更便宜;只有当你要跨来源比对、需要先定位再追问时,多轮检索才划算。资料少到能整段塞进上下文,那两者都不需要。

怎么判断是不是该上 agentic search 了?

两个信号:一是同一批问题里,固定链路经常一次召回就答错,且错误集中在「需要换关键词再搜」;二是用户提问本身包含多步推理。先按固定链路做个基准,再拿同批问题跑 agentic,比较准确率与单次成本,差值撑得起预算再切。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。