点击上方↗️「活水智能」,关注 + 星标🌟

作者:S S Kumar
编译:活水智能
Gartner Inc. 预测,到 2028 年,企业软件应用中包含“智能代理型 AI”的比例将从 2024 年的不足 1% 提升至 33%,从而使 15% 的日常工作任务能够实现自主化决策。
在不断发展的 AI 领域,检索增强生成(RAG) 已成为利用外部数据来支持大型语言模型 (LLM) 的首选方法。然而,传统的 RAG 通常依赖于非结构化的、以文档为中心的方法,缺乏对深层关系的感知。而 GraphRAG 是一种新兴的方法,它利用数据的图结构表示,提供更丰富的上下文、动态查询和更可靠的答案。
本文将探讨以下内容:
1. 什么是 GraphRAG,以及它为何优于传统的 RAG 2. Agentic 架构(一种利用智能代理的架构)及其在行业内的应用趋势 3. NeoConverse:GraphRAG 和 agentic LLM 设计的前沿实验 4. 一个使用 NeoConverse 中的公司知识图谱的实践示例 5. 关于这项技术未来发展方向的最终思考
什么是 GraphRAG,以及它为何优于传统的 RAG?
RAG 通常处理非结构化或半结构化数据(例如文档),将其拆分为较小且易于管理的数据块(如段落或句子)。接着,通过文本嵌入模型为每个数据块生成对应的数值表示,并在查询时对这些嵌入进行索引和搜索,以根据关键词相似性或语义匹配找到最相关的内容,从而为大型语言模型提供外部上下文支持。虽然这种方法对于一般问答有效,但它通常在以下方面存在不足:
• 难以处理复杂的关联查询:传统的 RAG 擅长根据关键词相似性或语义接近性提取相关的文本块,但不适合需要对数据块、文档、实体或更广泛的上下文之间的关系或连接进行推理的查询。 • 上下文碎片化:文档被视为孤立的数据块,嵌入捕获的是局部含义而不是全局连贯性,因此难以拼凑多跳推理(例如,“哪些供应商与 X 公司的产品线相关联,销售趋势如何?”)。

相反,GraphRAG 利用知识图谱,其中实体和关系是核心要素。这种方法能够实现:
1. 上下文检索:您可以探索图结构来准确查找所需的节点(公司、供应商、产品)和关系。 2. 丰富的多跳查询:图数据库自然地处理多层关系,从而更容易形成高级查询。 3. 可解释的推理:基于图的检索可以通过将其链接到特定的源信息来精确跟踪答案的推导方式,从而增强信任并实现更好的可审计性。

什么是 Agentic 架构,以及为什么行业正在转向它?
传统的 LLM 应用依赖于单一的提示工程来处理所有任务。相比之下,agentic 架构则采用不同的策略:它使用函数调用和工具使用,将工作委托给专门的组件,也就是 agent 或工具。工具是特定的函数或 API(例如,数据库搜索或计算器),而 agent 经常依赖工具来实现其目标,充当协调者或决策者,根据手头的任务调用和协调一个或多个工具。例如:
• 专业 agent:每个 agent 处理一个更高级别的任务。Agent 可以使用一个或多个工具,这些工具是与数据源或 API 的单独集成,用于执行检索或操作任务。 • 自适应 LLM:LLM 解释用户意图并选择最佳 agent 或工具,而不是依赖于预定义的规则。 • 可扩展性和模块化:可以轻松添加或更新其他 agent,而无需重新训练模型。

Agentic 架构的类型
Agentic 架构主要分为以下几种类型:
• 单 agent 系统:LLM 直接通过函数调用使用工具,例如 OpenAI 的早期集成方案,如 ChatGPT 插件。 • 多 agent 系统:多个 agent 各司其职,协同完成任务。例如,在 LangGraph 和 CrewAI 等框架中,一个 agent 负责数据检索,另一个负责数据分析。 • 协调框架:由中央 LLM 或控制器统筹多个 agent 的运行,例如 OpenAI Swarm、Amazon Bedrock Agents 和 Vertex AI Agent Builder,可以实现动态任务分配与协调。
总的来说,单 agent 系统结构简单,适用于简单的任务;多 agent 系统能够处理更复杂的任务,但需要更复杂的协调机制;协调框架则介于两者之间,能够实现动态的任务协调。
行业对 Agentic 框架的采用
当前,越来越多行业领先者开始采用“智能代理框架”,以实现以下目标:
• 提升准确性:领域专家可以单独优化某个智能代理,而无需影响整体系统,从而有助于确保特定任务的精确性。此外,专门的 agent 可以充当质量控制检查点,审查输出的准确性和一致性。这种分层方法可以最大限度地减少错误,同时保持系统的灵活性。 • 复杂的工作流程:某些查询需要链接多个工具(如向量搜索,然后是图遍历),其中 agent 协同工作和通信。专门的 agent 可以使用外部来源来扩充结果。Guardrail agent 还可以强制执行道德或操作边界,从而确保工作流程保持在正轨上并符合预定义的标准。 • 面向未来的准备:随着新的 AI 服务或知识来源的出现,它们可以无缝地集成为 agent。
NeoConverse 简介
NeoConverse(https://neoconverse.graphapp.io/) 是一个实验性的 GenAI 应用程序,它将 GraphRAG 和 agentic 架构整合到一个环境中。可以将 NeoConverse 视为一个探索下一代 LLM 解决方案的实验平台。请注意,它_不是_一个可用于生产的平台(缺少 SSO 或企业级加密、复杂的 guardrail 和验证等功能)。
NeoConverse 是公开托管的,客户可以通过插入自己的 Neo4j 图数据库来随意使用。

快速概览
• 基于图的智能:利用 Neo4j 来探索丰富的关系,执行多跳查询,并应用高级图算法来获得更深入的见解。 • Agentic 工具:它为各种特定领域的任务定义了专门的工具,这些工具使用了多种方法,包括: • 图遍历 • 全文搜索 • 向量嵌入 • 图数据科学算法 • 外部 API 集成 • 架构:NeoConverse 使用单 agent 架构,其中 LLM 充当 agent 来即时选择相关的工具。 • 自动架构解析:自动获取并更新 Neo4j 数据库的架构信息,使 LLM 能够精确地理解可用的节点、关系和属性。 • 少量示例上下文:通过提供示例查询和简短的特定领域问答对来更好地指导理解,从而提高 LLM 的准确性。 • 自主工具选择:使用函数调用来自主选择最佳 agent 或工具,从而显著减少用户干预。 • 智能回退机制:当未识别到合适的 agentic 工具时,会优雅地默认使用 Text2Cypher 查询生成。 • 动态图表生成:直接从自然语言查询生成可视化效果(例如,“显示按公司部门划分的收入条形图”)。 • 实验性图可视化:使用 Neo4j 可视化库 交互式地可视化查询结果,以进行实验性图可视化。
高级架构
以下是 NeoConverse 的工作原理:
1. 用户用简单的英语提问。 2. LLM 解析意图并检查是否有任何用户定义的 agent 适用。 3. 如果有一个专门的 agent 可用,NeoConverse 将执行相应的工具。否则,它将回退到 GetCypher 工具以生成 Text2Cypher。 4. 检索到的上下文将发送回 LLM,后者将编译最终答案。 5. NeoConverse 向用户返回一个有根据的、数据支持的响应。

使用公司数据集探索 NeoConverse
让我们看看 NeoConverse 在使用基于 Neo4j 图数据库构建的公司知识图谱中的实际应用。该数据库作为 Neo4j Labs 示例 Neo4j 数据库的一部分进行托管。
数据库 URL:https://demo.neo4jlabs.com:7473/browser/
用户名/密码/数据库名称:companies/companies/companies
此图对各种组织进行建模,包括:
• 公司:具有名称、部门、成立日期等属性 • 地点:城市、国家/地区 • 高管:与特定公司的 CEO、董事会成员关系 • 投资、供应商、竞争对手、子公司:从一家公司到另一家公司 • 关于组织的新闻文章 • 文章内容的向量化数据块
数据模型概述

NeoConverse Agent 设置
在 NeoConverse 中,您可以从左侧的菜单中创建一个自定义 agent。Agent 配置收集以下信息。
1. 常规:提供 agent 的名称和描述。

2. Neo4j 连接:配置 Neo4j 连接详细信息以进行对话。

3. GenAI API:设置 API 凭据和 LLM 模型配置。

4. 模式:根据 Neo4j 连接详细信息自动提取模式。

5. 少量示例:上下文学习示例。

6. LLM 工具:创建具有目标和检索方法的工具。

NeoConverse 提供了各种知识发现工具,包括:
1. Neo4j 图遍历查询:用于涉及跨图连接数据的复杂查询(例如,“查找 2020 年加入 X 公司的所有员工”)。 2. Neo4j 全文搜索:支持在图中进行模糊搜索以查找近似匹配项(例如,“搜索描述中包含‘机器学习’的公司”)。 3. Neo4j 图数据科学:通过图算法释放见解和模式(例如,“运行社区检测以查找按部门划分的公司集群”)。 4. Neo4j 向量搜索:允许基于向量嵌入进行文档和语义搜索(例如,“公司如何应对最近的经济状况?”)。 5. 外部 API 调用:调用外部 API 以检索上下文。 6. 回退机制:如果未识别到相关的工具,NeoConverse 将使用 Text2Cypher 作为回退,生成适当的 Cypher 查询以与 Neo4j 交互。
您的 agent 将根据用户查询动态选择要调用的检索。
演示 GraphRAG 与传统 RAG:NeoConverse 实验
为了验证 GraphRAG 在处理实体关系方面的优势,我们选择了以下问题: “简要概述 Palantir 的客户。” 在本实验中,我们将对比两种检索方法的表现,以评估它们在实体关系至关重要的场景下的准确性差异。
传统 RAG
我们为传统 RAG 设置了一个 LLM 工具,该工具完全依赖于向量相似性搜索来识别相关的上下文。接下来,我们将其与 GraphRAG 进行比较,GraphRAG 是一种增强的方法,它将知识图谱与向量相似性相结合,以提高性能。下面显示了传统 RAG 的工具配置。

此 RAG 工具中使用的 Cypher 查询对 Neo4j 向量索引(新闻)执行语义搜索,以根据用户的问题查找最相关的新闻文章:
1. 使用 OpenAI 的 text-embedding-ada-002 模型将用户的问题编码为嵌入向量。 2. 查询新闻向量索引,检索前三个最相似的文章。 3. 返回按相关性排序的匹配新闻内容。
实验问题:“简要概述 Palantir 的客户。”
LLM 给出的答案:

LLM 确信地将几家公司(包括 Salesforce、Facebook 和 Gartner)列为 Palantir 的客户,但您猜怎么着?他们根本不是 Palantir 的客户!独立搜索证实了这种差异。
让我们通过分解 RAG 检索器查询的结果来更深入地了解 RAG 失败的原因。以下屏幕截图显示了使用传统 RAG 检索器检索到的 LLM 上下文。

具有误导性的语义相似性:
• 前两个检索到的文档是关于 Palantir 的,但不包含任何 Palantir 的客户信息,只是一些与股票相关的信息。 • 第三个检索到的文档是关于另一家公司(WeWork)的客户的,但因为它包含与客户相关的短语,因此被认为是相似的。LLM 错误地使用此文档作为其最终答案的基础。
缺乏上下文意识:
• 向量搜索算法不了解实体之间的关系。它只是检索具有高语义相似性的文本片段,即使它们在上下文中不正确。 • 由于没有知识图谱来验证实体关系,LLM 无法区分 WeWork 的客户和 Palantir 的客户。
GraphRAG
为了提高准确性,我们修改了检索查询以使用 GraphRAG 而不是传统 RAG:
CALL db.index.fulltext.queryNodes('entity', 'Palantir', {limit:1}) YIELD node AS org
OPTIONAL MATCH (org)-[:HAS_INVESTOR]->(investor)
OPTIONAL MATCH (org)<-[:HAS_INVESTOR]-(investing)
OPTIONAL MATCH (org)-[:HAS_COMPETITOR]-(competitor)
OPTIONAL MATCH (org)-[:HAS_SUPPLIER]->(supplier)
OPTIONAL MATCH (org)<-[:HAS_SUPPLIER]-(supplies)
OPTIONAL MATCH (org)-[:HAS_BOARD_MEMBER]->(board)
OPTIONAL MATCH (org)-[:HAS_CEO]->(ceo)
WITH org.name AS organization,
COLLECT(DISTINCT investor.name) AS investors,
COLLECT(DISTINCT investing.name) AS investingIn,
COLLECT(DISTINCT supplier.name) AS hasSupplier,
COLLECT(DISTINCT supplies.name) AS suppliesTo,
COLLECT(DISTINCT board.name) AS board_members,
COLLECT(DISTINCT ceo.name) AS ceo,
COLLECT(DISTINCT competitor.name) AS competitors
CALL (){
WITH genai.vector.encode('${user_question}', 'OpenAI',
{ token: $token, model:'text-embedding-ada-002' }) AS queryVector
CALL db.index.vector.queryNodes('news', 3, queryVector)
yield node as c, score
MATCH (c)<-[r:HAS_CHUNK]-(article:Article)-[:MENTIONS]-(o:Organization)
WITH o.name as company, COLLECT(c.text) as newsContent
RETURN COLLECT({company:company, newsContent:newsContent}) as optionalContextUseItIfRelevant
}
RETURN organization, investors, investingIn, competitors,
hasSupplier, suppliesTo, board_members, ceo, optionalContextUseItIfRelevant
此 Cypher 查询检索 Palantir 的关键关系,同时执行语义新闻搜索以提供其他上下文。
• 使用全文搜索查找 Palantir,因此用户无需在提示中提供确切的公司名称。 • 匹配所有传入和传出关系以获得组织的 360 度视图(HAS_INVESTOR、HAS_COMPETITOR、HAS_SUPPLIER、HAS_BOARD_MEMBER、HAS_CEO)。 • 使用向量搜索中的其他上下文对其进行扩充。 • 返回所有提取的见解以及可选的新闻上下文,以增强响应。
提供给 LLM 的上下文如下所示。

最终答案:

借助 GraphRAG,LLM 现在可以正确识别 Palantir 的实际客户,同时排除不相关的实体,如 Salesforce 和 Facebook。
为什么?因为 GraphRAG 确保检索到的文章锚定到知识图谱中 Palantir 的节点,从而为 LLM 提供更好的上下文以生成答案。
主要收获

对于简单的文本检索和摘要任务,传统 RAG 可能仍然有用,但当实体关系很重要时,应将其与基于图的检索相结合。
Agentic 架构的实际应用:NeoConverse 演示
到目前为止,我们已经探讨了 GraphRAG 如何利用知识图谱中的连接来进行 RAG。现在,让我们研究一下 agentic 架构如何将这些 AI 驱动的工作流程提升到新的水平。
在一个每天都有新的 AI 应用程序涌现的世界中,问题不再是 AI _是否_可以解决问题,而是它如何有效地驾驭复杂性、协调资源和交付结果。这正是 agentic 架构的用武之地。
想象一下,一个由不同领域的熟练专家组成的团队,每个人都准备在恰当的时刻加入。现在,用一个 AI 系统替换那个“团队”,一个可以在工具之间切换、收集和解释数据并以流畅而富有洞察力的答案做出响应的系统。这就是 agentic 框架的价值所在。
在我们的公司知识图谱数据模型中,我们捕获了公司、其投资者、供应商和子公司之间复杂的关系。但是,为了真正展示 agentic 架构的潜力,我们希望更进一步。我们的目标是使 NeoConverse 能够获取实时股票信息,这是一个当前图中没有原生存在的数据集。
为了实现这一点,我们在 NeoConverse 中创建了一个工具。同样,可以将工具视为 AI 可以调用以执行特定任务的专用函数。在本例中,我们的工具名为“get_stock_info”,它使用外部 API 检索给定公司股票代码的实时股票数据。

现在准备好了解 agentic 框架如何协调您的 AI 驱动的工作流程!以下是此方法在实践中如何工作的分步演练:
1. 接收请求
用户提出一个复杂的问题:
“确定媒体报道最多的公司,提供您可能拥有的任何见解的摘要,以及其当前股价。”
Agentic 框架立即振作起来,解析问题并评估它需要哪些工具才能生成完整的答案。
2. 调动工具
AI 识别出它需要三个信息:
• 哪个公司在媒体关注度方面领先 • 关于该公司的见解 • 该公司的最新股价
工具选择:
AI 首先调用数据库查询工具(例如,get_cypher)以检索媒体提及次数最多的公司。
接下来,它选择一个关于公司和股票信息的工具(例如,all_about_a_company 和 get_stock_info)以获取关于结果公司及其当前价格的见解。
Agentic 框架不是盲目地尝试单一资源,而是像熟练的问题解决者一样,在恰当的时间动态地选择正确的工具。
3. 协调数据检索
数据库查询执行:
该框架的协调器将生成的查询发送到数据库并返回结果:“埃森哲”的提及次数最多。
公司见解:
协调器将公司名称“埃森哲”交给公司见解工具,检索关于该公司的所有信息。
股价查找:
同时,协调器将埃森哲的股票代码(“ACN”)交给股票工具,检索最新的市场数据。
该系统无缝地协调多个 agent,而不会跳过任何步骤。它可以智能地确定何时使用哪个工具的顺序,以及何时按顺序与并行执行。每个响应都流回 AI 以优化最终答案。
4. 交付答案
一旦 LLM 拥有回答用户问题的所有信息,AI 就会编写一个简洁、用户友好的回复。

所有这些都在幕后发生。作为用户,您只需阅读最终答案,该答案融合了 AI 协调的多个专门流程的输出。

主要收获
• 自适应问题解决: 该框架根据上下文主动选择要使用的工具。 • 无缝信息流: 它从多个来源提取数据,无需手动干预。 • 智能协调: 每个工具都按正确的顺序调用,从而确保流畅的端到端解决方案。 • 类人推理: 自然语言理解有助于它解释细微的问题。 • 采取行动: 一旦确定了正确的工具并完成了任务,它就会根据其发现启动后续行动或任务,从而提供真正的端到端自动化。 • 轻松的可扩展性: 添加新工具可以提高系统的功能。
从本质上讲,agentic 框架将您的 AI 变成一个足智多谋的多面手,它可以准确地确定需要做什么,然后去做,同时将用户体验放在首位。这就像拥有一个随时准备加入并应对手头挑战的个人专家团队!
结束语
通过将 GraphRAG 访问基于图的知识的能力与 NeoConverse 中的 agentic 架构方法相结合,我们解锁了不仅强大而且高度适应性的 AI 工作流程。GraphRAG 确保在正确的时间显示相关的、以关系为中心的数据,而 agentic 框架协调每个步骤,无论是查询图数据库、获取见解还是调用外部 API。这些工具共同构成了一个灵活的系统,该系统比传统的单一解决方案更易于维护、无限可扩展且更智能。
NeoConverse 是完全开源的,我们邀请您探索它以获取灵感、进行改编或在您自己的项目中使用。查看 GitHub 存储库(https://github.com/neo4j-labs/neoconverse) 以获取源代码。无论您是构建下一代推荐引擎还是自动化数据密集型研究,Neo4j 和 GenAI 的协同作用都为更丰富、更具上下文意识的应用程序奠定了基础。希望 NeoConverse 能够帮助您更好地理解 GraphRAG 和 agentic 架构,并在实际项目中应用这些技术,构建更智能、更高效的 AI 应用。
要了解更多信息,请查看 Neo4j Labs 上的 NeoConverse(https://neo4j.com/labs/genai-ecosystem/neoconverse/)。
学习资源
若要了解更多知识图谱或图数据库相关教学,你可以查看公众号的其他文
Neo4j+RecallM:打造无需向量数据库的知识图谱 Phi-4-mini:如何在 GraphRAG 架构中实现本地知识图谱问 15个Neo4j图可视化工具,助你快速提升数据洞察力! NLP+图技术:如何低成本打造高效GraphRAG应用?
活水智能成立于北京,致力于通过AI教育、AI软件和社群提高知识工作者生产力。
活水现有AI线下工作坊等10+门课程,15+AI软件上线,多款产品在研。知识星球中拥有2600+成员,涵盖大厂程序员、公司高管、律师等各类知识工作者。在北、上、广、深、杭、重庆等地均有线下组织。
欢迎加入我们的福利群,每周都有一手信息、优惠券发放、优秀同学心得分享,还有赠书活动~
👇🏻👇🏻👇🏻





