Youtu-GraphRAG

Youtu-GraphRAG 简介

垂直统一的图增强复杂推理新范式 - 以 33.6% 的 Token 成本节约和 16.62% 的精度提升实现帕累托改进。

概览

Youtu-GraphRAG 是一个基于图 Schema 实现垂直统一的图增强推理范式,将 GraphRAG 框架精巧地集成为一个以智能体为核心的有机整体。我们实现了通过在图 Schema 上的最小化人为干预下进行跨领域的无缝迁移,为业界应用提供了泛化、准确、可用的下一代 GraphRAG 范式。

🚀 重新定义图检索增强推理范式,以 33.6% 的 Token 成本节约16.62% 的精度提升实现帕累托改进

Youtu-GraphRAG 三大落地场景

🔗 多跳推理与总结:解决需要多步推理的复杂问题
📚 知识密集型任务:处理依赖大量结构化知识的问题
🌐 跨域扩展:轻松支持学术论文、个人知识库、私域/企业知识库等多个领域,Schema 人工干预最少化

框架架构

交互式体验界面

您也可以观看演示视频来了解 Youtu-GraphRAG 的主要特性。

核心能力

基于统一的图检索增强生成智能体范式,Youtu-GraphRAG 引入了多项关键创新,这些创新共同构建了一个精密集成的完整框架:

🏗️ Schema 引导的层次化知识树构建

  • 🌱 种子图 Schema:通过引入有针对性的实体类型、关系类型和属性类型,为自动化提取智能体提供精确约束
  • 📈 可扩展 Schema 演进:支持动态扩展 Schema,实现了跨领域知识的自主演化和高质量抽取
  • 🏢 四层架构设计
    • 第 1 层(属性层):存储实体的属性信息
    • 第 2 层(关系层):构建实体间的关系三元组
    • 第 3 层(关键词层):建立关键词索引体系
    • 第 4 层(社区层):形成层次化的社区结构
  • 业界应用快速适配:在 Schema 最小化人为干预的前提下,实现跨领域快速部署

🌳 结构语义双重感知的社区检测

  • 🔬 创新社区检测算法设计:巧妙融合结构拓扑特征与子图语义信息,构建全面的知识组织体系
  • 📊 层次化知识树:自然生成既支持自顶向下过滤又支持自底向上推理的结构,效果显著优于传统 Leiden 和 Louvain 算法
  • 📝 智能社区摘要:利用大语言模型增强社区摘要生成,实现更高层次的知识抽象

🤖 智能迭代检索

  • 🎯 Schema 感知的复杂问题分解:深度理解图 Schema 结构,将复杂查询针对性智能转换为可并行处理的子查询
  • 🔄 迭代反思机制:通过迭代检索思维链进一步实现深度反思,显著提升推理能力

🧠 领先的落地级构建、索引与推理能力

  • 🎯 性能全面优化:通过精心设计的提示策略、索引机制和检索算法,同时降低 Token 消耗并提升回答精度
  • 🤹‍♀️ 用户体验友好: output/graphs/ 四层知识树结构支持 neo4j 直接导入可视化,知识归纳、推理路径对用户直接可见
  • 并行子问题处理:采用并发机制处理分解后的问题,在复杂场景下仍能保持高效运行
  • 🤔 迭代推理演进:逐步构建答案,并提供清晰的推理轨迹,增强结果可解释性
  • 📊 企业级扩展性:专为私域及企业级部署而设计,新领域接入时人工干预降到最低

📈 公平匿名数据集 'AnonyRAG'

  • 🔗 数据集链接Hugging Face AnonyRAG
  • 🛡️ 防范知识泄露:有效防范大语言模型和嵌入模型预训练过程中的知识泄露问题
  • 🔍 真实检索测试:深度测试 GraphRAG 在真实场景下的检索性能表现
  • 🌍 多语言支持:提供中英文双语版本,支持多语言研究

