Agentic RAG
大型语言模型(LLMs)已经彻底改变了我们与信息交互的方式。然而,它们仅依赖内部知识的特性可能会限制其回答的准确性和深度,尤其是在处理复杂问题时。这就是检索增强生成(Retrieval-Augmented Generation,RAG)发挥作用的地方。RAG通过允许LLMs访问和处理外部信息源,弥合了这一差距,从而提供更接地气且信息丰富的答案。
虽然标准RAG在跨多个文档的简单查询中表现出色,但Agentic RAG更进一步,成为问答领域的强大解决方案。它通过引入AI agents,增加了一层智能。这些agents作为自主决策者,分析初步发现并战略性地选择最有效的工具以进一步检索数据。这种多步推理能力使Agentic RAG能够处理复杂的研究任务,例如总结、跨多个文档比较信息,甚至提出后续问题——所有这些都以一种协调且高效的方式进行。这种新引入的agents将LLM从被动响应者转变为主动调查者,能够深入挖掘复杂信息并提供全面、合理的答案。Agentic RAG在此类应用中具有巨大潜力,使用户能够全面理解复杂主题,获得深刻见解并做出明智决策。
Agentic RAG是研究、数据分析和知识探索的强大工具。它代表了AI驱动的研究助手和虚拟助手领域的重大飞跃。其推理、适应和利用外部知识的能力为新一代智能agents铺平了道路,这些agents可以显著增强我们与信息交互和分析的能力。
在本文中,我们将深入探讨Agentic RAG,探索其内部工作原理、应用及其为用户带来的好处。我们将解析其定义、与传统RAG的区别、agents如何集成到RAG框架中、它们在框架中的功能、不同的功能类型、实现策略、实际用例,以及未来的挑战和机遇。
近期LLM和RAG的发展
在信息检索和自然语言处理领域,LLM和RAG的最新发展开启了一个高效和复杂的新时代。在LLM和RAG的最新进展中,四个关键领域取得了显著进展:
- 增强检索(Enhanced retrieval):优化RAG系统中的信息检索对性能至关重要。最近的进展集中在重新排序算法和混合搜索方法上,以提高搜索精度。通过为每个文档使用多个向量,可以实现更细粒度的内容表示,从而增强相关性识别。
- 语义缓存(Semantic caching):为了减少计算成本并确保响应一致性,语义缓存已成为一项关键策略。通过存储最近查询的答案及其语义上下文,可以高效处理类似请求,而无需重复调用LLM,从而实现更快的响应时间和一致的信息传递。
- 多模态集成(Multimodal integration):这将LLM和RAG的能力扩展到文本之外,集成了图像和其他模态。这有助于访问更广泛的源材料,并实现文本和视觉数据之间的无缝交互,从而产生更全面和细致的响应。
这些进展为进一步探索Agentic RAG的复杂性奠定了基础,我们将在接下来的部分中详细讨论。
什么是Agentic RAG?
Agentic RAG = 基于agents的RAG实现
Agentic RAG通过引入创新的基于agents的框架,改变了我们处理问答的方式。与传统方法仅依赖大型语言模型(LLMs)不同,Agentic RAG利用智能agents来处理需要复杂规划、多步推理和外部工具使用的复杂问题。这些agents充当熟练的研究人员,熟练地导航多个文档,比较信息,生成摘要,并提供全面而准确的答案。Agentic RAG创建了一个易于扩展的实现。可以添加新文档,每个新文档集由子agent管理。
将其想象为拥有一支专家研究团队,每个团队成员都具备独特的技能和能力,协同工作以满足您的信息需求。无论您需要比较不同文档中的观点,深入研究特定文档的细节,还是综合来自各种摘要的信息,Agentic RAG agents都能以精确和高效的方式完成任务。
Agentic RAG的关键特性和优势:
- 协调问答:Agentic RAG通过将问答过程分解为可管理的步骤,为每个任务分配适当的agents,并确保无缝协调以获得最佳结果。
- 目标驱动:这些agents能够理解并追求特定目标,从而实现更复杂和有意义的交互。
- 规划和推理:框架内的agents能够进行复杂的规划和多步推理。它们可以确定信息检索、分析和综合的最佳策略,以有效回答复杂问题。
- 工具使用和适应性:Agentic RAG agents可以利用外部工具和资源,如搜索引擎、数据库和专用API,以增强其信息收集和处理能力。
- 上下文感知:Agentic RAG系统考虑当前情况、过去的交互和用户偏好,以做出明智的决策并采取适当的行动。
- 随时间学习:这些智能agents被设计为随时间学习和改进。随着它们遇到新的挑战和信息,它们的知识库会扩展,处理复杂问题的能力也会增强。
- 灵活性和定制化:Agentic RAG框架提供了卓越的灵活性,允许根据特定需求和领域进行定制。agents及其功能可以根据特定任务和信息环境进行调整。
- 提高准确性和效率:通过结合LLM和基于agents系统的优势,Agentic RAG在问答方面实现了比传统方法更高的准确性和效率。
- 开启新可能性:该技术为个性化助手、客户服务等领域的创新应用打开了大门。
本质上,Agentic RAG提供了一种强大且适应性强的问答方法。它利用agents的集体智慧来应对复杂的信息挑战。其规划、推理、使用工具和学习的能力使其成为全面和可靠知识获取领域的游戏规则改变者。
Agentic RAG与传统RAG的区别
对比Agentic RAG与传统RAG,可以深入了解检索增强生成系统的演进。在这里,我们重点介绍Agentic RAG相对于传统RAG的关键优势。
| 特性 | 传统RAG | Agentic RAG | 
|---|---|---|
| 提示工程 | 严重依赖手动提示工程和优化技术。 | 可以根据上下文和目标动态调整提示,减少对手动提示工程的依赖。 | 
| 静态性 | 上下文感知有限,检索决策静态。 | 考虑对话历史并根据上下文调整检索策略。 | 
| 开销 | 未优化的检索和额外的文本生成可能导致不必要的成本。 | 可以优化检索并减少不必要的文本生成,从而降低成本并提高效率。 | 
| 多步复杂性 | 需要额外的分类器和模型进行多步推理和工具使用。 | 处理多步推理和工具使用,无需单独的分类器和模型。 | 
| 决策制定 | 静态规则控制检索和响应生成。 | 决定何时何地检索信息,评估检索数据的质量,并对响应进行生成后检查。 | 
| 检索过程 | 仅依赖初始查询来检索相关文档。 | 在检索之前或期间执行环境中的操作以收集更多信息。 | 
| 适应性 | 适应变化情况或新信息的能力有限。 | 可以根据反馈和实时观察调整其方法。 | 
这些差异凸显了Agentic RAG的潜力,它不仅增强了信息检索,还使AI系统能够积极参与并导航复杂环境,从而实现更有效的决策和任务完成。
Agentic RAG的各种使用模式
RAG框架内的agents展示了多种使用模式,每种模式都针对特定任务和目标进行了定制。这些使用模式展示了agents在与RAG系统交互时的多功能性和适应性。以下是RAG上下文中agents的关键使用模式:
- 利用现有RAG管道作为工具:agents可以使用现有的RAG管道作为工具来完成特定任务或生成输出。通过利用现有管道,agents可以简化其操作并利用RAG框架中已有的功能。
- 作为独立的RAG工具运行:agents可以在框架内作为独立的RAG工具运行。这使得agents能够根据输入查询独立生成响应,而无需依赖外部工具或管道。
- 基于查询上下文的动态工具检索:agents可以根据查询提供的上下文从RAG系统中检索相关工具,例如向量索引。这种工具检索使agents能够根据每个查询的具体要求调整其操作。
- 跨现有工具的查询规划:agents能够通过分析输入查询并从RAG系统中预定义的现有工具集中选择合适工具来执行查询规划任务。这使得agents能够根据查询需求和预期结果优化工具选择。
- 从候选池中选择工具:在RAG系统提供多种工具的情况下,agents可以帮助根据查询检索到的候选工具池中选择最合适的工具。这种选择过程确保所选工具与查询上下文和目标紧密匹配。
这些使用模式可以组合和定制,以创建针对特定用例和需求的复杂RAG应用程序。通过利用这些模式,RAG框架内的agents可以高效完成各种任务,从而提高系统的整体效率和有效性。
Agentic RAG:通过智能agents扩展传统检索增强生成(RAG)管道
Agentic RAG(检索增强生成)是传统RAG框架的扩展,它引入了agents的概念,以增强系统的能力和功能。在Agentic RAG中,agents用于协调和管理RAG管道的各个组件,并执行超出简单信息检索和生成的其他任务和推理。
在传统RAG系统中,管道通常包括以下组件:
- 查询/提示:用户的输入查询或提示。
- 检索器:一个组件,用于搜索知识库以检索与查询相关的信息。
- 知识库:包含要检索信息的外部数据源。
- 大型语言模型(LLM):一个强大的语言模型,根据查询和检索到的信息生成输出。
在Agentic RAG中,agents被引入以增强和扩展此管道的功能。以下是agents如何集成到RAG框架中的详细说明:
- 查询理解和分解
 agents可以用于更好地理解用户的查询或提示,识别其意图,并将其分解为可以更有效地由RAG管道处理的子任务或子查询。
 例如,像“提供量子计算最新进展及其对网络安全潜在影响的摘要”这样的复杂查询可以被分解为“检索量子计算最新进展的信息”和“检索量子计算对网络安全影响的信息”等子查询。
