UltraRAG 3.0:基于 MCP 架构的轻量级 RAG 开发框架
一、项目简介
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— 启动可视化 IDEultrarag 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%免费】

更多推荐


所有评论(0)