什么是Agentic RAG?和RAG又有什么区别?

2,827 阅读5分钟

四张图搞懂 RAG、AI Agent、Agentic RAG!

RAG + Agents= Agentic RAG

Agentic RAG 描述了一种基于 AI Agents 的 RAG 实现。具体来说,它将 AI Agents 整合到 RAG 流程中,协调其组件并执行除简单信息检索和生成之外的其他操作,以克服传统 RAG 的局限性。

一个形象的比喻:RAG 就像在图书馆(智能手机出现之前)回答特定问题,而 Agentic RAG 就像手中拿着一部智能手机,上面有网络浏览器、计算器、电子邮件等。

RAG(检索、增强、生成)

图片

AI大模型学习资源【点击该蓝字获取】

Al Agent

LLM(具有角色和任务)

记忆(短期和长期)

规划(例如,反思、自我批评、查询路由等)

工具(例如,计算器、网络搜索等)

图片

Single Agent RAG

一个 Agent 完成推理、检索和生成

Agentic RAG 作为 Tools 路由

图片

Multi Agent RAG

一个总 Agent

多个专门的检索 Agents

图片

再见RAG,你好 Agentic RAG!

什么是检索增强型生成(RAG)

检索增强型生成(RAG)是一种构建LLM驱动应用的技术。它利用外部知识源为LLM提供相关上下文,减少幻觉现象。

一个简单的RAG流程包括一个检索组件(通常由一个嵌入模型和一个向量数据库组成)和一个生成组件(一个LLM)。

在推理时,用户查询用于在索引文档上运行相似性搜索,检索与查询最相似的文档,并为LLM提供额外的上下文。

图片

典型的RAG应用有两个相当大的局限性:

AI系统中的智能体是什么

随着LLM的流行,AI智能体和多智能体系统的新范式已经出现。AI智能体是具有角色和任务的LLM,它们可以访问内存和外部工具。LLM的推理能力帮助智能体规划所需的步骤并采取行动来完成手头的任务。

因此,AI智能体的核心组件包括

LLM(具有角色和任务)

内存(短期和长期)

规划(例如,反思、自我批评、查询路由等)

工具(例如,计算器、网络搜索等)

图片

什么是Agentic RAG?

Agentic RAG描述了基于AI智能体实现的RAG,具体来说,它将AI智能体纳入RAG流程中,以协调其组件并执行超出简单信息检索和生成的额外行动,以克服非智能体流程的局限性。

Agentic RAG描述了基于AI智能体实现的RAG。

Agentic RAG如何工作?

尽管智能体可以被纳入RAG流程的不同阶段,智能体RAG最常用于检索组件中的智能体。

具体来说,检索组件通过使用具有访问不同检索工具的检索智能体而变得智能体化,例如:

··向量搜索引擎(也称为查询引擎),它在向量索引上执行向量搜索(像典型的RAG流程中一样)

··网络搜索

图片

Agentic RAG架构

与顺序的简单RAG架构相比,智能体RAG架构的核心是智能体。智能体RAG架构可以有不同程度的复杂性。

在最简单的形式中,单智能体RAG架构是一个简单的路由器。然而,你也可以将多个智能体添加到多智能体RAG架构中。

本节讨论了两个基本的RAG架构。

单智能体RAG(路由器)

在其最简单的形式中,智能体RAG是一个路由器。这意味着你至少有两个外部知识源,智能体决定从哪一个检索额外的上下文。然而,外部知识源不必局限于(向量)数据库。

你也可以从工具中检索更多信息。例如,你可以进行网络搜索,或者你可以使用API从Slack频道或你的电子邮件账户中检索额外的信息。

图片

多智能体RAG系统

正如你可以猜到的,单智能体系统也有其局限性,因为它仅限于一个智能体进行推理、检索和答案生成。因此,将多个智能体链入多智能体RAG应用是有益的。

例如,你可以有一个主智能体,它协调多个专业检索智能体之间的信息检索。例如,一个智能体可以从专有的内部数据源检索信息。

另一个智能体可以专门从你的个人账户(如电子邮件或聊天)检索信息。另一个智能体也可以专门从网络搜索中检索公共信息。

图片

DSPy支持ReAct智能体和Avatar优化。Avatar优化描述了使用自动化提示工程来描述每个工具的使用。

LangChain为使用工具提供许多服务LangChain的LCEL和LangGraph框架进一步提供了内置工具。

Llamalndex进一步引入了QueryEngineTool,这是一个用于检索工具的模板集合。CrewAI是开发多智能体系统的领先框架之一。用于工具使用的一个关键概念是智能体之间共享工具。

Swarm是由OpenAl构建的多智能体协调框架Swarm同样专注于智能体之间如何共享工具: Letta将反映和提炼内部世界模型作为函数。

这意味着可能使用搜索结果来更新聊天机器人用户的智能体内存,除了回答问题。