- 知识库管理
 agents可以策划和管理RAG系统使用的知识库。
 这包括识别相关信息源,从这些源中提取和结构化数据,并使用新的或修订的信息更新知识库。
 agents还可以为给定查询或任务选择最合适的知识库或知识库子集。
- 检索策略选择和优化
 agents可以根据查询或任务选择最合适的检索策略(例如,关键词匹配、语义相似性、神经检索)。
 它们还可以微调和优化检索过程以提高性能,考虑查询复杂性、领域特定知识需求和可用计算资源等因素。
- 结果合成和后处理
 在RAG管道生成初始输出后,agents可以合成和后处理结果。
 这可能涉及从多个检索源组合信息,解决不一致性,并确保最终输出连贯、准确且结构良好。
 agents还可以应用额外的推理、决策制定或领域特定知识以进一步增强输出。
- 迭代查询和反馈循环
 agents可以促进迭代查询过程,用户可以提供反馈、澄清查询或请求更多信息。
 基于此反馈,agents可以优化RAG管道,更新知识库,或调整检索和生成策略。
- 任务协调和协调
 对于需要多个步骤或子任务的复杂任务,agents可以协调和协调这些子任务通过RAG管道的执行。
 agents可以管理信息流,将子任务分配给不同的组件或模型,并将中间结果组合成最终输出。
