文章介绍了检索增强生成(RAG)和人工智能代理的基本概念,详细阐述了代理型RAG的工作原理、架构设计和实现方法。代理型RAG通过引入人工智能代理协调检索组件,克服了传统RAG的局限性,支持多知识源和动态决策。文章对比了代理型RAG与普通RAG的区别,讨论了企业采用代理型RAG的优势与挑战,并提供了基于功能调用语言模型和代理框架两种实现途径,为构建更智能、更准确的LLM驱动型应用提供了指导。


最近总听说RAG,RAG到底是什么呢?本文将向你介绍代理型 RAG 的概念、实施方法,以及其优势与局限性。

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

检索增强生成(RAG)是一种用于构建大型语言模型(LLM)驱动型应用的技术。它借助外部知识源,为大型语言模型提供相关背景信息,从而减少幻觉现象。就好比给 LLM 配备了一个小型的“资料库”,当用户提出问题时,系统会在资料库中查找相关内容并提供给 LLM,以帮助其生成更准确的回答。

基本的 RAG 流程包括检索组件(通常由嵌入模型和向量数据库组成)和生成组件(大型语言模型)。在推理阶段,用户问题用于在已索引的文档上执行相似性搜索,检索出与问题最相似的文档,并为大型语言模型提供额外的背景信息。

典型的 RAG 应用存在两个显著局限:

  1. 简单的 RAG 流程仅考虑一个外部知识源。然而,有些解决方案可能需要两个外部知识源,有些解决方案可能需要外部工具和 API,例如网络搜索。
  2. 它是一次性解决方案,即仅检索一次背景信息。对检索到的背景信息的质量没有进行推理或验证。

2、人工智能系统中的Agents是什么?

随着大型语言模型(LLM)的流行,人工智能代理和多代理系统的新范式应运而生。人工智能代理是具有角色和任务的大型语言模型,可以访问内存和外部工具。大型语言模型的推理能力有助于代理规划所需步骤并采取行动以完成当前任务。

举个例子,一个智能旅行规划代理可以帮助你规划旅行路线。它会先思考“用户需要一个旅行路线”这个任务,然后决定使用网络搜索工具查找目的地的景点和酒店,接着分析搜索结果并拟定旅行计划,最后将计划呈现给你。在这个过程中,它不断地思考、行动、观察,直到完成任务。

因此,人工智能代理的核心组件是:

  • 大型语言模型(具有角色和任务)
  • 内存(短期和长期)
  • 规划(例如,反思、自我批评、查询路由等)
  • 工具(例如,计算器、网络搜索等)

一个流行框架是 ReAct 框架。ReAct 代理可以通过将路由、查询规划和工具使用整合到一个实体中,来处理顺序多部分查询,同时通过维护状态(在内存中)。

ReAct = 推理 + 行动(借助大型语言模型)

该过程涉及以下步骤:

思考:在接收到用户查询后,代理对下一步要采取的行动进行推理。

行动:代理决定一个行动并执行它(例如,使用工具)。

观察:代理观察该行动的反馈。

这个过程不断迭代,直到代理完成任务并回复用户。

3、什么是代理型 RAG?

代理型 RAG 是一种基于人工智能代理来实现检索增强生成(RAG)的方法。具体来说,它将人工智能代理引入 RAG 流程中,协调其组件并执行简单信息检索与生成之外的更多操作,以此克服非代理型流程的局限。

3.1、代理型 RAG 如何工作?

尽管可以在 RAG 流程的不同阶段引入代理,但代理型 RAG 通常指的是在检索组件中使用代理。具体来说,通过使用具有访问不同检索工具权限的检索代理,检索组件具备了代理的特性,这些工具有:

  • 向量搜索引擎(也称为查询引擎),可在向量索引上执行向量搜索(如同在典型的 RAG 流程中)
  • 网络搜索
  • 计算器
  • 任何可编程访问软件的 API,例如电子邮件或聊天程序
  • 以及其他更多工具。

然后,RAG 代理可在以下示例检索场景中进行推理和行动:

  • 决定是否检索信息
  • 决定使用哪种工具来检索相关信息
  • 拟定查询本身
  • 评估检索到的上下文并决定是否需要重新检索。
3.2、代理型 RAG 架构

与顺序的简单 RAG 架构不同,代理型 RAG 架构的核心是代理。代理型 RAG 架构可以具有不同程度的复杂性。最简单的形式是单代理 RAG 架构,即简单路由。但你也可以在多代理 RAG 架构中添加多个代理。本节将讨论两种基本的 RAG 架构。

3.2.1、单代理 RAG(路由)

在最简单的形式中,代理型 RAG 是一个路由。这意味着至少有两个外部知识源,代理决定从哪一个检索额外的上下文。然而,外部知识源不必局限于(向量)数据库。你也可以通过工具检索进一步的信息。例如,你可以进行网络搜索,或者使用 API 从 Slack 频道或你的电子邮件账户中检索额外的信息。

3.2.2、多代理 RAG 系统

正如你所能推测的,单代理系统也存在局限性,因为它仅限于一个集推理、检索和答案生成于一身的代理。因此,将多个代理串联成一个多代理 RAG 应用是很有益的。

例如,你可以设置一个主管代理,让它协调多个专门化检索代理之间的信息检索工作。比如,一个代理可以从专有的内部数据源检索信息,另一个代理可以专门从你的个人账户(如电子邮件或聊天记录)中检索信息,还有一个代理则可以专注于从网络搜索中获取公开信息。

3.2.3、超越检索代理

以上示例展示了不同类型检索代理的用法。然而,你也可以将代理用于检索之外的其他目的。代理在 RAG 系统中的可能性是多方面的。

4、代理型 RAG 与(普通)RAG 的对比

虽然 RAG 的基本概念(发送查询、检索信息和生成响应)保持不变,但工具的使用使其更加灵活和强大。

可以这样理解:普通的(基础)RAG 就像在智能手机出现之前的图书馆里回答特定问题。而代理型 RAG 则如同手中拿着一部带有网页浏览器、计算器、电子邮件等应用的智能手机。

5、实现代理型 RAG

如前所述,代理由多个组件构成。要构建代理型 RAG 流程,有两种选择:具有功能调用的语言模型或代理框架。两种实现方式最终都能达到相同的结果,区别仅在于你所期望的控制程度和灵活性。

5.1、具有功能调用的语言模型

语言模型是代理型 RAG 系统的主要组件。另一个组件是工具,它使语言模型能够访问外部服务。具有功能调用的语言模型提供了一种构建代理系统的方法,通过允许模型与预定义工具交互。语言模型提供商已将此功能添加到他们的客户端。

2023 年 6 月,OpenAI 为 gpt-3.5-turbo 和 gpt-4 推出了功能调用。这使得这些模型能够可靠地将 GPT 的功能与外部工具和 API 结合起来。开发者迅速开始构建应用程序,将 gpt-4 集成到代码执行器、数据库、计算器等工具中。

Cohere 进一步推出了他们的连接器 API,为 Command-R 系列模型添加工具。此外,Anthropic 和 Google 也为 Claude 和 Gemini 推出了功能调用。通过为这些模型提供外部服务支持,它们能够访问和引用网络资源、执行代码等。

功能调用不仅限于专有模型。Ollama 为流行的开源模型(如 Llama3.2、nemotron-mini 等)引入了工具支持。

要构建一个工具,首先需要定义函数。在这个代码片段中,我们编写了一个函数,该函数使用 Weaviate 的混合搜索从数据库中检索对象:

def get_search_results(query: str) -> str:
    """Sends a query to Weaviate's Hybrid Search. Parses the response into a {k}:{v} string."""
    
    response = blogs.query.hybrid(query, limit=5)
    
    stringified_response = ""
    for idx, o in enumerate(response.objects):
        stringified_response += f"Search Result: {idx+1}:\n"
        for prop in o.properties:
            stringified_response += f"{prop}:{o.properties[prop]}"
        stringified_response += "\n"
    
    return stringified_response

然后,我们将通过工具模式将函数传递给语言模型。然后在提示语言模型时使用该模式:

