
























在复杂业务系统中,根因分析往往面临数据维度多、因果链条长、语义理解难的问题。传统RAG方案在面对这类挑战时显得力不从心,而Graph RAG的出现,正是一次从“检索增强”到“图谱推理”的范式跃迁。本文将结合真实业务场景,深入拆解Graph RAG的核心机制与落地路径,帮助你理解它如何在复杂因果分析中实现更强的语义穿透与推理能力。

先来说一下为什么要写这篇文章,是因为我们实际业务落地RAG和Agent中发现了很多问题,在分析总结后我发现,要解决这样的问题更好的方式是引用新的技术,所以近期也在研读这方面的论文,同时看了很多视频,想结合自己的理解分享一下。
场景是在一家工厂,我们的目标是为一线质检人员打造一个AI助手。当他们发现成品病疵时,只需用自然语言描述问题,结合SOP(标准作业程序)等知识文档,AI就能自动钻取MES、WMS等生产系统的数据,完成一套复杂的根因分析,最终输出可供决策和沉淀的报告。
在落地过程中我们就发现存在多个问题
1)我们尝试将大量的MES数据和SOP文档给到AI,但发现它在回答跨领域的复杂问题时,依然显得“稚嫩”。例如,它知道A工序的参数,也知道B工序的规范,但它不理解A工序的异常如何通过物料流转,最终影响到半天后的另一工序,但是如果把这些信息放在提示词里,提示词就会逐渐难以管理,而且token消耗极快。
2)工厂里充斥着海量的非结构化数据:PDF格式的设备维修报告、邮件里的临时通知、Excel里的工艺参数表、各种病疵分析报告……它们格式混乱,内容质量参差不齐。RAG技术虽然能从这些文档中“检索”信息,但是上下文有限,检索的块过多且如果信息之间没有建立有效的关联,AI找到的也只是一堆无用的信息碎片。
3)在工厂这个复杂系统里,人、机、料、法、环都是“实体”。实体之间的关系:例如哪个工人(人)在什么时间(环)操作了哪台设备(机),生产了哪个批次的产品(料),遵循了哪套工序(法)
其实以上问题的根源就在于知识之间关系的缺失。
那么结合我们的业务背景,本篇文章主要探讨以下内容:
-Graph RAG到底是什么,跟普通RAG的区别有多大
-Graph RAG有哪些优势,技术应用成本与效果如何,是否值得采用
-Graph RAG的应用场景有哪些,适合在什么场景下落地
-Graph相关的技术栈有哪些
-Graph RAG如何做到关联信息的检索与生成
-如何搭建Graph RAG流程
-与原有的传统RAG如何结合(搭配使用)
传统RAG大家应该比较熟悉,就是给大模型配备的开卷考试系统,主要技术还是文本切块、向量化、相似度检索这些。
大型语言模型(LLM)在自然语言理解和生成任务方面已经做到了很好,但是直接回答专业向问题的能力还是受到训练数据中包含的信息全面性和上下文窗口容量的限制。
在传统的RAG中,用户提问时系统先去我们投喂的资料库里,把最相关的几段文字检索出来,然后把问题和这些资料一起打包,交给大模型,让它根据这些参考资料来生成答案。
在面向信息检索场景中效果确实不错。你问它“硫化工序的标准温度是多少?”它能迅速从SOP文档里找出答案。你问“上周更换过压延设备的哪个零件?”它也能从维修报告里定位到信息。

那问题在于为什么它会存在局限性,为何它在制造业的业务场景中存在问题?
前段时间我们的产线上出现了一个棘手的病疵。有经验的老师傅怀疑,是当天上午压出工序的某个参数异常,导致一批物料在仓库里流转了半天后,最终在下午的硫化工序上才暴露出问题。我们把这个问题抛给了AI助手:“压出工序的参数异常,是否以及如何影响了12小时后硫化工序的成品质量?”
但是AI的回答表现一般,它要么分别告诉你A工序的参数记录和F工序的质量标准,要么就回答“根据现有资料无法建立直接联系”。
这个问题的出现主要还是因为它针对解决的就是点状的问题检索,而不是点和点之间的关系上。传统RAG检索出来的,是一个个独立的Chunks。压出工序的文档是一个块,硫化工序的文档是另一个块。在AI眼里,它们是平铺的、互不相干的信息碎片。
Graph RAG是一种知识图谱与传统RAG相结合的技术,检索的对象不再是独立的文本块,而是包含实体和关系的图谱,GraphRAG 的主要关注点不是 RAG,而是图谱的构建和管道。


