UltraRAG
首个基于 MCP 协议的 RAG 开发框架,用 YAML 配置替代代码,搭建检索增强生成流水线
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
首个基于 MCP 协议的 RAG 开发框架,用 YAML 配置替代代码,搭建检索增强生成流水线
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你手里有一堆积木块——有的是负责从海量文档中捞答案的「检索积木」,有的是把检索结果喂给大模型生成答案的「生成积木」,还有负责给答案排序的「重排积木」、判断该用哪些积木的「路由积木」。传统开发中,你需要写一堆代码把它们串起来,一不留神就「积木塌方」。
UltraRAG 做的事情,就是把这套 RAG(检索增强生成)系统的搭建过程,从写代码变成配 YAML 文件。你只需要用配置文件声明「先用检索积木,再用重排积木,最后用生成积木」,框架自动帮你把流程跑通。
RAG(Retrieval-Augmented Generation,检索增强生成)是当前大模型应用的主流范式——让 AI 在回答问题前,先从自有知识库中检索相关信息,解决大模型「幻觉」和「知识过时」两大痛点。
然而,RAG 系统的搭建并非易事。一个完整 RAG Pipeline 通常包含:文档解析 → 分块(Chunking)→ 向量化(Embedding)→ 检索(Retrieval)→ 重排(Rerank)→ 生成(Generation)等多个环节,每个环节都有大量超参数需要调试,不同环节之间还需要精密的数据格式对接。
更棘手的是,学术界和工业界对 RAG 的探索正在快速迭代。从小规模向量检索到多跳(Multi-hop)推理,从纯文本到多模态文档(VisRAG),从简单检索到动态路由和自适应迭代——新方法层出不穷,但每引入一个新模块,往往意味着推翻重来。
正是这种「研究节奏快、工程落地难」的矛盾,催生了 UltraRAG。
UltraRAG 由清华大学 THUNLP 实验室、东北大学 NEUIR 实验室、OpenBMB 和 AI9Stars 联合推出,是首个基于 MCP(Model Context Protocol) 架构设计的轻量级 RAG 开发框架。清华大学 NLP 团队在信息检索和大模型交叉领域有深厚积累,其代表作包括 RAG 相关前沿研究 VisRAG、RAG-DDR、RAGEval 等,UltraRAG 正是这些学术成果的工程化落地。

图1:UltraRAG 系统架构图,展示了基于 MCP 的模块化解耦设计
UltraRAG 的核心创新在于将 MCP 协议引入 RAG 系统构建。
MCP(Model Context Protocol)最初是 Anthropic 提出的用于 AI Agent 与外部工具交互的协议标准。UltraRAG 创造性地将这一协议应用到 RAG 领域——把检索器(Retriever)、生成器(Generator)、重排器(Reranker)、路由器(Router)等核心组件,全部抽象为独立的 MCP Server。
这样做有什么好处?
第一,职责单一,易于替换。 假设你原本用 BM25 做检索,现在想换成向量检索,只需替换检索器 Server,其他环节完全不动。这在传统单体架构中往往意味着重构。
第二,YAML 配置替代代码。 UltraRAG 提供了一套声明式的 YAML 工作流描述语法,支持顺序执行、循环(Loop)和条件分支(If-Else)等控制结构。换句话说,即使你要实现「如果首次检索结果不够好,就换个策略重新检索」的复杂逻辑,也只需要写几十行 YAML,无需写 Python 代码。
第三,开箱即用的丰富组件库。 项目内置了覆盖完整 RAG 生命周期的 Server 模块:
这意味着你不需要从零开始搭建每个组件,站在「开源巨人的肩膀上」直接构建自己的 RAG Pipeline。
对于 AI 开发者而言,UltraRAG 还有一个杀手级特性——内置可视化 Pipeline Builder。
图2:UltraRAG 官方 Logo
传统 RAG 开发中,Pipeline 的执行过程是「黑箱」的:输入问题 → 中间发生了什么不知道 → 输出答案。调参基本靠猜,遇到效果不稳定时往往无从下手。
UltraRAG UI 提供了双向实时同步的「画布搭建」与「代码编辑」界面:
Pipeline 搭好后,一行命令即可将其转换为可交互的 Web 对话界面,直接用于演示或部署。
安装方式分两种:
方式一:源码安装(推荐 uv)
UltraRAG 要求 Python 3.11-3.12,项目推荐使用 uv 作为包管理器(比 pip 快一个数量级)。安装核心依赖只需:
git clone https://github.com/OpenBMB/UltraRAG.git
cd UltraRAG
uv sync # 核心依赖
uv sync --all-extras # 全功能(包含 retriever/generation/evaluation)
GPU 用户需要安装 CUDA 环境,并选择 --extra retriever / --extra generation 安装对应的 GPU 依赖。
方式二:Docker 一键部署 不想配 Python 环境?UltraRAG 提供了预构建镜像:
docker pull hdxin2002/ultrarag:v0.3.0-base-gpu
docker run -it --gpus all -p 5050:5050 hdxin2002/ultrarag:v0.3.0-base-gpu
容器内 UltraRAG UI 会自动启动,直接访问 http://localhost:5050 即可使用。Dockerfile 采用了多阶段构建,前端 Node.js 编译 + 后端 Python 运行时分离,镜像结构合理。
GPU 是必须的吗? 不完全是。核心依赖不强制 GPU,但如果你要跑 embedding 模型或 LLM 推理,GPU 会显著提升体验。项目还提供了 CPU-only 的 base 镜像供选择。
最低硬件建议:8GB+ 显存(GPU 模式)或 8GB+ 内存(CPU 模式),10GB+ 磁盘空间。
场景一:学术研究基准测试
UltraRAG 内置了标准化的评估工作流,支持多个主流 RAG 研究基准数据集(来自 ModelScope 的 UltraRAG_Benchmark)。研究者可以用统一指标对比不同检索策略的效果,大幅提升实验复现性和对比效率。
场景二:Deep Research 系统搭建
2026年1月,UltraRAG 团队开源了 AgentCPM-Report 模型(8B 参数),这是国内首个开放的 Deep Research 模型。与 UltraRAG Pipeline 结合,可以自动执行多轮检索与整合,生成数万字的专业调研报告。项目提供了详细的 bilibili 视频教程,手把手演示本地部署流程。
场景三:企业知识库问答
结合 Milvus 向量数据库和自定义 LLM,可以快速搭建私有知识库问答系统。通过 Pipeline Builder 配置知识检索策略,UltralRAG UI 提供开箱即用的对话界面。
UltraRAG 并非银弹,以下几点值得注意:
1. MCP Server 质量依赖社区贡献
UltraRAG 的扩展性取决于 MCP Server 模块的丰富程度。目前官方提供的 Server 覆盖了主流场景,但如果你需要对接特定的商业 API 或小众工具,可能需要自己实现 Server。
2. YAML 配置有学习曲线
虽然 UltraRAG 宣称「Low Code」,但 YAML 工作流描述语法本身有一定学习成本,特别是涉及循环和条件分支时。项目文档较为完善,但高级用法的示例仍然偏少。
3. 多模态支持仍在快速迭代
VisRAG(多模态 RAG)相关研究是 UltraRAG 的特色之一,但多模态文档解析(图表理解、扫描 PDF 等)对后端模型要求较高,当前效果仍有提升空间。
4. 生产级部署需额外配置
Docker 部署适合快速体验,但生产环境还需要考虑:多用户隔离、API 限流、知识库权限管理、长文本截断策略等,这些需要开发者自行补充。
UltraRAG 的出现,代表了 RAG 开发从「手工作坊」向「流水线工厂」的演进趋势。
在 UltraRAG 之前,RAG 系统的搭建通常需要资深 NLP 工程师耗费数周时间,从零实现检索、生成、评估等各环节的代码。UltraRAG 将这一过程缩短到几十分钟,且大幅降低了对工程能力的要求——研究人员可以专注算法创新,而非重复造轮子。
从学术影响力看,清华 THUNLP 团队将 VisRAG、RAG-DDR 等前沿研究直接工程化到 UltraRAG 中,形成了「学术研究 → 框架实现 → 社区反馈 → 迭代优化」的正向循环,这对于国内 AI 开源生态具有示范意义。
从项目增长看,UltraRAG 从 2025 年 1 月发布 v1.0,到 2025 年 8 月 v2.0(YAML 配置化),再到 2026 年 1 月 v3.0(推理逻辑可视化),保持着每半年一次重大更新的节奏,社区活跃度较高。
| 维度 | 详情 |
|---|---|
| 开发语言 | Python + TypeScript(前端 UI) |
| 最低 Python 版本 | 3.11 |
| 协议架构 | MCP(Model Context Protocol) |
| 核心依赖 | FastMCP、MCP、FastAPI、Flask、OpenAI SDK |
| 向量数据库支持 | Milvus、FAISS(GPU) |
| 检索策略 | 向量检索、BM25、混合检索 |
| 部署方式 | 源码 + uv / Docker |
| 许可证 | Apache-2.0 |
| 维护方 | OpenBMB(清华大学 THUNLP + 东北大学 NEUIR 联合) |