⚙️ 统一配置管理

  • 🎛️ 集中化参数管理:所有组件均可通过单一 YAML 文件进行统一配置
  • 🔧 运行时动态调整:支持在程序执行过程中动态修改配置参数
  • 🌍 多环境无缝支持:在图 Schema 最小人为干预的前提下,轻松实现跨领域迁移
  • 🔄 完善向后兼容:确保现有代码在框架升级后仍能正常运行

实验表现

我们在 GraphRAG-Bench、HotpotQA 和 MuSiQue 等六个专业跨领域多语言的基准数据集上进行了广泛实验,充分证明了 Youtu-GraphRAG 的企业级扩展性和泛化性。相比最先进的基线方法,显著推动了帕累托前沿突破,实现了最高 33.6% 的 Token 成本节约16.62% 的精度提升

项目结构

youtu-graphrag/
├── 📁 config/                     # 配置系统
│   ├── base_config.yaml           # 主配置文件
│   ├── config_loader.py           # 配置加载器
│   └── __init__.py                # 配置模块接口

├── 📁 data/                       # 数据目录

├── 📁 models/                     # 核心模型
│   ├── 📁 constructor/            # 知识图谱构建模块
│   │   └── kt_gen.py              # KTBuilder - 层次化图构建器
│   ├── 📁 retriever/              # 检索模块
│   │   ├── enhanced_kt_retriever.py  # KTRetriever - 主检索器
│   │   ├── agentic_decomposer.py     # 复杂查询解耦
│   └── └── faiss_filter.py           # DualFAISSRetriever - FAISS 检索器

├── 📁 utils/                      # 工具模块
│   ├── tree_comm.py               # 社区检测算法
│   ├── call_llm_api.py            # 大语言模型 API 调用
│   ├── eval.py                    # 评估工具
│   └── graph_processor.py         # 图处理工具

├── 📁 output/                     # 输出目录
│   ├── graphs/                    # 构建完成的知识图谱
│   ├── chunks/                    # 文本分块信息
│   └── logs/                      # 运行日志

├── main.py                       # 🎯 主程序入口
└── README.md                     # 项目文档

快速开始

📚 完整安装指南 - 使用 Docker 或 Web UI 在几分钟内开始使用 Youtu-GraphRAG。

下一步

熟悉基本能力后,前往「快速开始」完成安装配置并开始构建您的知识图谱。

🤝 贡献指南

我们欢迎社区的贡献!您可以通过以下方式参与项目:

参与方式

  • 📝 提交问题:在 GitHub Issues 中报告 bug 或提出功能建议
  • 🔧 代码贡献:Fork 项目,创建功能分支,提交 Pull Request
  • 📚 文档改进:帮助完善文档、示例和教程
  • 🧪 测试用例:添加测试用例提高代码质量和稳定性
  • 💡 功能建议:分享您的想法和改进建议
  • 🌍 国际化:帮助翻译文档到更多语言

开发流程

  1. Fork 仓库到您的 GitHub 账户
  2. 创建分支git checkout -b feature/your-feature-name
  3. 提交更改git commit -m "Add your feature"
  4. 推送分支git push origin feature/your-feature-name
  5. 创建 Pull Request并描述您的更改

代码规范

  • 遵循项目现有的代码风格
  • 添加适当的注释和文档
  • 确保所有测试通过
  • 提交前运行代码格式化工具

🎉 学术引用

@misc{dong2025youtugraphrag,
      title={Youtu-GraphRAG: Vertically Unified Agents for Graph Retrieval-Augmented Complex Reasoning}, 
      author={Junnan Dong and Siyu An and Yifei Yu and Qian-Wen Zhang and Linhao Luo and Xiao Huang and Yunsheng Wu and Di Yin and Xing Sun},
      year={2025},
      eprint={2508.19855},
      archivePrefix={arXiv},
      url={https://arxiv.org/abs/2508.19855}, 
}

相关链接: