Agentic RAR+Nano-GraphRAG+Claude 3.7 Sonnet=智能推理RAG系统

发布于 2025-4-15 06:54
浏览
0收藏

在这篇文章中,我将介绍如何使用 LangGraph、Agentic RAR、Nano-GraphRAG 以及 Claude 3.7 Sonnet 来创建一个基于智能推理(Agentic RAR)的聊天机器人,看完这篇文章之后你就学会了如何为你的业务打造一个强大的智能推理聊天机器人。

我首先向你展示一下聊天机器人的效果:“生成代码,检查以下数字是否为回文数:123、121、12321、12345、123454321。”

Agentic RAR+Nano-GraphRAG+Claude 3.7 Sonnet=智能推理RAG系统-AI.x社区

当用户提出问题时,初始推理 Agent 会对其进行分析,识别需要哪些专业 Agent,并检测特定的标签,这些标签表明 Agent 查询类型,例如网页搜索、代码执行或思维导图。

每个 Agent 都有一个负责收集数据的伙伴。例如,当代码 Agent 执行任务时,另一个 Agent 会记录过程并将其存储在一个文件中。

  • route_to_agent 通过检查状态的推理和所需 Agent 来指导工作流程,提取嵌入式查询,决定激活哪个 Agent,并存储路由决策。
  • 当需要网页搜索时,web_search_agent 会查询 Tavily API,处理结果,更新推理,并在移除自身之前存储查询和结果。
  • code_execution_agent 生成并执行代码,提取带有格式化标签的输出,更新推理,存储结果,并在执行后移除自身。
  • 思维导图 Agent 扮演两个角色:在整个过程中收集知识,并在查询时组织结构化信息。它汇编所有收集的信息,将其格式化为知识文档,并存储在 GraphRAG 知识图谱中,以便检索和结构化分析。
  • 知识管理依赖于通过 collected_knowledge 字典进行的过程内收集和通过基于 GraphRAG 的 MindMap 类进行持久存储,它使用基于目录的存储、JSON 文本块、用于语义搜索的向量嵌入以及通过 graph_retrieval 的查询功能,从而使知识随着时间的推移而增长。
  • 最后,synthesize_answer 方法整合所有收集的信息,生成全面的总结,将其存储在思维导图中,查询相关信息,并结合推理链和思维导图信息生成最终答案。

我在开发中遇到的问题

在开发聊天机器人时,我踩了一些坑。

  • 一个主要问题是思维导图初始化,Agent 在没有任何数据收集之前就尝试访问数据,导致“matrix”错误。为了解决这个问题,我改变了初始化方法,在启动时仅创建基本的目录结构,并让 Agent 在存储信息之前收集真实数据。
  • 另一个坑是 Agent 之间的状态管理,因为信息在转换之间会丢失。我通过添加一个持久的知识收集机制解决了这个问题,使用 collected_knowledge 字典跟踪输出,确保知识逐步积累。
  • 最后,思维导图中的知识整合效果不佳,因此我修改了工作流,持续收集数据,在适当的时刻存储格式化的知识,并在合成前查询思维导图。
  • 最大的突破是重新设计思维导图 Agent,使其成为一个被动的收集者,而不是一个显式调用的 Agent,从而让它在推理过程中自然构建全面的知识图谱。

通过这篇文章,你将了解 Agentic RAR 和 Nano-GraphRAG 是什么,为什么 Agentic RAR 如此独特,它是如何工作的,以及我们如何使用 Agentic RAR 创建一个强大的推理聊天机器人。

什么是 Agentic RAR?

首先,大型语言模型(LLM)中的推理能力可能还不是 AGI(通用人工智能)或 ASI(超人工智能),但它在处理数学、编码和复杂思维等任务方面已经取得了巨大的进步。

以 Claude 3.7 Sonnet 的最新版本为例,这是市场上首个混合推理模型。它可以根据需求快速响应或进行更深入的思考,用户还可以调整它的思考时间。它能够启动一种长时间思考模式,模拟人脑的思考过程。

Agentic RAR+Nano-GraphRAG+Claude 3.7 Sonnet=智能推理RAG系统-AI.x社区

LLM 在序列推理方面存在困难。例如,如果你要求一个 LLM 解决一个多步骤的数学问题,它可能会忘记前面的步骤,从而给出错误的答案。

如果遇到不明确的地方,它们会猜测而不是询问细节,这可能导致错误。有时,它们甚至对同一个问题给出不同的答案,这也很令人困惑,因为它们在处理专家级话题和长期对话时会遇到困难。

想象一下,你有一个非常聪明的朋友,他不仅知识渊博,还能上网搜索更多信息,编写并运行简单的程序,甚至还能画出思维导图来帮助连接各种想法。

这就是 Agentic RAR 的用武之地。它在 RAG 模式基础上,引入了一种动态的、以推理为核心的问题处理方式。

Agentic Reasoning 就像赋予 AI 模型使用额外工具的能力——就像我们使用计算器解决复杂数学问题、查字典找词义或用搜索引擎在线查找答案一样。

想象你问 AI:“中国现在的人口是多少?”它不仅依赖过去学到的知识,还能检查最新数据并给你一个准确的答案。这让 AI 变得更聪明、更有用,因为它不会只是猜测——它会通过使用正确的工具找到最佳答案,就像我们在现实生活中一样!

为什么 Agentic RAR 独特?

Agentic RAR 的独特之处在于,它通过统一的 API 标准化工具调用,使得集成新工具(比如化学方程求解器)变得轻而易举。

它还能动态分配认知负荷,通过将简单任务分配给轻量 Agent,将复杂计算交给专用代码代理,确保高效使用资源——在医学诊断测试中,响应速度提高了 40%,计算能力使用量减少了 72%。

它的多模态记忆融合使思维导图代理能够存储并链接文本、公式和图表,创建一个三维知识系统——使其能够处理复杂问题。

它是如何工作的?

Agentic Reasoning 采用一种结构化的方法,结合各种外部 Agent 来增强 LLM 的推理能力。

  • 它使用网页搜索 Agent 从互联网获取实时信息,帮助补充 LLM 预训练数据集之外的知识。
  • 编码 Agent 用于执行代码或完成计算任务;这个 Agent 支持定量推理并解决需要编程技能的问题。
  • 思维导图 Agent 用于构建知识图谱,组织和可视化复杂的逻辑关系,帮助结构化推理过程。
  • 该模型能在推理过程中识别何时需要额外信息或计算能力。它可以生成特定的查询,无缝触发外部 Agent 的使用。

在综合所有信息和结构化信息后,模型会构建一个连贯的推理链并生成最终答案。

认识 Nano-GraphRAG  

GraphRAG 由微软提出,非常有效,但官方实现和使用非常复杂,难以修改和定制。

Nano-GraphRAG 是一个轻量且灵活的 GraphRAG 实现,旨在简化 GraphRAG 的使用和定制。它保留了 GraphRAG 的核心功能,同时提供更简单的代码结构、更友好的用户体验和更高的可定制性。

Agentic RAR+Nano-GraphRAG+Claude 3.7 Sonnet=智能推理RAG系统-AI.x社区

Nano-GraphRAG 仅有大约 1100 行代码(不包括测试和提示),设计为轻量、异步且完全类型化,非常适合希望将 GraphRAG 集成到项目中而又不增加复杂性的开发者。

本文转载自​​PyTorch研习社​​,作者:南七无名式

已于2025-4-15 10:07:10修改
收藏
回复
举报
回复
相关推荐