从 LLM 到 RAG 再到 Agent:技术演进路径

张开发
2026/5/11 8:13:02 15 分钟阅读
从 LLM 到 RAG 再到 Agent:技术演进路径
一、核心逻辑为什么需要从 LLM 过渡到 RAGLLM 的本质是基于海量预训练数据学习语言规律其生成能力依赖于训练数据的覆盖范围但这种 “闭卷考试” 式的模式存在两大核心痛点也是 RAG 技术诞生的根本动因。1. LLM 的核心痛点知识时效性缺失预训练数据有固定截止时间无法获取实时信息如最新政策、行业动态、实时业务数据。例如企业想通过 LLM 查询 2024 年最新的产品迭代文档单纯依赖 LLM 无法获取超出训练范围的内容。幻觉问题难以根除LLM 会基于统计规律生成看似合理但与事实不符的内容且无法自主识别错误。比如在技术问答场景中可能会编造不存在的 API 参数或代码逻辑导致业务出错。私有知识无法融入企业内部的业务手册、技术文档、客户案例等私有数据无法通过微调 LLM 高效融入微调成本高、周期长导致 LLM 无法贴合具体业务场景。2. RAG 的核心价值RAGRetrieval-Augmented Generation检索增强生成的核心思路是开卷考试在生成回答前先从外部知识库中检索与用户问题相关的真实信息再将检索结果与问题拼接后输入 LLM让 LLM 基于真实内容生成回答。其核心价值在于无需大规模微调即可快速接入私有知识降低落地成本依托实时检索解决知识时效性问题基于真实检索内容生成从根源上减少幻觉提升回答可信度。简单来说RAG 是 LLM 的 “外挂知识库”让 LLM 从 “凭空想象” 转变为 “有据可依”。二、LLM 过渡到 RAGLLM 到 RAG 的过渡本质是在原有 LLM 生成流程中嵌入 “检索环节”构建 “检索 - 生成” 的闭环流程。整个过渡过程分为基础架构搭建、核心流程优化、效果迭代升级三个阶段无需推翻原有 LLM 部署仅需新增检索模块即可实现。1. 基础架构搭建从 0 到 1 构建 RAG 系统RAG 系统的核心架构分为离线索引构建和在线推理生成两大部分整体流程如下用户问题 → 问题预处理 → 向量检索 → 结果重排 → 拼接输入LLM → 生成回答1离线索引构建让知识库可检索离线索引是 RAG 的 “地基”核心是将非结构化文档PDF、Markdown、TXT 等转化为机器可理解的向量数据存储在向量数据库中。具体步骤如下数据加载与清洗加载各类文档数据包括企业内部手册、技术博客、API 文档、PDF 报告等支持批量加载数据清洗去除文档中的无效内容如广告、重复段落、乱码提取核心文本同时保留文档的结构信息如标题、段落、章节为后续分块做准备。文本分块平衡完整性与粒度分块是 RAG 的关键环节分块过大易导致检索到无关内容分块过小则会破坏语义完整性。推荐分块策略基础分块按语义完整性划分单块长度控制在200-500 字块与块之间设置50-100 字的重叠避免关键信息被截断进阶分块结合文档结构分块例如按章节标题划分段落或按代码块、表格等特殊内容单独分块适配技术文档、博客等场景的语义逻辑。向量嵌入将文本转化为向量选择 Embedding 模型根据场景需求选型开源模型可选择text-embedding-3-small轻量高效、bge-large-zh中文效果优异商业化模型可选择 OpenAI 的text-embedding-ada-002适配多语言场景向量生成将分块后的文本输入 Embedding 模型生成固定维度的向量如 1536 维、768 维向量之间的距离代表文本的语义相似度。向量存储选择合适的向量数据库向量数据库负责存储向量数据与原始文本的映射支持高效的相似度检索。根据场景规模选型个人 / 小团队场景选择轻量开源数据库如FAISSFacebook 开源支持快速检索、Chroma易用性强支持本地部署企业级场景选择成熟稳定的商业化数据库如Milvus支持海量数据存储与分布式部署、Pinecone云原生架构运维成本低。2在线推理生成从检索到回答在线推理是用户触发请求后的核心流程决定了回答的效率与质量具体步骤如下问题预处理优化检索意图问题清洗去除用户问题中的冗余内容如语气词、无关标点提取核心意图问题改写可选针对复杂问题进行语义改写提升检索准确率。例如用户问 “怎么解决 Docker 部署 Elasticsearch 的网络问题”可改写为 “Docker Elasticsearch 网络配置 端口冲突 解决方法”让检索更精准。向量检索匹配相关文档将预处理后的用户问题转化为向量与离线分块使用同一 Embedding 模型保证向量空间一致性执行相似度检索在向量数据库中检索与问题向量最相似的 Top-K 个向量通常 K3-10获取对应的原始文本块。结果重排提升内容相关性基础检索可能存在语义匹配偏差需通过重排模型进一步优化结果相关性基础重排使用简单的关键词匹配如 BM25 算法补充向量检索的不足进阶重排使用重排模型如bge-reranker-large对检索到的 Top-K 个文本块进行二次评分按相关性从高到低排序保留 Top-3-5 个最优结果。拼接输入 LLM生成回答构建 Prompt 模板将 “用户问题 重排后的相关文本” 拼接成结构化 Prompt明确告知 LLM“基于以下参考内容回答问题不得编造信息”LLM 生成将拼接后的 Prompt 输入 LLM生成最终回答同时可要求 LLM 标注回答的参考来源如 “参考文档第 3 章第 2 段”提升可信度。2. 核心流程优化从基础 RAG 到高性能 RAG基础 RAG 架构可满足 80% 的场景需求但在复杂业务场景中还需通过优化策略进一步提升检索准确率与回答质量主要包括以下维度优化维度具体策略适用场景混合检索结合向量检索语义匹配与关键词检索BM25 算法通过加权融合的方式获取结果兼顾语义相关性与关键词精准性技术文档、专业术语密集的场景Query 改写针对模糊问题、长句问题通过 LLM 生成多个等价检索查询Query再基于多个 Query 进行检索提升召回率用户问题表述不清晰、意图模糊的场景HyDE虚拟文档检索先让 LLM 基于用户问题生成一篇 “虚拟文档”再将虚拟文档转化为向量进行检索拉近问题与文档的语义距离专业领域问答、小众知识检索场景多模态检索支持图文、音视频等多模态数据的检索与生成例如检索技术文档中的代码块、图表辅助 LLM 生成更精准的回答包含代码、图表的技术博客、产品手册场景上下文压缩对检索到的长文本块进行压缩保留核心语义避免输入 LLM 的内容过长导致上下文溢出长文档检索、LLM 上下文窗口有限的场景3. 效果评估与迭代让 RAG 持续优化RAG 的效果不是一次性的需通过量化指标持续评估不断调整分块策略、模型选型、重排逻辑等。核心评估指标如下检索指标召回率RecallK、精确率PrecisionK、MRR平均倒数排名衡量检索到的内容是否包含答案生成指标BLEU 值、ROUGE 值衡量生成内容与参考内容的相似度、人类评估从准确性、相关性、流畅性三个维度评分。根据评估结果进行迭代若召回率低可调整分块策略减小分块长度、增加重叠若精确率低可优化 Query 改写规则、升级重排模型若生成内容存在错误可补充私有知识库数据、优化 Prompt 模板。三、RAG 过渡到 AgentRAG 解决了 LLM 的 “知识可靠” 问题但仅能完成单轮问答场景如 “查询某技术文档内容”。而在复杂业务场景中用户需要的是多轮、自主、闭环的任务执行如 “整理近一周的技术博客数据→生成分析报告→发送邮件给团队”此时需要将 RAG 升级为 Agent赋予 LLM规划、工具调用、反思迭代的能力。Agent 的核心逻辑是以 LLM 为核心大脑结合 RAG 的长期记忆私有知识库、各类工具API、数据库、代码解释器等自主拆解任务、选择工具、执行步骤、迭代优化最终完成复杂任务。从 RAG 到 Agent 的过渡本质是在 RAG 的基础上新增 “任务规划” 与 “工具调用” 模块构建 “感知 - 规划 - 执行 - 反思” 的闭环。1. Agent 的核心能力比 RAG 多了什么相较于 RAGAgent 新增了三大核心能力这是过渡的关键任务规划能力自主将复杂任务拆解为多个子任务明确执行顺序。例如用户要求 “写一份产品经理求职简历”Agent 会拆解为检索简历模板→收集产品经理岗位核心技能→分析目标公司招聘需求→撰写简历初稿→优化排版与措辞→生成最终版本。工具调用能力自主选择并调用外部工具弥补 LLM 的局限性。工具类型包括知识工具RAG 检索器获取私有知识数据工具SQL 连接器查询数据库、Excel/CSV 解析器处理表格数据代码工具代码解释器Python、Docker、GitHub 操作工具提交代码、拉取分支业务工具邮件 API、日历 API、天气 API 等。反思迭代能力执行工具后评估结果是否满足任务需求若不满足则重新规划、调用工具进行迭代。例如执行 SQL 查询后发现数据缺失会重新调整查询条件重新获取数据。2. 过渡路径从 RAG 到 Agent 的技术升级这个过渡过程我们可以分为“升级Agentic RAG→搭建Agent架构→进阶优化”三个步骤同样从基础入手逐步落地。第一步升级为Agentic RAGAgentic RAG智能体化RAG是RAG过渡到Agent的核心中间步骤——它保留了RAG的检索能力同时增加了“自主决策”能力让RAG不再是“被动检索”而是能根据用户意图自主判断“是否需要检索”“检索什么内容”“检索后该做什么”。我们可以通过三个核心能力的升级实现RAG到Agentic RAG的过渡1. 工具封装将RAG及其他能力封装为“可调用的工具”Agent的核心是“调用工具完成任务”所以首先要将RAG检索、SQL查询、API调用、代码执行等能力封装成标准化的工具让Agent能直接调用。比如我们可以用LangChain目前最流行的Agent开发框架将RAG检索封装为一个工具retriever_tool Tool( nameRAG检索器, funcretrieve_function, # 自定义的检索函数实现RAG的检索逻辑 description用于检索外部知识库中的信息当用户的问题需要具体的知识、数据或文档内容时调用此工具如果不需要外部知识可直接回答。 )除了RAG检索工具我们还可以封装其他常用工具比如- query_dbSQL查询工具用于查询数据库中的结构化数据如用户数据、销售数据- send_email邮件发送工具用于发送邮件调用邮箱API- code_interpreter代码解释器工具用于执行Python代码如数据计算、图表生成。工具封装的关键是“明确工具的功能和使用场景”让Agent能清晰判断“什么时候该调用哪个工具”。2. 自主决策让LLM判断“该做什么”Agentic RAG与传统RAG的核心区别在于“自主决策能力”。传统RAG是“用户提问→检索→生成”的固定流程而Agentic RAG能让LLM自主判断用户的问题是否需要检索是否需要调用其他工具是否可以直接回答举个例子用户问“最新的行业营收数据是多少”Agentic RAG会进行如下决策1. 判断用户需求需要最新的行业营收数据属于“需要外部数据”的场景2. 判断工具首先调用“RAG检索器”检索是否有最新的营收数据文档3. 评估结果如果检索到相关数据直接基于数据生成回答如果未检索到判断是否需要调用“SQL查询工具”查询数据库中的实时数据或者告知用户“未找到相关数据”。这种自主决策能力需要通过“Prompt工程”和“框架支持”来实现。比如用LangChain的create_react_agent通过给LLM输入特定的Prompt让它按照“思考→判断→调用工具→评估”的逻辑进行决策。3. 规划与反思拆解任务迭代优化对于复杂任务Agentic RAG需要具备“任务拆解”和“反思迭代”的能力——将一个复杂任务拆解成多个简单的子任务逐一执行然后评估执行结果若未达到目标再进行迭代优化。比如用户需求是“整理近3个月的行业资讯生成一份PDF报告并发送到我的邮箱”Agentic RAG会将其拆解为以下子任务1. 调用RAG检索器检索近3个月的行业资讯2. 整理检索到的资讯提取核心要点3. 调用代码解释器工具将整理后的内容生成PDF报告4. 调用邮件发送工具将PDF报告发送到用户指定的邮箱5. 反思评估检查报告是否完整、邮箱是否发送成功若有问题重新执行对应步骤。这种规划与反思能力是Agent区别于RAG的核心特征也是实现“自主完成任务”的关键。第二步搭建Agent完整架构当完成Agentic RAG的升级后我们就可以搭建完整的Agent架构了。目前最主流、最易用的Agent开发框架是LangChain及LangGraph用于构建复杂的状态机Agent我们以LangChain为例拆解Agent的核心组件和运行闭环。1. 核心组件定义4大组件1Agent核心Agent的“大脑”负责理解用户意图、规划任务、调用工具、反思迭代。推荐使用LangChain的create_react_agent基础版或LangGraph进阶版适合复杂流程。LangGraph的优势是能构建“状态机”清晰定义每个步骤的逻辑和跳转条件比如“检索失败→重新检索”“生成报告成功→发送邮箱”。2工具集Agent的“手脚”包括我们之前封装的RAG检索器、SQL查询工具、API工具、代码解释器等。LangChain提供了大量现成的工具集成比如与OpenAI、Milvus、MySQL、邮箱API的集成无需重复开发。3记忆系统Agent的“记忆”分为短期记忆和长期记忆。短期记忆用于存储对话上下文比如用户之前的提问、Agent的执行步骤确保Agent能理解上下文长期记忆就是我们搭建的RAG向量库用于存储海量的知识和数据供Agent随时检索。4Prompt模板Agent的“指令集”用于引导Agent进行决策和执行。比如Prompt模板中可以包含“你是一个智能助手需要根据用户需求自主规划任务调用合适的工具完成任务后向用户反馈结果若遇到问题及时告知用户并尝试解决”。2. Agent运行闭环从用户输入到任务完成一个完整的Agent运行闭环分为6个步骤形成“输入→处理→执行→反馈→迭代”的闭环1. 用户输入用户提出复杂任务如“整理近3个月的行业资讯生成PDF报告并发送邮箱”2. 意图解析Agent核心解析用户意图明确任务目标生成报告、发送邮箱和所需资源行业资讯、PDF生成工具、邮箱工具3. 任务规划将复杂任务拆解为多个子任务检索资讯→整理内容→生成PDF→发送邮箱并确定子任务的执行顺序4. 工具调用按照任务规划依次调用对应的工具先调用RAG检索器再调用代码解释器最后调用邮件工具执行每个子任务并获取执行结果5. 结果整合与反思整合所有子任务的执行结果检查是否达到用户目标报告是否完整、邮箱是否发送成功若未达到反思问题所在如检索不到资讯→重新检索PDF生成失败→检查代码并迭代执行6. 反馈结果将最终的任务完成情况清晰地反馈给用户如“报告已生成已发送至你的邮箱xxx附件为PDF文件”。第三步Agent进阶优化基础版的Agent搭建完成后还需要进行进阶优化解决“任务规划不合理、工具调用错误、反思不及时”等问题让Agent变得更智能、更稳定。1. 多工具协同优化让Agent能同时调用多个工具协同完成任务。比如调用RAG检索器获取行业知识调用SQL查询工具获取结构化数据调用代码解释器工具进行数据计算和可视化三者结合生成更全面的报告。2. 流程自动化支持多轮任务和定时任务。比如“每周一早上检索上周的行业资讯生成周报并发送给团队成员”Agent能自主定时执行无需人工干预。3. 错误处理机制增加异常处理逻辑比如工具调用失败如API报错、数据库连接失败时Agent能自主重试或者告知用户并给出替代方案检索不到相关信息时能自主判断是否需要调整检索关键词或者放弃检索。总结最后我们再梳理一下这条演进路径的核心逻辑LLM基础→ 解决“能理解、能生成”的问题RAG升级→ 解决“知识可靠、无幻觉、可处理私有/实时数据”的问题Agent终极→ 解决“自主规划、工具调用、完成复杂任务”的问题。随着大模型技术的不断发展Agent的能力会越来越强未来会逐步渗透到各个行业替代大量重复性的人工工作。而我们现在要做的就是从基础做起一步步完成从LLM到RAG再到Agent的过渡掌握这项核心技能为后续的技术落地和创新打下基础。

更多文章