从简单查找到代理推理:聊聊智能RAG系统的兴起 原创

发布于 2025-9-5 08:19
浏览
0收藏

检索增强生成(RAG)是大语言模型领域的一项技术,通过将外部数据检索融入至生成过程,借此增强文本生成。与单纯依赖模型预训练知识的传统方式不同,RAG让AI能够从外部来自“查找信息”,显著提高响应准确性与关联度,有助于缓解幻觉及知识过时等问题。换言之,RAG能够超越静态训练数据、为AI赋予动态记忆。

随着时间推移,一系列RAG架构也应运而生——其解决的分别是特定早期缺陷,而种种简单概念如今已发展成为复杂的模式生态,包括维护对话上下文、处理多个数据源以及提高检索相关性。本文将按照演进顺序探讨各主要RAG架构,讨论各种新架构如何继承前续方案并解决自身局限性,同时通过可视化图表介绍每种架构所需解决的问题及解决方案。

简单RAG

大模型先从静态知识源(数据库或向量索引)中检索相关文档,再基于检索到的信息生成响应。

简单RAG是检索增强生成的最基本形式。当用户提出问题时,系统会从固定知识库中检索信息,将其提供给大模型以生成基于事实的答案。这种简单流程通常包含文档存储(外部数据,例如数据库或企业知识库)和用于查找/查询相关的文本检索器。如此一来,即可确保答案最新且基于真实数据,从而大大减少幻觉并提高准确性。

  • 工作流:用户提出查询,系统从数据库中检索相关文档,大模型根据这些文档生成响应。​
  • 用例:这种基本方法适用于范围有限的静态信息集,例如FAQ聊天机器人或文档助手,配合产品手册或知识库确保响应结果符合需求。​

从简单查找到代理推理:聊聊智能RAG系统的兴起-AI.x社区

局限:简单RAG虽比单独使用大模型更有改进,但仍有缺点——它会孤立处理各项查询,不具备先前交互或上下文记录。在多轮对话或者要求AI记住先前所说内容的场景中,简单RAG会显得力不从心。它无法将信息从一个问题传递至下一问题,往往导致答案重复或不一致。因此上下文管理,就成了RAG下一代演进希望解决的主要挑战。

带记忆功能的简单RAG

此架构通过添加记忆组件扩展了简单RAG,系统可在生成响应时整合先前用户交互中存储的上下文、以及新检索到的文档。

带记忆功能的简单RAG解决了上下文限制,为AI模型引入持久记忆存储,可保留先前交互中的信息。实际上,模型现在可以记住用户之前提出的问题或给出的答案,并将其与新检索到的数据共同用于当前查询,从而保持对话连续性并避免忘记先前细节。

  • 工作流:用户提交查询。系统首先访问记忆,从之前的对话或存储的上下文中检索信息。接下来,它会执行常规文档检索,从外部知识源处获取新信息。最后,大模型生成答案并整合先前上下文(来自记忆)及新检索到的事实。​
  • 用例:此架构特别适合客服或个人助理领域的聊天机器人和对话智能体,它可以回忆起用户姓名或之前聊天中遇到的问题,从而提供更佳体验。此外,此架构也适用于个性化推荐或任何需要历史背景信息来指导当前响应的场景。​

从简单查找到代理推理:聊聊智能RAG系统的兴起-AI.x社区

记忆的引入,让RAG解决了上下文连续性这一挑战。但随着应用场景的增加,新的挑战再次出现:并非所有查询都只指向同一数据源。带记忆的简单RAG只会查询一组固定文档,但如果组织拥有多个知识库或工具,又该怎么办?每次查询所有知识库或工具会拉低效率,因此新的方案需要让检索更加智能以确定查找位置。

分支RAG

这种架构会将查询路由至不同知识源。系统不再搜索所有内容,而是根据查询分支到最相关的数据源(数据库、API、文档集等)。

分支RAG引入了智能源选择功能,通过评估查询并将检索定向至最适合的资源以提升执行效率。换言之,RAG管线可以根据具体问题分支至不同信息源。

  • 工作流:分析用户查询,由系统决定哪些知识源最可能包含答案(即路由或分支选择器)。例如,将法律问题路由至法律数据库,编程问题则路由至Stack Overflow归档。之后,系统只查询特定源,再由大模型根据目标信息生成答案。​
  • 用例:分支RAG在处理跨领域或大型异构语料库时表现出色。例如,大公司的AI助手可能需要处理人力资源政策问题、IT 支持问题以及财务数据查找。通过分支检索,助手可以为每个查询选择正确的内部数据库,避免搜索完整索引,或者因为在错误的位置查找而丢失答案。由于不相关的来源会被跳过,因此得到的响应将更加高效、准确。​

从简单查找到代理推理:聊聊智能RAG系统的兴起-AI.x社区

通过将查询路由至正确的源,分支RAG可以降低噪声并提高准确率。它解决了在多个知识库中扩展RAG的难题。然而,如果查询不明确或未直接匹配任何文档,又该怎么办?在这种情况下,即使是智能分支也可能检索不到任何有用的信息。下一代创新方案解决了这个问题——当用户的问题不够具体时,模型会主动设想出更好的查询表达来指导检索。

HyDe(假设文档嵌入)

在搜索知识库之前,模型会根据查询创建一个假设文档或理想的答案嵌入,再据此检索与“理想”内容匹配的真实文档。

HyDe(假设文档嵌入)是RAG的一个独特变体,用于解决模糊或难以匹配的查询问题。在之前的架构中,检索直接由用户的查询驱动。但如果查询措辞不当或范围过广,系统可能无法获取最佳信息。HyDe给出的答案是,模型首先在内部生成一个假设的答案或文档(即模型认为理想答案应该包含的内容),将其转换为嵌入,然后检索与该假设内容类似的实际文档。这可以显著提高检索到的信息与复杂查询的相关性。

  • 工作流:用户提供提示词,系统使用大模型(或其他生成组件)创建一份假设的文档/答案表达。此假设不会显示给用户;相反,它会被转换成一个嵌入向量,再利用它从知识库中检索最接近该理想答案的真实文档。最后,大模型使用检索到的文档生成最终答案。​
  • 用例:HyDe主要适用于研究和创造性查询。例如,若用户提出一个高开放度问题,如“技术对认知培养有何影响?”这时HyDe会首先让模型假设一个答案(可能涉及注意力持续时间、记忆力、屏幕时间研究等概念),再使用此答案获取涉及这些概念的文档。在创意内容生成方面,HyDe则可尝试生成“理想”叙述,并用检索到的事实细节进一步加以充实。​

从简单查找到代理推理:聊聊智能RAG系统的兴起-AI.x社区

当用户查询不精确时,HyDe可以有效解决检索难题。通过使用模型生成的答案预览来引导搜索,它提高了找到正确信息的几率。这虽然增加了复杂性,但对于复杂问题却能产生更好的结果。到目前为止,我们所见过的架构仍然遵循针对每个查询的固定策略(内存或分支有所不同)。接下来,我们将介绍一种可以根据查询需求动态调整检索策略的方法,从而使流程更高效,并可针对各种工作负载进行扩展。

自适应RAG

这是一种有条件的检索策略。系统会检查查询并决定如何检索信息:简单查询往往能轻易对应一个来源,而复杂查询则会触发更广泛的检索(多个来源或迭代搜索)。这种适应性优化了速度与深度。

自适应 RAG 是一种动态方法,其理念是根据问题的复杂性或性质调整检索策略。较简单的查询会获得轻量级的检索(以提高速度),而较难的查询会获得更繁重、多方面的检索(以提高完整性)。这种架构解决了早期系统中的一个挑战:使用一刀切的检索流程。在简单RAG中,无论问题是“法国的首都是哪里?”还是详细的分析查询,系统可能总是从相同的位置检索相同数量的文档。自适应RAG则引入逻辑,使其更加高效和灵活。

  • 工作流:用户提交查询后,系统首先对查询复杂度进行初步分析,而后将其划入不同检索模式。对于简单的事实性问题,可能只需查询单个可信源或检索少数片段。对于复杂问题,则可扩展至多个数据库/API,或使用迭代搜索策略。检索完成后,大模型会正常生成答案,最关键的差异在于检索信息的数量和来源要根据查询进行定制。​
  • 用例:自适应RAG在企业搜索或需要处理不同难度级别的混合类型查询场景下表现出色。以AI研究助手为例,有些查询只涉及简单定义、有些则需要深入研究科学文献。对于前者,自适应RAG会在词汇表中快速查找;对于后者,RAG则在多个研究论文数据库中执行广泛搜索。这确保了简单查询能够迅速得到响应,复杂查询则产生更高的检索成本,从而根据具体情况在速度与深度间寻求最佳平衡。​

从简单查找到代理推理:聊聊智能RAG系统的兴起-AI.x社区

通过自适应查询复杂度,该架构可以避免不必要的过度检索,并确保必要检索的完整性。它解决了每条查询(无论简单还是复杂)都使用相同的繁重管线处理时可能出现的效率和可扩展性问题。然而,即使采用自适应策略,之前提到的所有架构都具有一个共同点:它们信任检索到的文档并生成答案。如果检索到的信息具有误导性或不足之处,该怎么办?接下来的架构明确解决了初始检索可能质量不高的情况,通过引入额外步骤,在回答之前对检索到的知识进行批判性评估和纠正。