tools_schema=[{
    'type': 'function',
    'function': {
        'name': 'get_search_results',
        'description': 'Get search results for a provided query.',
        'parameters': {
          'type': 'object',
          'properties': {
            'query': {
              'type': 'string',
              'description': 'The search query.',
            },
          },
          'required': ['query'],
        },
    },
}]

由于你是直接连接到语言模型 API,所以需要编写一个在语言模型和工具之间路由的循环:

def ollama_generation_with_tools(user_message: str,
                                 tools_schema: List, tool_mapping: Dict,
                                 model_name: str = "llama3.1") -> str:
    messages=[{
        "role": "user",
        "content": user_message
    }]
    response = ollama.chat(
        model=model_name,
        messages=messages,
        tools=tools_schema
    )
    if not response["message"].get("tool_calls"):
        return response["message"]["content"]
    else:
        for tool in response["message"]["tool_calls"]:
            function_to_call = tool_mapping[tool["function"]["name"]]
            print(f"Calling function {function_to_call}...")
            function_response = function_to_call(tool["function"]["arguments"]["query"])
            messages.append({
                "role": "tool",
                "content": function_response,
            })
    
    final_response = ollama.chat(model=model_name, messages=messages)
    return final_response["message"]["content"]

你可以按照这个配方来重现上述内容。

5.2、代理框架

诸如 DSPy、LangChain、CrewAI、LlamaIndex 和 Letta 等代理框架已经出现,以方便使用语言模型构建应用。这些框架通过组合预制模板简化了构建代理型 RAG 系统的过程。

DSpy 支持 ReAct 代理和头像优化。头像优化描述了为每个工具的描述使用自动化提示工程。

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

LlamaIndex 进一步引入了 QueryEngineTool,即检索工具的模板集合。

CrewAI 是开发多代理系统的领先框架之一。在工具使用中利用的关键概念之一是在代理之间共享工具。

Swarm 是 OpenAI 构建的用于多代理编排的框架。Swarm 同样关注工具在代理之间的共享方式。 Letta 通过函数反映和细化内部世界模型。这可能涉及使用搜索结果来更新聊天机器人对用户的记忆,而不仅仅是回答问题。

6、为什么企业采用代理型 RAG

企业正在从基础 RAG 转向构建代理型 RAG 应用。Replit 推出了一个帮助开发者构建和调试软件的代理。此外,微软宣布推出与用户并肩工作的副驾,以提供完成任务的建议。这些只是生产中代理的几个例子,可能性是无穷无尽的。

6.1、代理型 RAG 的好处

从基础 RAG 转向代理型 RAG,使这些系统能够产生更准确的响应、自主执行任务以及更好地与人类协作。

代理型 RAG 的好处主要在于检索附加信息的质量得到改善。通过增加可以使用工具的代理,检索代理可以将查询路由到专门的知识源。此外,代理的推理能力可以在检索到的上下文用于进一步处理之前对其进行验证。因此,代理型 RAG 流程可以产生更稳健、更准确的响应。

6.2、代理型 RAG 的局限性

然而,任何事物都有两面性。使用 AI 代理执行子任务意味着引入一个大型语言模型(LLM)来执行任务。这带来了在任何应用中使用大型语言模型的局限性,例如增加延迟和不可靠性。根据大型语言模型的推理能力,代理可能无法充分完成任务(甚至根本无法完成)。重要的是要纳入适当的故障模式,以帮助 AI 代理在无法完成任务时摆脱困境。

零基础如何高效学习大模型?

为了帮助大家打破壁垒,快速了解大模型核心技术原理,学习相关大模型技术。从原理出发真正入局大模型。在这里我和MoPaaS魔泊云联合梳理打造了系统大模型学习脉络,这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码免费领取🆓**⬇️⬇️⬇️

在这里插入图片描述

【大模型全套视频教程】

教程从当下的市场现状和趋势出发,分析各个岗位人才需求,带你充分了解自身情况,get 到适合自己的 AI 大模型入门学习路线。

从基础的 prompt 工程入手,逐步深入到 Agents,其中更是详细介绍了 LLM 最重要的编程框架 LangChain。最后把微调与预训练进行了对比介绍与分析。

同时课程详细介绍了AI大模型技能图谱知识树,规划属于你自己的大模型学习路线,并且专门提前收集了大家对大模型常见的疑问,集中解答所有疑惑!

在这里插入图片描述

深耕 AI 领域技术专家带你快速入门大模型

跟着行业技术专家免费学习的机会非常难得,相信跟着学习下来能够对大模型有更加深刻的认知和理解,也能真正利用起大模型,从而“弯道超车”,实现职业跃迁!

在这里插入图片描述

【精选AI大模型权威PDF书籍/教程】

精心筛选的经典与前沿并重的电子书和教程合集,包含《深度学习》等一百多本书籍和讲义精要等材料。绝对是深入理解理论、夯实基础的不二之选。

在这里插入图片描述

【AI 大模型面试题 】

除了 AI 入门课程,我还给大家准备了非常全面的**「AI 大模型面试题」,**包括字节、腾讯等一线大厂的 AI 岗面经分享、LLMs、Transformer、RAG 面试真题等,帮你在面试大模型工作中更快一步。

【大厂 AI 岗位面经分享(92份)】

图片

【AI 大模型面试真题(102 道)】

图片

【LLMs 面试真题(97 道)】

图片

【640套 AI 大模型行业研究报告】

在这里插入图片描述

【AI大模型完整版学习路线图(2025版)】

明确学习方向,2025年 AI 要学什么,这一张图就够了!

img

👇👇点击下方卡片链接免费领取全部内容👇👇

在这里插入图片描述

抓住AI浪潮,重塑职业未来!

科技行业正处于深刻变革之中。英特尔等巨头近期进行结构性调整,缩减部分传统岗位,同时AI相关技术岗位(尤其是大模型方向)需求激增,已成为不争的事实。具备相关技能的人才在就业市场上正变得炙手可热。

行业趋势洞察:

  • 转型加速: 传统IT岗位面临转型压力,拥抱AI技术成为关键。
  • 人才争夺战: 拥有3-5年经验、扎实AI技术功底真实项目经验的工程师,在头部大厂及明星AI企业中的薪资竞争力显著提升(部分核心岗位可达较高水平)。
  • 门槛提高: “具备AI项目实操经验”正迅速成为简历筛选的重要标准,预计未来1-2年将成为普遍门槛。

与其观望,不如行动!

面对变革,主动学习、提升技能才是应对之道。掌握AI大模型核心原理、主流应用技术与项目实战经验,是抓住时代机遇、实现职业跃迁的关键一步。

在这里插入图片描述

01 为什么分享这份学习资料?

当前,我国在AI大模型领域的高质量人才供给仍显不足,行业亟需更多有志于此的专业力量加入。

因此,我们决定将这份精心整理的AI大模型学习资料,无偿分享给每一位真心渴望进入这个领域、愿意投入学习的伙伴!

我们希望能为你的学习之路提供一份助力。如果在学习过程中遇到技术问题,也欢迎交流探讨,我们乐于分享所知。

*02 这份资料的价值在哪里?*

专业背书,系统构建:

  • 本资料由我与MoPaaS魔泊云的鲁为民博士共同整理。鲁博士拥有清华大学学士美国加州理工学院博士学位,在人工智能领域造诣深厚:

    • 在IEEE Transactions等顶级学术期刊及国际会议发表论文超过50篇
    • 拥有多项中美发明专利。
    • 荣获吴文俊人工智能科学技术奖(中国人工智能领域重要奖项)。
  • 目前,我有幸与鲁博士共同进行人工智能相关研究。

在这里插入图片描述

内容实用,循序渐进:

  • 资料体系化覆盖了从基础概念入门核心技术进阶的知识点。

  • 包含丰富的视频教程实战项目案例,强调动手实践能力。

  • 无论你是初探AI领域的新手,还是已有一定技术基础希望深入大模型的学习者,这份资料都能为你提供系统性的学习路径和宝贵的实践参考助力你提升技术能力,向大模型相关岗位转型发展

    在这里插入图片描述在这里插入图片描述在这里插入图片描述

抓住机遇,开启你的AI学习之旅!

在这里插入图片描述

Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