GraphRAG:当 RAG 遇上知识图谱,信息检索从此不一样了
GraphRAG:当 RAG 遇上知识图谱,信息检索从此不一样了
假设你把公司过去三年的所有周报、会议纪要、项目文档丢进一个 RAG 系统,然后问它:"过去一年里,研发团队和产品团队之间的主要分歧有哪些?"——大概率你会得到几段看起来相关的文字片段,但拼不出一个完整的答案。
这不是幻觉,也不是模型不够强,而是传统 RAG 的架构天生就有个短板:它只会找局部相关的文本片段,不会"连点成线"。
微软在 2024 年 7 月开源了 GraphRAG(GitHub: microsoft/graphrag),用知识图谱彻底重构了 RAG 的检索逻辑。目前已超过 31K Star,成了 RAG 领域绕不开的话题。
这篇文章聚焦两件事:GraphRAG 的核心思想与原理,以及围绕它生长出来的开源生态——包括 GraphRAG 的实现项目和应用项目。
一、传统 RAG 的问题出在哪?
先快速回顾传统 RAG(Retrieval-Augmented Generation)的工作方式:
- 把文档切成一堆小块(Chunks)
- 用 Embedding 模型把每个块变成向量
- 用户提问时,把问题也变成向量,去向量库里找最相似的几个块
- 把找到的块喂给 LLM,让它基于这些上下文生成回答
这套流程对具体的、指向明确的问题效果不错——比如你问"Kubernetes 的 liveness probe 支持哪些配置参数?"或者"2024 年第三季度的营收是多少?",它能精准命中对应的文本片段,给出靠谱的答案。
但如果你问的是这类问题:
- "过去一年里,导致项目延期的根本原因有哪些共性?" — 答案散落在几十份项目复盘报告中
- "张三和李四虽然不在同一个部门,但他们之间有什么业务关联?" — 需要从组织架构、项目协作、邮件往来等多个文档中推理
- "公司技术栈的演进趋势是什么?" — 需要综合多年的技术选型文档、架构评审记录
传统 RAG 就抓瞎了。为什么?因为这些问题的答案散落在整个文档库的各个角落,不是某一两个文本块能覆盖的。向量检索只给你"局部最优"——找到几个看起来相关的片段,但没法帮你把散落各处的信息串联起来。
一句话:传统 RAG 是"只见树木,不见森林"。
二、GraphRAG 的核心思想:先画一张知识地图
GraphRAG 的解法非常直觉——在检索之前,先用 LLM 把整个文档集合建成一张知识图谱,然后在这张图上做检索。
整个流程分两个大阶段:索引阶段和查询阶段。
2.1 索引阶段:从文本到知识图谱
用大白话说:把一堆非结构化文本,变成一张结构化的知识网络。
Step 1:文本切块(Text Chunking)
跟传统 RAG 一样先切块,但目的不是做向量检索,而是喂给 LLM 做信息提取。
Step 2:实体和关系提取(Entity & Relationship Extraction)
这一步是 GraphRAG 的灵魂。对每个文本块,调用 LLM 提取其中的实体(人、地点、事件、组织等)和关系(谁跟谁有什么关系)。
举个例子,假设某份会议纪要中有这段话:
"2024年Q3复盘会上,CTO王刚指出:搜索团队使用的 Elasticsearch 7.x 集群频繁 OOM,建议迁移到自研的 KSearch 引擎。搜索负责人林涛表示团队正在与基础架构组合作评估方案,预计Q4完成POC。"
GraphRAG 会从中提取出:
- 实体:
王刚(人物/CTO)、林涛(人物/搜索负责人)、搜索团队(组织)、基础架构组(组织)、Elasticsearch 7.x(技术组件)、KSearch 引擎(技术组件)、2024年Q3复盘会(事件) - 关系:
王刚 → 建议迁移 → KSearch 引擎、搜索团队 → 使用 → Elasticsearch 7.x、林涛 → 负责 → 搜索团队、搜索团队 → 合作 → 基础架构组、Elasticsearch 7.x → 存在问题 → 频繁OOM
这些零散的事实被结构化之后,就能"连点成线"了。
Step 3:构建知识图谱
把所有文本块中提取的实体和关系汇总,去重、合并,构建一张完整的知识图谱。同名实体在不同上下文中的描述会被合并为一个节点。
Step 4:社区检测与分层(Community Detection)
这一步特别关键。GraphRAG 使用图聚类算法(如 Leiden 算法)在知识图谱上检测社区——也就是一组紧密关联的实体群。
然后对社区进行分层,从粗粒度到细粒度:
- 顶层社区:覆盖全局主题(比如"公司技术架构演进"这个大主题,包含搜索引擎迁移、微服务拆分、数据库升级等多个子话题)
- 中层社区:关联密切的实体群(比如"搜索技术栈"社区,包含王刚、林涛、搜索团队、Elasticsearch、KSearch 等实体)
- 底层社区:聚焦单一实体的详细上下文(比如"KSearch 引擎的技术评估细节")
Step 5:生成社区摘要
对每个社区,调用 LLM 生成一段结构化摘要,描述这个社区的核心内容、关键实体和主要关系。
最终产物:一张分层的、带摘要的知识图谱——相当于给你的文档画了一张从宏观到微观的知识地图。
2.2 查询阶段:三种检索模式
索引建好后,GraphRAG 提供三种查询模式:
| 查询模式 | 适用场景 | 工作原理 | 举例 |
|---|---|---|---|
| Global Search | 全局性、概括性问题 | 遍历所有社区摘要,LLM 综合生成答案 | "过去一年公司技术决策的主要方向是什么?" |
| Local Search | 具体实体相关问题 | 从知识图谱中定位相关实体,结合其关系和上下文生成答案 | "KSearch 引擎目前的进展和负责人是谁?" |
| Drift Search | 需要多跳推理的问题 | 从起点实体出发,沿着图谱关系链进行探索式检索 | "Elasticsearch 的 OOM 问题最终影响了哪些业务线的哪些项目?" |
回到开头那个问题——"研发团队和产品团队之间的主要分歧有哪些?"——用 GraphRAG 的 Global Search 遍历所有社区摘要就能回答。它不需要找到某一段恰好提到"分歧"的文本,而是从知识图谱的全局结构中总结出跨越多个文档的答案。
三、GraphRAG vs 传统 RAG:到底强在哪?
| 维度 | 传统 RAG | GraphRAG |
|---|---|---|
| 索引结构 | 向量数据库(扁平的chunk集合) | 知识图谱(分层的实体关系网络) |
| 检索方式 | 向量相似度匹配 | 图遍历 + 社区摘要 |
| 全局问题 | ❌ 很弱,只能找到局部片段 | ✅ 通过社区摘要覆盖全局 |
| 实体关系 | ❌ 无法显式建模 | ✅ 实体和关系是一等公民 |
| 多跳推理 | ❌ 基本不支持 | ✅ 通过图遍历天然支持 |
| 索引成本 | 低(Embedding 计算) | 高(大量 LLM 调用) |
| 适用规模 | 任意规模 | 中等规模(大数据集成本高) |
核心差异一句话总结:传统 RAG 是"搜文本片段",GraphRAG 是"搜知识结构"。
打个比方:你要了解一家公司,传统 RAG 就像在一堆文件柜里翻找,能找到某几份相关文件;GraphRAG 则像有一个熟悉公司全貌的老员工,他脑子里有一张完整的"人物关系 + 事件脉络"地图,你问什么他都能从全局角度给你讲清楚。
⚠️ 但也要注意:GraphRAG 的索引阶段需要大量 LLM 调用来提取实体和关系,成本显著高于传统 RAG。微软官方也提醒:先用小数据集和低成本模型试水,别上来就索引几百万条文档。好消息是,后续版本已将 token 成本降低了约 77%。
四、GraphRAG 实现项目:从原版到社区进化
微软的 GraphRAG 点燃了方向,但社区并没有止步于此。围绕"用图做 RAG"这个核心思想,已经衍生出一批各有侧重的实现项目。
4.1 微软 GraphRAG — 开山之作
项目地址:microsoft/graphrag
论文:From Local to Global: A Graph RAG Approach to Query-Focused Summarization
这是一切的起点。微软研究院在 2024 年 4 月发表论文,7 月开源代码。它定义了 GraphRAG 的标准范式:LLM 提取实体关系 → 构建知识图谱 → Leiden 社区检测 → 社区摘要 → Global/Local/Drift 三种查询模式。
优点是概念完整、效果强悍,尤其在全局性问题上甩传统 RAG 几条街。缺点也明显——索引阶段的 LLM 调用成本高,不支持增量更新,大数据集跑起来费时费钱。
4.2 LightRAG — 更轻、更快、更省(29.3K⭐)
项目地址:HKUDS/LightRAG
论文:EMNLP 2025
来自香港大学的研究团队,被称为"GraphRAG 的轻量进化版"。它针对微软原版的几个痛点做了工程优化:
- 双层检索系统:低层做具体实体检索,高层做抽象概念检索,比 GraphRAG 的社区分层更灵活
- 增量更新:支持新数据实时接入,不用每次全量重建索引——这是微软 GraphRAG 最大的痛点
- 成本更低:索引阶段的 LLM 调用量大幅减少
- 多模态支持:通过 RAG-Anything 集成,支持文本、图像、表格等多种数据
如果你觉得微软 GraphRAG 太重太贵,LightRAG 是目前最成熟的替代方案。
4.3 nano-graphrag — 极简实现,学习首选
顾名思义,nano 级别的 GraphRAG 实现。代码量极小,把 GraphRAG 的核心逻辑浓缩到最精简的程度。适合想快速理解 GraphRAG 内部原理的开发者,也是 LightRAG 的代码基础。
4.4 Fast-GraphRAG — 可解释、可提示的图检索(3.7K⭐)
项目地址:circlemind-ai/fast-graphrag
来自 Circlemind AI,定位是"智能适应你的用例、数据和查询的 RAG"。它的特色不只是速度,更在于可解释性和动态适应性——利用 PageRank 算法进行图探索来提升检索准确性,支持增量更新,并且提供人类可浏览的知识图谱视图,方便调试和理解。
4.5 Youtu-GraphRAG — 腾讯优图的工业级实践(ICLR 2026)
项目地址:TencentCloudADP/youtu-graphrag
腾讯优图实验室的工作,被 ICLR 2026 接收。提出了"垂直统一代理"(Vertically Unified Agents)的 GraphRAG 架构,专注于复杂推理场景中的图检索。说明 GraphRAG 的思路已经从微软扩展到了整个工业界,各大厂都在跟进并提出自己的改进方案。
五、GraphRAG 应用项目:从问答到预测
GraphRAG 的价值不只是"更好地回答问题"。当知识图谱成为系统的核心数据结构,它的应用边界远超传统 RAG。
5.1 🐟 MiroFish — 基于 GraphRAG 的群体智能预测引擎(20.3K⭐)
项目地址:666ghj/MiroFish
MiroFish 是近期 GitHub 上最火爆的 AI 项目之一,由中国科学技术大学的 00 后开发者 BaiFu 主导,仅用 10 天完成核心开发,获得盛大集团创始人陈天桥 3000 万人民币投资。
它的定位是"简洁通用的群体智能引擎,预测万物"——给它一条种子信息(突发新闻、政策草案、金融信号甚至小说剧情),它就能自动构建一个高保真的平行数字世界,让成千上万个具备独立人格和长期记忆的智能体在其中自由交互、社会演化,推演未来走向。
GraphRAG 在 MiroFish 中的角色至关重要,它是整个工作流的第一步:
图谱构建:现实种子提取 → 个体与群体记忆注入 → GraphRAG 构建
MiroFish 用 GraphRAG 将输入的种子文本(比如《红楼梦》前80回的数十万字)转化为结构化的知识图谱,提取出人物、事件、关系等实体信息,然后将这些知识注入到每个智能体的记忆中。这样,智能体不仅"知道"原始文本的内容,还能理解实体之间的复杂关系,从而在模拟过程中做出更合理的行为决策。
核心特性:
- GraphRAG 记忆图谱:利用 Zep Cloud + GraphRAG 构建智能体的长期记忆,行为逻辑高度拟人
- 双模式运行:上帝视角(动态注入变量推演未来)和深度互动(与任意智能体对话)
- 多场景覆盖:舆情分析、文学推演(如预测红楼梦失传结局)、金融推演
- 自动报告生成:模拟结束后由 ReportAgent 生成详尽的预测报告
MiroFish 是 GraphRAG 最有创意的应用之一——不是用它来做问答,而是用它给 Agent 构建"世界知识",让群体智能模拟有了知识基础。
5.2 📚 Kotaemon — 集成 GraphRAG 的文档对话工具(25.2K⭐)
项目地址:cinnamon/kotaemon
Kotaemon 是一个开源的"与文档聊天"的 RAG 工具,同时集成了三种 GraphRAG 实现:Nano GraphRAG(推荐大多数用户使用)、LightRAG 和微软 GraphRAG,用户可以根据需求选择。
核心特性:
- 混合索引:同时支持传统向量检索和 GraphRAG 知识图谱检索,用户可以自由切换
- 多 GraphRAG 后端:支持 Nano GraphRAG、LightRAG、Microsoft GraphRAG 三种实现
- 多模态问答:支持 PDF、文档中的图表、图片等
- 复杂推理 Agent:内置 ReAct 和 ReWOO 推理框架
- 开箱即用的 Web UI:不用写代码就能体验 GraphRAG 的效果
Kotaemon 的做法很聪明——不强制用户选择传统 RAG 还是 GraphRAG,两种都提供,让系统根据问题类型自动选择最合适的检索方式。
5.3 🏥 Medical-Graph-RAG — 医疗领域的 GraphRAG(ACL 2025)
项目地址:ImprintLab/Medical-Graph-RAG
专门为医疗信息检索设计的 Graph RAG 系统,发表在 ACL 2025。医疗领域天然就是一个实体关系密集的场景——比如一个患者同时患有糖尿病和高血压,医生需要找到"哪些降压药与二甲双胍有相互作用",这就需要从药物、疾病、症状、治疗方案之间的复杂关系网络中进行多跳推理,传统 RAG 很难处理,而 GraphRAG 在这里有天然优势。这也验证了一个趋势:垂直领域的 GraphRAG 正在成为新的研究热点。
六、生态全景
目前围绕 GraphRAG 已经形成了一个完整的生态:
GraphRAG 实现层
┌──────────┼──────────┐
| | |
微软 GraphRAG LightRAG Youtu-GraphRAG
(原版标准) (轻量进化) (工业级实践)
| |
nano-graphrag RAG-Anything
(极简实现) (多模态扩展)
|
Fast-GraphRAG
(可解释/动态适应)
GraphRAG 应用层
┌──────────┼──────────┐
| | |
MiroFish Kotaemon Medical-Graph-RAG
(群体智能预测) (文档对话) (医疗检索)
七、什么时候该用 GraphRAG?
并不是所有场景都需要 GraphRAG,简单判断:
适合用 GraphRAG 的场景:
- 需要回答全局性、概括性问题(如"这些客户投诉的共性根因是什么?")
- 文档中实体关系密集(人物关系网、组织架构、医疗知识图谱、法律条文引用链等)
- 需要多跳推理(如"A 供应商的质量问题 → 影响了哪些产品线 → 导致了哪些客户投诉")
- 需要给 Agent 构建结构化的世界知识(如 MiroFish 用 GraphRAG 给智能体注入人物关系记忆)
传统 RAG 就够用的场景:
- 问题明确且答案集中——比如"这个 API 的超时参数默认值是多少?"
- 数据集非常大(百万级文档),索引成本是主要考量
- 实时性要求高,不能容忍索引构建的延迟
- 数据更新频繁(不过 LightRAG 已解决增量更新问题)
最佳实践:像 Kotaemon 那样,两种模式都具备,根据问题类型自动选择。
写在最后
GraphRAG 不是要"取代"传统 RAG,而是在传统 RAG 的基础上加了一层"知识结构"。当你的问题需要"连点成线"的时候,它比纯向量检索强太多了。
从 GitHub 的趋势来看,2025-2026 年 RAG 领域最明显的方向就是:从"搜文本"到"搜知识"。微软 GraphRAG 点燃了这个方向,LightRAG 让它更轻量,MiroFish 把它用到了群体智能预测,Kotaemon 让普通用户也能开箱即用。
这个生态还在快速生长。
相关链接:
- GraphRAG 官方文档:https://microsoft.github.io/graphrag/
- GraphRAG GitHub:https://github.com/microsoft/graphrag
- GraphRAG 论文:https://arxiv.org/abs/2404.16130
- LightRAG:https://github.com/HKUDS/LightRAG
- MiroFish:https://github.com/666ghj/MiroFish
- Kotaemon:https://github.com/cinnamon/kotaemon
- Youtu-GraphRAG:https://github.com/TencentCloudADP/youtu-graphrag
欢迎关注公众号 coft,获取更多 AI 前沿技术文章。

浙公网安备 33010602011771号