纠正式RAG (CRAG)

此架构增加了自检和改进循环。检索到的文档被分解成“知识条”,并根据相关性进行评分。如果检索结果不够好(未达到相关度阈值),系统会在生成最终答案之前执行额外检索(如网页搜索或替代查询)。

纠正式RAG(CRAG)在标准RAG流程的基础上,增加了对检索内容的反思机制。其目的是捕捉初始检索可能未达标的情况——例如检索到的文档偏离主题、过时或不完整——并在生成最终答案之前进行修复。在早期架构中,如果检索到的信息质量较差,大模型可能会得出错误的答案,或者产生幻觉来填补空白。CRAG 则会对检索到的信息进行质量评级,并在必要时进行迭代。

  • 工作流:在常规检索步骤之后,CRAG会将检索到的文本拆分成更小的片段(即「知识条」),而后评估各片段与查询间的相关度。如果知识条未达到特定相关度或质量阈值,则系统不会生成。相反,它会寻找更多信息(如扩大网络搜索范围或查询不同数据库)以补充或替换薄弱部分。只有在大模型拥有足够相关文档集后,才会生成答案。本质上,CRAG是在最终答案前插入了检索-评估-优化的循环。​
  • 用例:纠正式RAG特别适合风险高或对准确性要求严格的应用场景,例如法律分析、医学问答或财务报告。例如,使用CRAG的医疗聊天机器人可能会从医疗数据库中检索信息;如果这些文档无法直接回答患者问题,系统可能会自动在线搜索最新医学文献或临床指南,以确保没有遗漏任何关键细节。CRAG的自我评分步骤有助于发现错误或遗漏,从而显著提高输出质量。​

从简单查找到代理推理:聊聊智能RAG系统的兴起-AI.x社区

通过在检索数据中加入反馈循环,CRAG解决了RAG系统中“垃圾进,垃圾出”的难题。如果它认为源材料的相关度不高,则会拒绝生成答案,从而进一步减少幻觉并提高可靠性。不过在CRAG中,检索过程仍然发生在生成步骤之前(可能需要多次传递)。新的迭代方案希望模糊这条界限:如果模型可以在生成答案的过程中决定检索更多信息,会怎么样?这就是自RAG的作用所在——它赋予大模型更大的自主权,使其能够在制定响应时动态提取新数据。

自RAG

模型在生成过程中参与自驱动检索循环。在构建答案的过程中,大模型可以检测知识缺口或不确定性,然后制定并发出新的查询以获取更多信息(自查询),然后再继续。此迭代循环持续进行,直到答案完整且得到充分支持。

自驱动检索循环更进一步,允许大模型在生成响应时主动检索更多信息。与之前提到的架构(每查询仅在模型上实际进行一次检索)不同,自驱动检索循环实现了更具交互性的流程。一旦模型意识到需要更多数据(例如出现了子问题或不完全确定答案),它可以暂停并获取更多内容,然后继续回答。这解决了标准RAG流程中的一大局限:在开始生成答案前,模型有时并不确定自己是否了解答案。自RAG通过在回答过程中动态提取信息,确保模型能够覆盖这些盲点。

  • 工作流:用户提出问题,系统正常进行初始检索并开始生成。在生成过程中,大模型会监控自身输出,查找空白或不确定点所在,而后构建一个与该子主题相关的新内部查询。由此触发的自检索循环可以获取其他相关文档或数据,将新信息整合至答案中并继续生成。整个过程可以多次发生,直到模型认为答案全面且具有充分的依据。​
  • 用例:自RAG在探索性任务和复杂问答方面表现极佳。这里设想撰写深度报告的场景:当AI起草某个部分时,可能会意识到需要更多统计数据或对特定概念的解释——它随后可以即时获取这些信息。另一个例子则是开放域问答中的多跳问题(如「找出文档X中概念A与文档Y中概念B之间的联系」)。自RAG系统可以检索概念A的信息、进行解释,而后意识到还须检索概念B及二者的联系,最终确定答案。这种方法确保了结果更全面,让所有查询细节均得到解决。​

从简单查找到代理推理:聊聊智能RAG系统的兴起-AI.x社区

总而言之,自RAG赋予模型一定程度的自主权来指导其自身的检索,从而有效地使检索生成边界更加灵活。它解决了答案构建过程中不可预见的信息需求问题。这是迈向更类似智能体行为的重要一步,为我们讨论的最先进的架构——代理式RAG——奠定了基础。代理式RAG不仅能够进行自我检索,还能以目标导向的方式协调多个智能体和工具,处理超越单一问答的极其复杂的查询或任务,从而将这一理念推广开来。

