llm rag mcp agent

接入与开发

用一张分层图把 prompt、RAG、MCP、Agent 各自管什么讲清楚,再给一套上手顺序,帮入门读者不再把这几个词混着用。

刚开始接触大模型开发的人,几乎都会在同一堆词里绕晕:有人说 prompt 就够了,有人一上来就上 RAG,还有人张口就是 MCP 加 Agent。其实它们不在一个层面上,一个是输入写法,一个是取资料,一个是接工具,一个是自己决定怎么干。这篇不背定义,只讲各自解决哪一类问题、什么时候不需要它,以及按什么顺序往上加最省钱。

刚开始接触大模型开发的人,几乎都会在同一堆词里绕晕。有人说 prompt 就够了,有人一上来就上 RAG,还有人张口就是 MCP 加 Agent。其实它们根本不在一个层面上:一个是输入写法,一个是取资料,一个是接工具,一个是自己决定怎么干。

这篇不背定义,只讲各自解决哪一类问题、什么时候不需要它,以及按什么顺序往上加最省事。看的时候提醒自己一句:每加一层都是成本,能不加就不加。

先分清它们各自站在哪一层

名词站在哪一层它负责的事
prompt输入层每次请求都要写,不引入新组件
RAG数据层先查资料再让模型答,解决私有知识缺失
MCP连接层统一工具和数据的接入方式,不负责怎么想
Agent决策层把检索和工具调用串成循环,自己决定下一步

记住一个判断口诀就够了:缺输入就改 prompt,缺知识加检索,缺外部动作就接工具,步骤不固定才用 Agent。很多人一上来就想上 Agent,结果发现流程其实是固定的,白搭一层复杂度。

  • prompt 是随时随地都在做的,哪怕你只是聊天也在写 prompt
  • RAG 的本质是「先查再答」,模型本身没变,变的是喂给它的上下文
  • MCP 只解决接入标准化,接进来之后要不要调、什么时候调,它不管
  • Agent 的关键特征是「下一步取决于上一步的结果」,顺序固定就不算
  • 四者可以叠用,也可以只用其中一两层,不存在必须全上的说法

什么情况下这一层可以不加

新手最容易犯的错是层次上多了。下面这几条判断标准,能帮你把不必要的组件砍掉,砍掉的部分就是省下来的调试时间。

  • 答案在一两段文字里能说清,别上 RAG,直接把资料贴进 prompt 更省事
  • 流程完全固定、每步顺序已知,用工作流编排比 Agent 更稳也好测
  • 只有一两个接口要调,直接写函数调用即可,不必为了统一而套 MCP
  • 检索结果每次都差不多、没有多轮追问,普通 RAG 够用,不必上 Agentic RAG
  • 数据量小、更新频繁时,先试关键词或混合检索,不必先建向量库

反过来也有不适用的场景:资料库很大且每天都在变、问题需要跨多份文档拼答案时,硬塞进 prompt 就不现实了,这时候 RAG 是合理选择。哪种方案划算,要看你的资料规模和更新频率,到 /rag-retrieval 那类文章对比口径再决定。

按能跑起来的最短路径往上叠

顺序其实很朴素:先把最便宜的那层做扎实,再往上加。下面这套步骤从零到能跑,每一步都有验证动作,别跳步。

  1. 第一步:把 prompt 写稳固定输出格式,写清角色、任务、约束三件事;验证方式是同一批问题跑几遍,输出结构是否稳定。
  2. 第二步:答案依赖私有资料时加检索先离线跑通召回,人工看前若干条命中结果对不对,确认没问题再接进请求链路。
  3. 第三步:需要外部动作时接工具查库、发消息、跑脚本这类操作先只接一个,验证参数拼得对不对、鉴权过不过。
  4. 第四步:出现多步决策才包成 Agent只有当「下一步取决于上一步结果」时再包循环,验证方式是看步数有没有失控。
  5. 第五步:工具多了再考虑 MCP要在多个客户端复用同一批工具时,才值得用 MCP 统一暴露,先小范围试。

每加一层都要留一个可回退的开关,比如检索关掉还能跑、工具关掉还能答。这样出问题时能快速定位是新那层还是老那层。价格和模型能力的选择,可以到 /price-watch 看当时的对比。

出问题时先找是哪一层的锅

排错最怕眉毛胡子一把抓。按现象对号入座,先锁定层次,再动手改,效率差很多。

现象先查哪层具体看什么
答得空泛、跑题prompt 与上下文指令是否含糊、示例是否缺失
答得自信但事实错检索层召回结果里到底有没有正确资料
格式对但动作没执行工具层参数拼装、鉴权、调用日志
步骤乱跳、反复调同一工具Agent 决策层步数上限、工具白名单设置

如果同类问题反复出现,别每次临时改,记一条到评测用例里,改完再跑一遍对比。没有固定用例,你就不确定这次是变好了还是碰巧。

排错的顺序永远是从最便宜、最可控的那层开始,而不是从最像 AI 的那层开始。
下一步把这几层的资源清单和价格口径对一遍,再决定自己要加哪层。

常见问题

RAG 和 MCP 是一回事吗,能不能互相替代?

不是一回事。RAG 管的是把相关资料找出来塞进上下文,MCP 管的是把外部能力按统一方式暴露给模型调用。你可以只用 RAG 不碰 MCP,也可以只用 MCP 工具完全不检索。真要替代,通常是「用 MCP 包一个检索工具」这种组合,而不是二选一。

小项目是不是直接用 Agent 就行,不用管别的?

不建议。Agent 的调试成本主要在「不确定下一步走哪」,如果任务本身步骤固定,用 Agent 反而更难复现问题、更难控成本。小项目先按 prompt、检索、单工具的顺序加,等到确实出现需要模型自己判断分支的场景,再包成 Agent。

这几个概念有没有官方标准,怎么看自己理解对了?

没有强制标准,各家说法边界不太一样,尤其是 Agent 这个词被用得很宽。判断标准是能不能落到具体工程动作上:这个方案要不要多一次检索请求、要不要维护工具清单、要不要限制步数。落到动作上说不清,多半是概念还没对齐。

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