- 多模态集成
 agents可以促进多模态数据源(例如图像、视频、音频)集成到RAG管道中。
 这允许更全面的信息检索和生成能力,使系统能够处理涉及多种模态的查询或任务。
- 持续学习和适应
 agents可以监控RAG系统的性能,识别改进领域,并促进持续学习和适应。
 这可能涉及更新知识库、微调检索策略或根据用户反馈、性能指标或底层数据或领域的变化调整RAG管道的其他组件。
通过将agents集成到RAG框架中,Agentic RAG系统可以变得更加灵活和适应性强,能够处理需要跨多个组件和模态进行推理、决策制定和协调的复杂任务。agents充当智能协调者和促进者,增强了RAG管道的整体功能和性能。
基于功能的Agentic RAG分类
RAG agents可以根据其功能进行分类,提供从简单到复杂的多种能力,具有不同的成本和延迟。它们可以用于路由、一次性查询规划、使用工具、采用推理+行动(ReAct)方法以及协调动态规划和执行等目的。
路由agent(Routing agent)
路由agent使用大型语言模型(LLM)来确定选择哪个下游RAG管道。此过程构成agentic推理,其中LLM分析输入查询以做出选择最合适RAG管道的明智决策。这是agentic推理的基本和简单形式。
一次性查询规划agent
查询规划agent将复杂查询分解为可并行化的子查询,每个子查询可以在基于不同数据源的各种RAG管道上执行。然后,这些管道的响应被合并为最终响应。基本上,在查询规划中,初始步骤涉及将查询分解为子查询,在每个合适的RAG管道上执行每个子查询,并将结果合成为全面响应。
工具使用agent
在典型的RAG中,提交查询以检索与查询语义匹配的最相关文档。然而,在某些情况下,需要从外部源(如API、SQL数据库或具有API接口的应用程序)获取额外数据。此额外数据用作上下文以增强输入查询,然后由LLM处理。在这种情况下,agent可以使用RAG工具。
ReAct agent
ReAct = 推理 + 行动与LLMs
提升到一个更高的层次涉及将推理和行动结合起来,这些推理和行动在复杂查询上迭代执行。本质上,这包括将路由、查询规划和工具使用组合到一个实体中。ReAct agent能够处理顺序多部分查询,同时保持状态(在内存中)。该过程包括以下步骤:
- 接收到用户输入查询后,agent确定要使用的适当工具(如有必要)并收集工具所需的输入。
- 使用必要的输入调用工具,并存储其输出。
- agent然后接收工具的历史记录,包括输入和输出,并基于此信息确定后续操作。
- 此过程迭代进行,直到agent完成任务并向用户响应。
动态规划和执行agent
ReAct目前是最广泛采用的agent;然而,随着agents在生产环境中的部署增加,对更高可靠性、可观察性、并行化、控制和关注点分离的需求也在增加。本质上,需要长期规划、执行洞察、效率优化和延迟减少。
在基本层面上,这些努力旨在将高级规划与短期执行分开。此类agents的基本原理包括:
- 概述完成输入查询计划所需的步骤,基本上创建整个计算图或有向无环图(DAG)。
- 确定执行计划中每个步骤所需的工具(如有),并使用必要的输入执行它们。
- 这需要规划者和执行者的存在。规划者通常使用大型语言模型(LLM)根据用户查询制定逐步计划。然后,执行者执行每个步骤,识别完成任务所需的工具。此迭代过程持续进行,直到整个计划执行完毕,最终呈现最终响应。
如何实现Agentic RAG?
构建Agentic RAG需要特定的框架和工具,以促进多个agents的创建和协调。虽然从头开始构建这样的系统可能很复杂,但有几个现有选项可以简化实现过程。让我们探索一些潜在的途径:
- LlamaIndex
 LlamaIndex是构建agent系统的强大基础,提供了全面的功能套件。它使开发人员能够创建文档agents、监督agents交互并实现高级推理机制,如思维链。该框架提供了许多预构建工具,便于与各种数据源(包括Google等流行搜索引擎和Wikipedia等存储库)进行交互。它无缝集成各种数据库,包括SQL和向量数据库,并通过Python REPL支持代码执行。LlamaIndex的Chains功能使不同工具和LLM的无缝链接成为可能,促进了复杂工作流的创建。此外,其内存组件有助于跟踪agents操作和对话历史,促进上下文感知的决策制定。包含针对特定用例(如聊天机器人和问答系统)的专用工具包进一步增强了其实用性。然而,可能需要编码技能和理解底层架构才能充分利用其潜力。
- LangChain
 与LlamaIndex类似,LangChain提供了一个全面的工具包,用于构建基于agents的系统并协调它们之间的交互。其一系列工具与LangChain生态系统中的外部资源无缝集成,使agents能够访问广泛的功能,包括搜索、数据库管理和代码执行。LangChain的可组合性功能使开发人员能够组合不同的数据结构和查询引擎,促进能够访问和操作来自各种源的信息的复杂agents的创建。其灵活的框架可以轻松适应Agentic RAG实现中固有的复杂性。
当前框架的局限性:LlamaIndex和LangChain提供了强大的功能,但由于其编码要求,可能对开发人员来说学习曲线较陡。开发人员应准备好投入时间和精力以充分掌握这些框架,以释放其全部潜力。
本文翻译自:《Agentic RAG: What it is, its types, applications and implementation》
原文地址:Agentic RAG: What it is, its types, applications and implementation
翻译的时候有优化、调整。

 老唐笔记
老唐笔记 
  
  
  
  
 






 
  
 