代理式RAG

一种先进的多智能体检索架构。其中RAG系统的行为类似于一个能够执行多步推理并与多个数据源或工具交互的智能体。顶端元智能体可能会为每个数据源或数据块生成专门的文档代理,收集它们的发现,然后合成最终答案。

代理式RAG代表了RAG架构的最前沿,其模型以更加自主、目标驱动的方式运行,而非单一的问答系统。在代理式RAG中,AI 可以将复杂的查询分解为子任务,调用多个智能体(可以是 LLM 实例或专用检索模块)来处理不同的部分,然后组合生成结果。这种架构的灵感源于新兴的AI智能体趋势,各智能体可以规划、推理、使用工具并执行多步骤操作来满足用户请求。它直接解决了单步RAG无法处理的复杂查询难题——例如,需要跨多个文档进行推理、执行中间计算或与外部系统(API、数据库)交互(而不仅仅是获取文本)的查询。

  • 工作流:最常见的模式为:用户提交复杂查询或任务,RAG系统以智能体形式激活,生成多个特定于文档的智能体或工具调用。如需要进行市场分析时,系统可以创建一个智能体以检索财务数据,另一智能体收集新闻文章,第三智能体负责获取专家意见。顶端元智能体负责监督这些工作,并决定按何种顺序执行。各子智能体分别检索或计算所属任务,最终由元智能体综合所有信息,由大模型生成连续的最终报告/答案。在此过程中,智能体系统可以做出“若信息源A的数据不足,须咨询信息源B”或“就X提出后续问题”等决策。这在本质上形成一套灵活的框架,涵盖大量彼此协调的检索和生成步骤,以服务于更高目标。​
  • 用例:代理式RAG非常适合开放式研究、多源分析或任何需要人工执行多项查找及推理步骤的复杂任务。以编写竞争性商业报告的自动化研究助手为例,具体任务可能包括:查询财务数据库、阅读多份报告,通过API获取社交媒体情绪并汇总所有内容。代理式RAG特别适合需要自主确定检索内容以及如何整合多来源信息的场景,其本质上相当于一个能够“自主研究”的AI智能体。​

从简单查找到代理推理:聊聊智能RAG系统的兴起-AI.x社区

通过部署多个智能体并规划检索操作,代理式RAG克服了简单RAG系统在处理复杂性和规模方面的局限性。它标志着信息检索和合成从预定义流水线向更具适应性的规划器-执行器范式的转变。当然,这种强大的能力也带来了设计的复杂性增加,以及在确保智能体保持一致和高效方面的潜在挑战。

总结

从简单RAG到代理式RAG的演进,体现了AI系统不断提升知识储备、可靠性和情境感知能力的持续探索。每个新架构都建立在前一个架构的基础上,用以解决一个特定瓶颈:简单RAG引入外部知识以减少幻觉;带记忆的RAG保留了上下文;分支RAG使检索具备源感知能力;HyDe提高了模糊查询的相关性;自适应RAG 优化了每个查询的执行工作量;纠正式RAG对检索到的信息进行质量检查;自RAG使模型能够迭代地填补空白;而代理式RAG则支持跨源进行复杂的多步骤推理。整个演进过程本质上是一系列创新,旨在满足日益复杂的AI应用实际需求。

RAG架构的选择取决于实际应用程序需求。简单架构更易于实现,足以胜任简单的任务,而高级架构则会以更高的复杂性为代价来解锁更多功能。例如,如果你只需要一个用于单个数据库的事实机器人,那么简单RAG可能就足够了。但是,如果你正在打造一名AI研究分析师,或许可以考虑使用代理式RAG来处理涵盖广泛和深度的查询。理解这些模式至关重要——这既是一项技术决策,也是一项战略决策,会影响用户体验和系统性能。

有一点是明确的:随着我们不断突破AI利用海量信息的能力边界,RAG也在快速发展。通过利用合适的架构,我们赋能AI系统,使其不仅能够检索知识,还能以智能且情境化的方式进行检索。这使得它们生成的响应更加准确、相关,更好地帮助用户解决问题。演进过程中的每一步都让我们更接近真正能够充当专家级研究助手的 AI——能够记住上下文、找到最佳来源、反复核实事实、并推理复杂问题,最终给出更加准确可靠的答案。

原文标题:​​From Simple Lookups to Agentic Reasoning: The Rise of Smart RAG Systems​,作者:Naresh Dulam

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
相关推荐