一、项目简介

UltraRAG 是首个基于 MCP(Model Context Protocol)架构设计的轻量级 RAG 开发框架。它旨在解决当前 RAG 开发中常见的痛点:

  • ❌ 代码冗长,需要手写大量胶水代码
  • ❌ 组件耦合度高,难以替换和扩展
  • ❌ 从算法原型到可交互 Demo 的周期过长
  • ❌ 实验评估不统一,结果难以复现

UltraRAG 的答案是:YAML 配置即流程,将检索、生成、评估等组件标准化为独立的 MCP Server,通过 Client 端灵活编排。


二、核心特性

1. 低代码工作流编排

几十行 YAML 即可搭建复杂的 RAG 流水线,支持顺序执行、循环、条件分支等控制结构。

2. MCP 原生模块化

基于 MCP(Model Context Protocol)标准,将 RAG 各组件解耦为独立 Server:

Server 功能
generation 大模型生成(支持 vLLM / OpenAI / HuggingFace)
retriever 检索(BM25、稠密检索、混合检索、Milvus)
reranker 重排序
corpus 语料库管理(分块、索引构建)
prompt Prompt 模板管理
evaluation 标准化评估
memory 对话记忆管理
router 智能路由
custom 自定义扩展

3. 一键生成交互原型

ounter(line
ultrarag build examples/experiments/vanilla_rag.yaml --demo

4. 统一评估与基准

内置标准化评估流程和主流研究基准(RGB、RECALL、MultiHopQA 等)。

5. 多模态支持

VisRAG(ICLR 2025):视觉检索增强生成。

6. Deep Research 流水线

结合 AgentCPM-Report(8B)模型,自动生成万字级结构化调研报告。


三、技术架构

UltraRAG 基于 MCP 架构,将 RAG 组件解耦为独立 MCP Server,通过 Client 端以 YAML 编排工作流。支持顺序执行、循环、条件分支、分支并行等控制结构。

CLI 命令:

  • ultrarag run <yaml> — 运行工作流
  • ultrarag build <yaml> — 构建 UI 原型
  • ultrarag ui — 启动可视化 IDE
  • ultrarag corpus import/chunk — 语料库操作

四、快速安装

源码安装(推荐)

ounter(lineounter(lineounter(lineounter(line
git clone https://github.com/OpenBMB/UltraRAG.git --depth 1
cd UltraRAG
uv sync --all-extras
source .venv/bin/activate

Docker 部署

ounter(lineounter(line
docker pull hdxin2002/ultrarag:v0.3.0
docker run -it --gpus all -p 5050:5050 hdxin2002/ultrarag:v0.3.0

访问 http://localhost:5050 使用 UltraRAG UI。

验证安装

ounter(lineounter(line
ultrarag run examples/experiments/sayhello.yaml
# 输出: Hello, UltraRAG v3!

五、YAML 工作流编排

基础 RAG 流程

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
servers:
benchmark: servers/benchmark
retriever: servers/retriever
prompt: servers/prompt
generation: servers/generation
evaluation: servers/evaluation
custom: servers/custom
pipeline:
- benchmark.get_data
- retriever.retriever_init
- retriever.retriever_search
- generation.generation_init
- prompt.qa_rag_boxed
- generation.generate
- custom.output_extract_from_boxed
- evaluation.evaluate

循环迭代检索(IRCoT)

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
pipeline:
- retriever.retriever_init
- generation.generation_init
- loop:
- retriever.retriever_search
- prompt.ircot
- generation.generate
until: sufficient_info
- final_generation

六、模型配置(支持本地模型)

Generation Server 配置

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
generation_init:
backend: openai           # 可选:openai / vllm / hf
base_url: "http://localhost:8000/v1"
api_key: "your-api-key"
model: "gpt-4o"
temperature: 0.7
max_tokens: 2048

三种本地模型运行方式

方式 1:HuggingFace 直接加载

ounter(lineounter(lineounter(lineounter(lineounter(line
generation_init:
backend: hf
hf_model_name_or_path: "/data/models/Qwen2.5-7B-Instruct"
hf_batch_size: 4
device_map: "auto"

方式 2:vLLM 高性能推理

ounter(lineounter(lineounter(lineounter(lineounter(line
generation_init:
backend: vllm
vllm_model: "/data/models/Qwen2.5-7B-Instruct"
vllm_gpu_ids: "0,1"
vllm_tensor_parallel_size: 2

也可以独立启动 vLLM 后用 OpenAI 后端连接:

ounter(lineounter(line
CUDA_VISIBLE_DEVICES=0,1 python -m vllm.entrypoints.openai.api_server \
--model /data/models/Qwen2.5-7B-Instruct --port 8000
ounter(lineounter(lineounter(lineounter(lineounter(line
generation_init:
backend: openai
base_url: "http://localhost:8000/v1"
api_key: "EMPTY"
model: "qwen"

方式 3:Ollama(推荐新手)

ounter(lineounter(line
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen2.5:7b
ounter(lineounter(lineounter(lineounter(lineounter(line
generation_init:
backend: openai
base_url: "http://localhost:11434/v1"
api_key: "ollama"
model: "qwen2.5:7b"

Embedding 模型配置

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
retriever_init:
backend: openai
model: "BAAI/bge-large-zh-v1.5"
base_url: "http://localhost:8000/v1"
search_type: "hybrid"
top_k: 10
vector_store: "milvus"

七、知识库构建与检索

ounter(lineounter(lineounter(line
ultrarag corpus import --path ./my_documents --corpus my_corpus
ultrarag corpus chunk --corpus my_corpus --chunk_size 512 --overlap 50
ultrarag corpus index --corpus my_corpus --embedding_model bge-large-zh

支持格式:.txt / .pdf / .md / .html / 图片(VisRAG)


八、UltraRAG UI 可视化 IDE

ounter(lineounter(line
ultrarag ui
# 访问 http://localhost:5050

功能:拖拽画布编排、代码实时同步、AI 助手辅助开发、一键调试、Demo 预览、知识库管理


九、Deep Research 流水线

结合 AgentCPM-Report(8B),自动多步检索与整合,生成万字级调研报告。

搜索源:知识库检索 / Web Search(Tavily/Exa)/ 混合搜索


十、评估体系

指标: F1/EM、Recall/Precision、NDCG/MAP、Faithfulness、Answer/Context Relevance

基准: RGB、RECALL、MultiHopQA、HotpotQA、TREC 等


十一、与主流 RAG 框架对比

维度 UltraRAG LangChain LlamaIndex RAGFlow
MCP 原生 ⚠️
低代码 YAML ⚠️
可视化 IDE ✅ 内置
评估体系 ✅ 内置 ⚠️
Deep Research
本地模型
一键 Demo
顶会论文 ICLR×2, ACL, EMNLP

十二、FAQ

硬件需求: API 模式 4GB RAM;7B 模型 8GB+ VRAM;Deep Research 16GB+ VRAM

快速上手:

ounter(lineounter(lineounter(line
git clone https://github.com/OpenBMB/UltraRAG.git --depth 1 && cd UltraRAG
uv sync --all-extras && source .venv/bin/activate
ultrarag run examples/experiments/sayhello.yaml

最佳实践: 开发用 API 验证逻辑 → 生产用 vLLM;chunk_size 256-512;先调检索再调生成


总结

UltraRAG 3.0 以 MCP 原生架构、YAML 低代码编排、一键 Demo 生成为核心差异化能力。适合研究人员、算法工程师、应用开发者和初学者。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