传统RAG:
Graph RAG:

1)深度关联与推理:天然支持多跳查询,完美匹配根因分析、数据追溯、关系查询这类需要溯源的复杂任务。传统RAG之所以失败,是因为它无法进行多跳推理。就像著名的六度空间理论,你和任何一个陌生人之间所隔的人不会超过6个,多跳推理就是让AI能在数据网络中,通过“A影响B,B影响C”这样的关系链条,最终找到A和C之间的深层联系。
比如我们的实际业务:M001号设备(机)在上午8:00(环)由张三(人)操作(法),生产了P20250817批次(料),该批次物料的核心指标X因设备参数临时调整而偏高,在仓库中转12小时后,被F003号设备领用,最终导致成品病疵Z的产生。
2)可解释性:在工厂和toB场景里,信任非常重要,一线质检员和工程师不会轻易相信一个黑盒给出的结论,检索路径可视化(比如从A➡️B➡️C),让AI的思考过程清晰可见,增强使用人员(尤其是B端领域)的信任度。
3)数据整合能力:工厂或大部分企业存在海量的非结构化数据:PDF格式的设备维修报告、邮件里的临时通知、Excel里的工艺参数表……但是GraphRAG可以通过技术手段(后续章节会讲),把其中有价值的实体(如设备编号、故障代码、物料批次)和关系(如维修、使用、属于)抽取出来,归纳进知识图谱中。
投入成本
最终效果
它是什么
由“实体-关系-实体”三元组构成的结构化知识库。
一条真实的工厂维修记录:“2025年8月01日,技术员张三更换了M001号冲压机的轴承。”
要把这句话变成知识图谱的一部分,我们就需要把它拆解成几个三元组:
张三-身份是-技术员
张三-执行了-维修事件_001
维修事件_001-操作是-更换
维修事件_001-对象是-M001号冲压机
维修事件_001-具体部件是-轴承
维修事件_001-发生时间是-2025年8月17日
M001号冲压机-拥有部件-轴承
如何构建
从非结构化数据中进行实体识别、关系抽取的这个步骤难道要我们人工去一条条地处理吗?当然不是,现在我们可以给大模型一些指令和Few-shot,它就能像一个孜孜不倦的实习生,自动地从海量的PDF、Word、Excel文档中抽取出这些三元组,极大地降低了知识图谱的构建门槛(当然token的消耗会比较大)
实体识别:就是从文本中抓出所有的关键名词,比如张三、M001号冲压机、轴承。
关系抽取:判断这些实体之间存在什么互动,比如张三和维修事件之间的关系是执行了。
为何需要
我们熟悉的传统数据库(比如MySQL),结构像一张张Excel表格,非常适合存储格式规整的数据,比如员工信息表、产品参数表。
但它天生不擅长处理“关系”。如果要查询“张三维修过的设备所生产的、并且在过去一周内出过质量问题的物料批次”,在传统数据库里可能需要进行多次复杂的表格连接(JOIN操作),查询速度会非常慢,甚至会“卡死”。
而图数据库,就是为了“关系”查询而生的。它的存储方式就是点和边,查询语言也像是在描述一段旅程。上面那个复杂的问题,用图数据库的查询语言(比如Cypher)来描述,就会非常直观且高效:
寻找一个路径:(工人{名字:”张三”}) -> [维修过] -> (设备) -> [生产了] -> (物料批次) -> [发生过] -> (质量问题{时间:最近一周})
这种查询在图数据库里是秒级响应。
主流选择
市面上有很多成熟的图数据库产品,比如:
它是什么
知识图谱和图数据库已经能搭建一个功能完备的Graph RAG系统,图神经网络(GNN)就像是给这辆车加装的涡轮增压和AI导航。
能做什么
让我们再回顾一下之前的问题:压出工序的参数异常,是否以及如何影响了12小时后硫化工序的成品质量?
当AI助手收到我们的提问时,它做的第一件事不是立刻去数据库里“瞎找”,而是先“读懂”我们的意图。这个过程就像一位侦探接到报案后,首先要从报案人的描述中圈定核心的“人、事、地”。
任务明确后,真正的工作开始了。系统会以第一步定位到的实体为起点,在图数据库中进行一场高效的追溯。
至此,一条完整的核心路径被找到了:A工序 → 生产了 → 某批次物料 → 中转12小时 → 被用于 → F工序。
但Graph RAG的强大之处在于远不止这些。为了提供更丰富的上下文,它不会只返回这条路径,还会把这条路径周围的相关信息也一并捞取出来,形成一个情境子图。
这个子图里可能还包括:
图数据库返回的情境子图是给机器看的结构化数据,由节点和关系组成。大语言模型(LLM)虽然强大,但直接阅读这种格式的数据效果并不好。因此,我们需要一个翻译步骤,将这张图转换成LLM容易理解的文本格式。
这个过程叫作序列化,简单来说,就是把图里的信息,用有条理的文字描述出来。
比如:核心路径:工序A 生产了 物料批次P20250817,该物料批次 被用于 工序F。 路径详情:物料批次P20250817 的中转时间为 12小时。 相关实体属性:
– 工序A:操作员是张三,使用设备是M001号。
– 物料批次P20250817:核心指标X的检测值为5.8(标准为<5.0)。
– 工序F:产生了成品病疵Z。
将序列化后的图谱知识作为高质量的上下文(Context)喂给大语言模型,生成逻辑严谨、有理有据的最终报告。
这个最终的指令(Prompt)框架如下:
[背景资料]:
– 核心路径:工序A 生产了 物料批次P20250817,该物料批次 被用于 工序F。 …(上面那段)
[问题]: “A工序的参数异常,对半天后F工序的成品率有什么影响?”
[你的任务]: 请基于以上背景资料,作为一名专业的质量分析工程师,详细、有逻辑地回答我的问题,并生成一份根因分析报告。
根据生产数据追溯,A工序的参数异常对F工序的成品率产生了直接影响。
具体路径如下:
在上午8点,由于M001号设备的参数临时波动,导致A工序生产的P20250817批次物料核心指标X偏高。
该批物料在仓库中转12小时后,于晚上8点被F工序领用,最终导致成品出现病疵Z,影响了成品率。
建议检查M001号设备当时的运行日志并复核操作员张三的操作记录。”
这是整个项目中最重要、也最需要业务专家深度参与的一步。如果设计错了,后续的建设都会走偏。
梳理所有相关数据源
需要列出所有可能蕴含知识的数据来源。在我们的场景中包括:
定义核心实体与关系
定义知识图谱的骨架:也就是哪些点(实体)和线(关系),比如制造业的人机料法环
定义关系:
这个建模过程不是一次性的,可以在实践中不断迭代和丰富。初期可以先从最核心的“设备-物料-工序”这条主线开始。
有了蓝图之后,我们就要开始从成堆的原始数据中,自动化地抽取出结构化的实体和关系三元组。
这个过程就像建立一条“智能化”的零件加工流水线:
1)数据输入:将一篇维修报告(PDF)、一段MES的操作日志(文本)或者一个Excel表格的一行,作为原材料送入流水线。
2)LLM信息抽取:通过Prompt指挥LLM工作。
3)结构化输出:LLM会阅读输入的文本,然后输出我们需要的标准三元组。例如,对于“技术员张三更换了M001号冲压机的轴承”,LLM就能输出:
通过这种方式,我们可以半自动化地处理海量历史文档。
我们还需要一个仓库和车间来存放和组装:图数据库。
智能检索器:把用户的自然语言问题,翻译成图数据库能听懂的查询语言(例如Neo4j的Cypher)。这里还是依赖大语言模型的能力
Text-to-Cypher:我们给LLM提供图谱的地图(即我们在第一阶段定义的实体和关系,也就是Schema),然后把用户的问题(如“查询M001设备最近一次的维修记录”)给它。
例如:MATCH (d:设备 {id: ‘M001’})<-[r:影响]-(e:维修事件) RETURN e.详情, e.时间 ORDER BY e.时间 DESC LIMIT 1。
报告生成器:
建好了这个新系统,是不是意味着我们过去用的传统RAG就没用了呢?其实还是可以的,因为不同的场景下双方各有优势。
传统RAG是一把锋利的瑞士军刀,功能多样,应对日常简单问答得心应手、效率极高。而Graph RAG则是一套精密的外科手术器械,专门用来处理那些需要深入肌理、理清复杂脉络的大手术(比如根因分析)。
传统RAG:信息检索的广度担当
核心优势:快、准、广。它极其擅长处理“关于XX的信息是什么?”这类问题。
局限:见树不见林。它能给你一篇篇独立的文档,但无法告诉你这些文档背后的主角们是如何互相关联的。
Graph RAG:洞察关系的“深度”担当
核心优势:深、透、强逻辑。它专门为了回答“A和B之间为什么/如何产生关联?”这类问题而生。
局限:对于那些不需要深度关联的简单问题,动用图谱进行多步遍历,有点“杀鸡用牛刀”,成本和耗时都更高。
复杂根因分析:跨工序、跨时间的溯源问题。
影响性/假设性分析:“如果我们更换A供应商的某个零件,可能会对哪些生产环节和产品批次产生连锁反应?”
关联网络发现:“找出过去三个月内,所有与‘轴承磨损’故障相关的设备、操作员和物料批次。”
理解了各自的定位,我们就可以设计一个智能“调度中心”,让用户的同一个问题,可以同时从两种技术中获益。主流的混合策略有两种:
策略一:串联
这种策略像一个两阶段的侦破流程,非常适合处理那些线索隐藏在大量文本中的复杂案件。
策略二:并联
这种策略更像是让两位专家(一位是文档专家,一位是关系专家)同时对一个问题进行“会诊”。
1)同步执行:当用户提出问题后,系统同时将问题分发给传统RAG和GraphRAG。
2)各自返回结果:
3)结果融合与重排:系统会得到两份诊断报告。此时可以引入一个rerank模块,或者直接利用LLM的强大理解能力,判断哪份报告的证据更关键,或者如何将两份报告的信息有机地融合在一起。
4)最终生成:LLM基于被融合、优化后的“双份材料”,给出最全面、最准确的答案。
我们的选择
结合我们工厂AI助手的核心目标—精准、高效地进行根因分析,串联策略(广度初筛,深度挖掘)在很多场景下可能是一个更具性价比和流程合理性的选择。
为什么呢?因为一线质检员发现问题时,往往是从一个具体的点开始的,比如不良品报告、一个设备报警记录。这个点本身就是一个文档。
我们的AI助手工作流设计方案:
入口:质检员上传一张图片或一段关于病疵的描述。
步骤一(向量RAG):系统首先在历史报告库中进行向量检索,找到描述最相似的5个历史案例及其解决方案,给出一个初步的参考。
步骤二(Graph RAG触发):同时,系统从用户的描述和找到的历史案例中,提取出关键实体(如病疵类型、设备编号)。用户可以点击一个深度分析按钮。
步骤三(深度分析):点击后,Graph RAG被触发,以这些实体为锚点,开始进行我们第四章描述的那种深度溯源,最终呈现出完整的关系网络和逻辑链条。
通过这种方式,我们既保证了简单查询的快速响应(由传统RAG负责),又为复杂问题提供了强大的深度钻取能力(由Graph RAG负责)。
GraphRAG不仅克服了传统RAG与QFS方法各自的局限,还能实现大规模、多样化、全局性的文本综合与问答能力,在AI知识管理、企业级归纳分析等核心场景中展现出领先优势。其设计思路和构建流程为知识工程和大模型应用提供了新的范式和落地路径,未来能够推动AI能力更智能地全局理解海量文本资料。
参考资料:
https://arxiv.org/html/2404.16130
https://www.llmwatch.com/p/your-introduction-to-microsoft-graphrag
本文由 @思敏 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。