从RAG到Agentic RAG
RAG(检索增强生成)
传统RAG(检索增强生成)技术:先从资料库里检索相关内容 → 再基于这些内容来生成答案。
RAG的基本运行流程
一、数据准备部分(用户提问前)
分片 → 索引
-
分片
-
索引:①通过Embedding将片段文本转换为向量;②将片段文本和片段向量存入向量数据库中 的过程
向量相似度计算方法:①余弦相似度;②欧氏距离;③点积…
流程样例:
二、回答部分(用户提问后)
召回 → 重排 → 生成
- 召回(向量相似度):搜索与用户问题相关的片段(成本低、耗时短、准确率低。适合初步筛选)
similarity(用户问题向量,片段向量); //计算当前片段与用户问题的相似度。 - 重排(cross-encoder):对召回数据进一步筛选(成本高、耗时长、准确率高。适合精挑细选)
- 生成答案
生成过程:
关键特性:利用外部知识库来增强生成模型的能力,避免仅仅依赖训练数据。
优势:避免生成模型的幻觉(错误信息)问题,增强生成内容的准确性和相关性。
Graph RAG
传统的 RAG 技术仍然依赖于文本匹配,无法真正理解文本背后的语义和逻辑关系,在处理复杂查询、捕捉细微差别等方面依然存在不足。如果只是把一堆文件扔给学生,而不教给他们如何理解和分析,他们真的能找到问题的答案吗?
Graph RAG 将知识图谱(KG)引入 RAG 体系,就像为 AI 构建了一张清晰的“知识地图”。知识图谱能够表达实体之间的复杂关系,例如父子关系、朋友关系、因果关系等等,从而让 AI 不仅能够“查到”信息,更能够“理解”信息之间的逻辑,给出更准确、更智能的答案。
由两个主要部分组成:节点和边。节点表示独立的实体,例如人物、地点、物体或概念。而边则表示节点之间的关系,表示它们如何相互关联。这种结构使 LLM 能够访问精确且与上下文相关的的数据,从而极大地提高了其生成信息丰富答案的能力。Graph RAG 的创新之处在于它将图数据库与 LLM 相结合,在生成答案之前丰富了模型的上下文。
以上提到的RAG基本上都是 输入->搜索->应答 这样的一个线性流程,就像工厂的流水线一样,这样的流程适合解决资料库中有答案的问题,但是对于复杂的多跳推理,或者有常规搜索工具以外的工具需求的问题,就可能没法很好地处理。
要解决这些复杂问题,搜索只是其中一个步骤,但是只有搜索是不够的,系统还需要具备一定的自主决策能力,比如根据当前状况选择工具,复杂任务拆解成可执行的子任务等。
Agentic RAG(AI代理+检索增强生成)
Agentic RAG是对传统RAG的扩展,它结合了代理机制(Agentic RAG 是一个总的框架,它引入了智能代理来增强系统的自主决策能力。这个框架不仅限于检索-生成的简单流程,还支持在任务中通过代理进行智能决策与推理。 ),让LLM在检索和生成过程中更加具有“代理”的特征。所谓Agentic RAG,是一种融合智能代理(Agent)能力的RAG架构。通过动态规划、多步骤推理和自主决策机制,Agentic RAG可以在复杂任务中实现闭环的检索-加工-验证-优化。这些agents作为自主决策者,分析初步发现并战略性地选择最有效的工具以进一步检索数据。这种多步推理能力使Agentic RAG能够处理复杂的研究任务,例如总结、跨多个文档比较信息。这种新引入的agents将LLM从被动响应者转变为主动调查者,能够深入挖掘复杂信息并提供全面、合理的答案。
传统RAG的检索操作相对更独立一些,缺乏上面提到的多任务拆解的能力,而Agentic RAG能够拆解任务,并且把多个子任务之间的依赖处理清楚。
为了让LLM能够做出更合理的决策,Agentic RAG的输入一般会提供更多的信息,比如用户所在的地点、时间、历史聊天记录都可能需要。
传统RAG一般是一次过输出结果,而Agentic RAG则经常需要循环地规划思考、调用工具、整合结果。
Deep Search(深度搜索)
核心理念:Deep Search 的核心设计原则是“搜索(search)、阅读(read)和推理
(reason)的持续循环”。它强调的是一个原子化的、基础的信息获取和处理过程。
主要功能:
- 数据摄取: 从多种来源摄取文档和数据。
- 用户查询处理: 将用户查询分解 成多个子查询。
- 集合路由与语义搜索: 根据子查询进行集合路由,并通过向量数据库进 行语义检索。
- 反思与知识补充: 系统检查是否存在知识缺口,并根据需要生成新查询。
- 报告生成(初步): 在没有知识缺口的情况下,生成最终的总结报告(这里的报告更偏向于对搜索结果的初步汇总)。
特点: Deep Search 更侧重于高效、迭代地从海量信息中检索、理解和初步总结相关内容。它是一个强大的信息发现和初步整合工具,是后续更复杂任务的基础。
Deep Search项目举例: - https://github.com/zilliztech/deep-searcher
流程总结:
-
数据摄取:从多种来源摄取文档和数据;
-
用户查询处理:用户提出查询,系统将其分解成多个子查询;
-
集合路由与语义搜索:根据子查询进行集合路由,并通过向量数据库进行语义检索;
-
反思与知识补充:系统检查是否存在知识缺口,并根据需要生成新查询;
-
报告生成:在没有知识缺口的情况下,生成最终的总结报告;
优点: -
知识缺口识别:能够反思知识缺口,主动生成新的查询以弥补缺口,提高搜索全面性;
-
利用向量数据库进行语义搜索,能够更好理解查询意图和文档内容;
-
搜索、阅读、推理的持续循环,形成一个结构化的框架。
缺点: -
更多是基于搜索结果的初步汇总,缺少一定的深度分析和复杂推理;
-
缺乏高级代理。
-
https://github.com/huggingface/smolagents
核心流程:
( 让大语言模型(LLM)用“写代码”的方式主动执行任务,通过安全的沙箱环境运行这些代码,从而完成复杂、多步的自动化操作。 )
- 用户提交任务 → 任务存入 agent.memory;
- ReAct Loop 启动,模型从 agent.memory 中读取任务;
- 基于任务生成响应 → 解析响应并提取代码操作;
- 执行代码操作(如调用工具) → 调用 final_answer 工具获取最终答案;
- 返回用户最终答案。
优点: - ReAct循环:模型可以推理、规划、执行,增强任务自主性;
- 可以解析响应并执行代码,赋予了模型更强的问题解决能力;
- 内存机制
缺点: - CodeAgent生成代码去执行,对安全性要求高;
- 使用了e2b(对ai生成代码的安全执行)采用了安全的代码沙箱环境,但是增加了部署成本。
Deep Research(深度研究)
核心理念: Deep Research 是在 Deep Search 的基础上构建的,它将 Deep Search 作为一个“原子构建块”来使用。Deep Research 提供了“结构化的研究报告框架”,并加强了“推理与决策循环的能力”。
主要功能:
- 结构化报告生成: 在 Deep Search 获取的信息基础上,生成更长篇、更结构化的研究报告。
- 强化推理与决策: 通过 LLM 生成结构化的响应,处理复杂的研究问题,并支持多轮、深度的推理和决策过程。
- 多代理协作: 接下来会提到的 Deep Research 项目 (如 Deep Researcher Agent, Browser Use Agent, Deep Analyzer Agent)表明,深度研究通常涉及多个智能代理的协同工作,以完成更复杂的任务,例如:
● 优化搜索关键词,进行多轮网络搜索和本地知识库提取。
● 整合见解,提出核心发现。
● 模拟浏览器操作,进行数据抓取和接口测试。
● 处理多种格式的数据,进行推理和摘要归纳。
● 针对研究问题生成爬虫代理,从在线资源中搜索信息,并进行汇总和溯源。
特点:Deep Research不仅仅是信息检索,更是一个全面的、智能化的研究过程。它将深度搜索的结果进行深层次的分析、综合、验证和组织,最终产出高质量、结构化的研究报告。它强调的是从信息到知识的转化,以及对复杂问题的深入洞察和系统性解答。
Deep Research项目举例:
- https://github.com/SkyworkAI/DeepResearchAgent/blob/main/README_CN.md
多代理协作框架:
一、顶层规划智能体:
● 负责理解任务、规划整体流程。
● 将任务分解为子任务并分配给合适的子智能体。
● 动态协调各智能体之间的协作,确保任务顺利完成。
二、专业子智能体:
-
Deep Researcher Agent
● 负责信息获取与提问:
○ 优化搜索关键词(query)
○ 多轮网络搜索 + 本地知识库提取
○ 整合见解、提出核心发现
● 支持 Python 执行器:能运行代码(如数据抓取、接口测试) -
Browser Use Agent
● 负责浏览器操作模拟:
○ 定义浏览器动作(点击、填表、滚动)
○ 管理交互状态(cookies、会话等)
● 也支持 Python 执行器:可运行自动化脚本 -
Deep Analyzer Agent
● 负责数据/文本分析和总结:
○ 处理多种格式(文本、表格、PDF等)
○ 进行推理和摘要归纳(调用 LLM)
● 也支持 Python 执行器:可运行自动化脚本 -
Other Sub-Agent
● 灵活可插拔,支持:
○ 自定义逻辑(如财经分析、法律条款抽取等)
○ 拓展工具(例如计算器、文件搜索器、OCR 等)
优点: -
分层协作,适用于复杂和动态任务,通过多个专业代理的协同工作,能够处理研究过程中的不同环节, 提高了效率和专业性;
-
易于扩展,可集成更多专业智能体,Other Sub-Agent 的设计使其能够灵活地集成自定义逻辑和外部工具,适应不同领域的研究需求;
-
Deep Researcher Agent 和 Browser Use Agent 结合,能够进行多轮、深度的网络搜索和数据抓取,并支持代码执行。
缺点: -
系统复杂性较高。
-
https://github.com/assafelovic/gpt-researcher/blob/master/README-zh_CN.md
核心流程:
-
根据研究搜索或任务创建特定领域的代理。
-
生成一组研究问题,这些问题共同形成答案对任何给定任务的客观意见。
-
针对每个研究问题,触发一个爬虫代理,从在线资源中搜索与给定任务相关的信息。
-
对于每一个抓取的资源,根据相关信息进行汇总,并跟踪其来源。
-
最后,对所有汇总的资料来源进行过滤和汇总,并生成最终研究报告。
优点: -
自动化信息收集:通过自动触发爬虫代理收集信息,提高收集效率;
-
来源可靠:跟踪并汇总信息来源,信息可靠;
缺点: -
依赖爬虫,受限于网站的数据结构的变化和反爬虫机制
-
https://github.com/dzhng/deep-research
流程总结
-
初始设置
○ 获取用户查询和研究参数(广度和深度)
○ 生成后续问题以更好地了解研究需求 -
深度研究过程
○ 根据研究目标生成多个SERP查询
○ 处理搜索结果以提取关键学习
○ 生成后续研究方向 -
递归探索
○ 如果深度>0,则采取新的研究方向并继续探索
○ 每次迭代都建立在之前的学习之上
○ 维护研究目标和发现的背景 -
报告生成
○ 将所有调查结果汇编成一份全面的报告
○ 包括所有来源和参考资料
○ 以清晰易读的格式组织信息
优点: -
人为可控的深度|广度参数,使得研究报告更加定制化和可控;
-
递归搜索:每次迭代都是建立在之前的学习内容之上,有助于更加深入的挖掘信息;
-
会根据研究目标生成多个SERP查询,提高查询的覆盖面和效率;
-
并发处理:同时处理多个搜索结果以提高效率。
缺点: -
没有明确提及代理。
-
https://github.com/u14app/deep-research
流程总结
-
研究课题
○ 输入研究课题
○ 使用本地研究资源(可选)
○ 开始思考(或重新思考) -
提出你的想法
■ 回答系统问题(可选)
■ 编写研究计划(或重写研究计划)
■ 开始深度研究(或再研究)
■ 系统生成SERP查询 -
信息收集
■ 基于SERP查询检索本地研究资源
■ 基于SERP查询从公网收集信息
■ 提出研究建议(可选)
■ 开始新一轮的信息收集(过程与初始研究相同) -
生成最终报告
○ 提出书面请求(可选)
○ 将所有研究资料汇总成全面的Markdown报告
○ 重新生成研究报告(可选)
优点: -
交互式更强的研究,允许用户回答系统问题,编写研究计划;
-
可结合本地资源和SERP查询,信息来源更广;
-
递归式研究,使得研究内容更加深入具体,有助于完善研究内容;
缺点: -
用户参与度高,可能会增加用户负担,自动化程度不高。
-
https://github.com/google-gemini/gemini-fullstack-langgraph-quickstart
核心流程:
- 生成初始查询:根据您的输入,使用Gemini模型生成一组初始搜索查询。
- 网页搜索:对于每个查询,它使用Gemini模型配合谷歌搜索API来查找相关的网页。
- 反思与知识缺口分析:该代理程序会分析搜索结果,以确定信息是否充分,或者是否存在知识缺口。在此反思过程中,它使用了Gemini模型。
- 迭代优化:若发现信息有遗漏或不足,系统会生成后续问题,并重复网络搜索和反思步骤(最多可循环至设定的最大次数)。
- 最终确定答案:一旦认为研究足够充分,代理程序就会使用Gemini模型,将收集到的信息整合成连贯的答案,并注明网络来源。
优点: - 使用Gemini模型驱动,以及Google搜索API集成;
- 迭代优化与反思,提高信息的准确性和完整性;
- 注明来源,确保信息准确性。
deep Search与deep Research二者的区别总结:
- deep search:“如何找到信息”;deep research:“如何利用信息进行深入研究并形成报告”
- Deep Search 的目标是高效地发现和初步总结信息。Deep Research 的目标是基于发现的信息,进行深层次的分析、推理,并生成结构化的研究报告。
- Deep Research比Deep Search更复杂,因为它在Deep Search的基础上增加了多代理协作、结构化报告生成和更强的推理决策能力。
- Deep Search是Deep Research的核心组成部分和基础。没有Deep Search的信息获取能力,Deep Research 无法进行深入分析。