默认走 MCP 执行模式,只跑本地流程需显式加 --no-mcp;基础镜像只装核心依赖和 mcp extra,用本地检索或生成后端要另装对应 extras;Docker 的 latest 等是滚动标签,需可复现部署时应固定镜像 digest。
git clone https://github.com/OpenBMB/UltraRAG.git --depth 1
cd UltraRAG
uv sync --all-extrasREADME 未明确列出最低显存要求;提供 CPU 与 GPU 两类 Docker 镜像,GPU 镜像需 NVIDIA Container Toolkit,Linux GPU 依赖锁定 CUDA 12.9(含 vLLM cu129 wheel)。
基于 MCP 的低代码 RAG 框架,用 YAML 编排复杂检索生成流程
低代码 MCP 框架,用可视化方式快速搭建复杂 RAG 流水线,省去大量胶水代码,适合快速验证检索增强生成方案。
核心能力
- 将 Retriever、Generation 等组件封装为独立 MCP Server
- 用 YAML 配置实现顺序、循环、条件分支等控制结构
- 内置标准化评测流程与主流研究基准,便于对比复现
- 一条命令把 Pipeline 转成可交互对话 Web UI
- UI 支持画布与代码双向同步,可在线调参和改提示词
容易踩的坑
- v0.3.0.3最新正式版2026-09-15 · 2026-09-15 07:26 UTC
Release date: 2026.9.15
Highlights
This release expands UltraRAG’s retrieval and generation options with a Qdrant vector search backend, a dedicated LiteLLM generation backend, and jieba support for Chinese tokenization.
We improve correctness and reliability by keeping legacy knowledge bases private by default, fixing query extraction in R1-Searcher, correcting evaluation scores for article-only answers such as the multiple-choice option “A”, and refining the AgentCPM-Report pipeline.
We also unify the CUDA 12.9 dependency environment, improve FAISS loading on Windows, and refresh backend and frontend dependencies.
What's Changed
-
Add Qdrant as a vector search backend. by @anush008 in #434
-
Add a LiteLLM generation backend with a dedicated optional dependency extra. by @prodmanpd in #496
-
Add jieba support for Chinese tokenization and update parameter configuration. by @xhd0728 in #409
-
Keep legacy knowledge bases private by default. by @mikemikimike in #497
-
Fix R1-Searcher query extraction by escaping pipe characters in the query-tag regular expression. by @Chen17-sq in #439
-
Preserve article-only answers during evaluation normalization, fixing incorrect scores for answers such as “A”, and add regression tests. by @chiruu12 in #510
-
Update the AgentCPM-Report pipeline. by @mssssss123 in #433
-
Unify the CUDA 12.9 dependency environment and add CI validation for the unified all-extras environment. by @xhd0728 in #478
-
Improve Windows compatibility by selectively preloading FAISS. by @xhd0728 in #502
-
Link the Structured Debugging Guide in the English README. by @yancd366 in #428
-
Remove duplicate Docker startup instructions from the README. by @zhengdaqi in #427
-
Fix the broken star history chart. by @FaintFlower in #491
-
Refresh backend dependencies, including cryptography, h2, pypdf, tornado, NLTK, aiohttp, authlib, urllib3, Pillow, and setuptools. by @dependabot in #483, #505, #501, #499, #498, #436, #422, #421, #395, and #490
-
Refresh frontend dependencies, including js-yaml, DOMPurify, React Router, Vite, esbuild, PostCSS, Browserslist, @humanfs/node, and brace-expansion. by @dependabot in #506, #486, #485, #445, #476, #500, #504, and #477
Full Changelog: https://github.com/OpenBMB/UltraRAG/compare/v0.3.0.2...v0.3.0.3
-
- v0.3.0.22026-04-09 · 2026-04-09 04:41 UTC
查看更新说明
Release date: 2026.4.9
Highlights
This release delivers a major end-to-end memory upgrade for UltraRAG, introducing persistent user memory, project memory retrieval, and a dedicated memory-aware RAG demo. It also makes the demo experience significantly more stateful and personalized with SQLite-backed authentication, persistent chat sessions, nickname and model settings management, and knowledge base visibility controls supporting public, private, and shared access.
The frontend is substantially refreshed through a React/Vite-based overhaul, the new Explore section, improved source-detail interactions, and a mobile optimization baseline. We also improve engineering robustness by fixing an async retriever initialization issue, adding compatibility guards for FastMCP 3.x-related builder changes and demo runtime cleanup, introducing CI smoke checks for the SayHello pipeline and frontend build, and adding a structured troubleshooting guide, alongside a broad round of backend and frontend dependency maintenance.
What's Changed
-
Add an end-to-end memory system with persistent user memory, project memory retrieval, and a dedicated memory-aware RAG demo. by @mssssss123 in #379
-
Add SQLite-backed authentication, persistent chat sessions, nickname/model settings management, and knowledge base visibility controls. by @mssssss123 in #379
-
Refactor the frontend with React/Vite, add the Explore section, and improve mobile responsiveness and source-detail interactions. by @mssssss123 in #379
-
Fix async retriever initialization by awaiting retriever_init(...) during startup. by @xhd0728 in #385
-
Fix builder compatibility issues caused by FastMCP 3.x API changes, and harden demo runtime handling around closed-event-loop cleanup noise and backend overrides. by @xhd0728 in #388
-
Add CI smoke checks for the SayHello pipeline and frontend build, then refine the workflow tooling and installation examples. by @xhd0728 in #389 and #390
-
Add a structured troubleshooting guide for UltraRAG workflows. by @onestardao in #352
-
Update README publications and model references. by @xhd0728 in #359
-
Refresh backend and frontend dependencies, including Gradio, vLLM, pypdf, pyjwt, cbor2, cryptography, aiohttp, requests, authlib, orjson, tornado, NLTK, and several frontend packages. by @dependabot in #354, #355, #357, #360, #366, #368, #369, #371, #373, #376, #377, #380, #381, #382, #383, #384, #386, and #387
-
- v0.3.0.12026-03-10 · 2026-03-10 09:22 UTC
查看更新说明
Release date: 2026.3.10
Highlights
This release introduces expanded document parsing for
.docand.wpsformats, alongside new web search capabilities for the demo environment. We have significantly enhanced the chat experience by addingDOCXandmarkdownexport functionality, downloadable text actions, and a streamlined flow for session creation and interruption handling. The citation system has been further optimized with automatic renumbering and improved source sorting for better readability. We also refine the backend performance by introducing concurrency to OpenAI embeddings and add a new Case Study Viewer for extended functionality.What's Changed
-
Support web search functionality for the demo environment. by @xhd0728 in #285
-
Support .doc and .wps file parsing. by @xhd0728 in #293
-
Implement Case Study Viewer launch functionality. by @mssssss123 in #313
-
Add export functionality for chat messages in DOCX format. by @mssssss123 in #323
-
Simplify the parameter display toggle for a cleaner interface. by @mssssss123 in #282
-
Add user confirmation for interrupting chat generation and streamline the creation of new chat sessions. by @mssssss123 in #305
-
Implement automatic citation renumbering functionality. by @mssssss123 in #314
-
Enhance chat text actions with download capabilities and sort used/unused sources by numeric citation ID. by @mssssss123 in #315
-
Optimize OpenAI embeddings by introducing concurrency. by @xhd0728 in #295
-
- v0.3.02026-01-26 · 2026-01-26 05:13 UTC
查看更新说明
Release date: 2026.1.23
Highlights
Introducing UltraRAG 3.0: Reject "Black Box" Development. Make Every Line of Inference Logic Visible! UltraRAG 3.0 solves the "Last Mile" problem in RAG development, developed by THUNLP, NEUIR, OpenBMB & AI9Stars. This release represents a significant milestone with 129 pull requests merged, bringing major enhancements to functionality, UI/UX, and system stability.
-
WYSIWYG Pipeline Builder: From logic to prototype in seconds. Our dual-mode builder (Canvas + Code) syncs in real-time. Click "Build" and your static logic instantly becomes an interactive UI. No more boilerplate code!
-
Pixel-Level "White-Box" Visualization: Stop guessing. The "Show Thinking" panel visualizes the entire inference trajectory—loops, branches, and tool calls. Debug bad cases instantly by comparing retrieval chunks vs. model hallucinations.
-
Built-in AI Developer Assistant: Stuck on config? The embedded AI Assistant knows the framework inside out. Just use natural language to generate Pipeline configurations, optimize Prompts, or explain parameters.
-
DeepResearch Engine: Powered by AgentCPM-Report , it supports "Writing-as-Reasoning." The system dynamically plans, retrieves, and deepens content to generate professional, cited reports automatically.
What's Changed
Demo Mode & Streaming:
- Enable demo-mode compatibility for retriever server and Milvus backend (#145) @mssssss123
- Enable streaming generation in generation server to support demo mode (#147) @mssssss123
- Full stack support (Frontend, Backend, Client) for Demo; Upgrade CLI to v3 (#149) @mssssss123
- Support displaying "thinking process" for demo (#151) @mssssss123
- Support customizable chunk params, optimize corpus server, and add thread cleanup (#167) @mssssss123
Knowledge Base (KB):
- Support knowledge management for demo (#160) @mssssss123
- Support uploading multi-files and folders (#161) @mssssss123
- Support selecting KB during chat (#162) @mssssss123
- Support Chinese KB names (#212) @xhd0728
- Add KB selection validation (#194) @xhd0728
- fix append index error when set an exist collection name (#266 ) @xhd0728
Citations & Rendering:
- Support citation by prompt (#155) @mssssss123
- Support citation for loop-like pipelines (#156) @mssssss123
- Support citation for light research pipelines (#157) @mssssss123
- Re-implement single-step and multi-step citations logic (#173) @mssssss123
- Enhance reference rendering with collapsible unused citations and improved highlight logic (#174) @mssssss123
- Integrate KaTeX for LaTeX rendering in markdown (#171) @mssssss123
Pipeline & Agents:
- Support SurveyCPM pipeline (#183) @mssssss123
- Support background inference suspension & optimize generation details (#185) @mssssss123
- Enhance background task management with user ID isolation (#186) @mssssss123
- Add PaperAgent demo (#189) @mssssss123
- Add AgentCPM-Report demo (#226, #230) @Kaguya-19
- Support Fascmcp v2.14.3 (#218) @xhd0728
AI Assistant:
- Introduce AI Assistant for configuration (#202) @mssssss123
- Enhance AI Assistant capabilities and UI (#203, #229, #231, #233) @xhd0728 @mssssss123
Utilities:
- Add
extra_paramsfor generation server (#169) @mssssss123 - Support one-click history cleanup, .docx parsing, and multiline chat input (#172) @mssssss123
- Bundle JS and CSS for offline support (#192) @xhd0728
- Use
uvfor dependency management (#222) @xhd0728
Logic & Backend:
- Fix server discovery issue when
server.pyis missing (#152) @mssssss123 - Re-implement search-o1 logic (#158) @mssssss123
- Fix global params bug in client (#184) @mssssss123
- Fix multi-turn chat errors (#193) @xhd0728
- Fix SurveyCPM hard mode parameters and rendering (#205, #208) @Kaguya-19 @mssssss123
- Fix event loop and session expiration issues (#216) @xhd0728
- Fix YAML parsing errors and unicode support (#213, #224) @xhd0728
- Fi
-
- v0.2.1.32026-01-12 · 2026-01-12 02:40 UTC
查看更新说明
Release date: 2026.1.12
Highlights
This release focuses on improving system stability and core logic. We have addressed a path indexing bug in the generation server to ensure reliable image rendering. Additionally, the search-o1 pipeline has been completely reimplemented, resolving previous implementation flaws.
What's Changed
- Fixed index reference for image paths in generation server. by @xhd0728 #146
- Reimplemented the search-o1 pipeline by @mssssss123 @lifelsl #158
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Latest News 🔥
- [2026.01.23] 🎉 UltraRAG 3.0 Released: Say no to "black box" development—make every line of reasoning logic clearly visible 👉 📖 Blog
- [2026.01.20] 🎉 AgentCPM-Report Model Released! DeepResearch is finally localized: 8B on-device writing agent AgentCPM-Report is open-sourced 👉 🤗 Model
- [2025.11.11] 🎉 UltraRAG 2.1 Released: Enhanced knowledge ingestion & multimodal support, with a more complete unified evaluation system!
- [2025.09.23] New daily RAG paper digest, updated every day 👉 📖 Papers
- [2025.09.09] Released a Lightweight DeepResearch Pipeline local setup tutorial 👉 📺 bilibili · 📖 Blog
- [2025.09.01] Released a step-by-step UltraRAG installation and full RAG walkthrough video 👉 📺 bilibili · 📖 Blog
- [2025.08.28] 🎉 UltraRAG 2.0 Released! UltraRAG 2.0 is fully upgraded: build a high-performance RAG with just a few dozen lines of code, empowering researchers to focus on ideas and innovation! We have preserved the UltraRAG v2 code, which can be viewed at v2.
- [2025.01.23] UltraRAG Released! Enabling large models to better comprehend and utilize knowledge bases. The UltraRAG 1.0 code is still available at v1.
💡 About UltraRAG
UltraRAG is the first lightweight RAG development framework based on the Model Context Protocol (MCP) architecture design, jointly launched by THUNLP at Tsinghua University, NEUIR at Northeastern University, OpenBMB, and AI9stars.
Designed for research exploration and industrial prototyping, UltraRAG standardizes core RAG components (Retriever, Generation, etc.) as independent MCP Servers, combined with the powerful workflow orchestration capabilities of the MCP Client. Developers can achieve precise orchestration of complex control structures such as conditional branches and loops simply through YAML configuration.
🖥️ UltraRAG UI
UltraRAG UI transcends the boundaries of traditional chat interfaces, evolving into a visual RAG Integrated Development Environment (IDE) that combines orchestration, debugging, and demonstration.
The system features a powerful built-in Pipeline Builder that supports bidirectional real-time synchronization between "Canvas Construction" and "Code Editing," allowing for granular online adjustments of pipeline parameters and prompts. Furthermore, it introduces an Intelligent AI Assistant to empower the entire development lifecycle, from pipeline structural design to parameter tuning and prompt generation. Once constructed, logic flows can be converted into interactive dialogue systems with a single click. The system seamlessly integrates Knowledge Base Management components, enabling users to build custom knowledge bases for document Q&A. This truly realizes a one-stop closed loop, spanning from underlying logic construction and data governance to final application deployment.
https://github.com/user-attachments/assets/fcf437b7-8b79-42f2-bf4e-e3b7c2a896b9
✨ Key Highlights
🚀 Low-Code Orchestration of Complex Workflows
Inference Orchestration: Natively supports control structures such as sequential, loop, and conditional branches. Developers only need to write YAML configuration files to implement complex iterative RAG logic in dozens of lines of code.
⚡ Modular Extension and Reproduction
Atomic Servers: Based on the MCP architecture, functions are decoupled into independent Servers. New features only need to be registered as function-level Tools to seamlessly integrate into workflows, achieving extremely high reusability.
📊 Unified Evaluation and Benchmark Comparison
Research Efficiency: Built-in standardized evaluation workflows, ready-to-use mainstream research benchmarks. Through unified metric management and baseline integration, significantly improves experiment reproducibility and comparison efficiency.
🎯 Rapid Interactive Prototype Generation
One-Click Delivery: Say goodbye to tedious UI development. With just one command, Pipeline logic can be instantly converted into an interactive conversational Web UI, shortening the distance from algorithm to demonstration.
📦 Installation
We provide two installation methods: local source code installation (recommended using uv for package management) and Docker container deployment.
Method 1: Source Code Installation
We strongly recommend using uv to manage Python environments and dependencies, as it can greatly improve installation speed.
Prepare Environment
If you haven't installed uv yet, please execute:
## Direct installation
python -m pip install --upgrade "pip>=26.2.2" "uv==0.13.7"
## Download
curl -LsSf https://astral.sh/uv/0.12.0/install.sh | sh
Download Source Code
git clone https://github.com/OpenBMB/UltraRAG.git --depth 1
cd UltraRAG
Install Dependencies
Choose one of the following modes to install dependencies based on your use case:
A: Create a New Environment Use uv sync to automatically create a virtual environment and synchronize dependencies:
-
Core dependencies: If you only need to run basic core functions, such as only using UltraRAG UI:
uv syncThis installs the local execution mode. Use
--no-mcpwithbuild,run, andshow ui. Local pipelines do not start MCP server processes. -
MCP execution (the default when
--no-mcpis omitted):uv sync --extra mcpRemote MCP servers also require this extra when mixed into a local pipeline.
-
Full installation: If you want to fully experience UltraRAG's retrieval, generation, corpus processing, and evaluation functions, please run:
uv sync --all-extrasThis is the recommended team setup: every MCP server shares the same
.venvanduv.lock. Linux GPU dependencies are locked to CUDA 12.9, including the official vLLM cu129 wheel. -
On-demand installation: If you only need to run specific modules, keep the corresponding
--extraas needed, for example:uv sync --extra retriever # Retrieval module only uv sync --extra generation # Generation module only
Once installed, activate the virtual environment:
# Windows CMD
.venv\Scripts\activate.bat
# Windows Powershell
.venv\Scripts\Activate.ps1
# macOS / Linux
source .venv/bin/activate
B: Install into an Existing Environment To install UltraRAG into your currently active Python environment, use uv pip:
# Core dependencies
uv pip install -e .
# Existing MCP execution mode
uv pip install -e ".[mcp]"
# Full installation
uv pip install -e ".[all]"
# On-demand installation
uv pip install -e ".[retriever]"
Method 2: Docker Container Deployment
If you prefer not to configure a local Python environment, you can deploy using Docker.
Get Code and Images
# 1. Clone the repository
git clone https://github.com/OpenBMB/UltraRAG.git --depth 1
cd UltraRAG
# 2. Prepare the image (choose one)
# Option A: Pull from Docker Hub
docker pull hdxin2002/ultrarag:latest-base-cpu # Core dependencies (CPU)
docker pull hdxin2002/ultrarag:latest-base-gpu # Core dependencies (GPU base)
docker pull hdxin2002/ultrarag:latest # All extras (GPU)
# Option B: Build locally
docker build -f Dockerfile.base-cpu -t ultrarag:latest-base-cpu . # CPU
docker build -t ultrarag:latest . # Full GPU image
The nightly workflow checks main daily at 00:00 UTC and updates the latest
tags when there are commits from the last 24 hours. It can also be triggered
manually to force a rebuild. The existing v0.3.0, v0.3.0-base-cpu, and
v0.3.0-base-gpu tags continue to be published alongside these tags. These are
moving tags; pin an image digest when you need a reproducible deployment.
All three images include the built frontend and Node.js 22 with npm/npx for
remote HTTP MCP servers. Base images install core Python dependencies and the
mcp extra for their default startup command; install
the relevant extras if your pipeline uses local retrieval or generation backends.
Start the Container
# CPU: no GPU runtime required
docker run --rm -it -p 5050:5050 hdxin2002/ultrarag:latest-base-cpu
# GPU: requires the NVIDIA Container Toolkit
docker run --rm -it --gpus all -p 5050:5050 hdxin2002/ultrarag:latest
Note: After the container starts, UltraRAG UI will run automatically. You can directly access http://localhost:5050 in your browser to use it.
Verify Installation
After installation, run the following example command to check if the environment is normal:
ultrarag build examples/experiments/sayhello.yaml --no-mcp
ultrarag run examples/experiments/sayhello.yaml --no-mcp
Use ultrarag show ui --no-mcp to select local execution for UI sessions and
knowledge-base jobs. Python callers select the same mode with
initialize(..., no_mcp=True) or PipelineCall(..., no_mcp=True).
Pipeline YAML and parameter files are shared by both modes. Local server scripts
must register through UltraRAG_MCP_Server; scripts using FastMCP directly need
to migrate their registrations or continue using the default MCP mode.
Local execution supports registered tools and prompts. FastMCP-specific Context
injection, authentication, middleware and resources require MCP mode.
Long-running Python applications should call ultrarag.api.shutdown() when
finished with ToolCall; inside an async function, use await shutdown().
If you see the following output, the installation is successful:
Hello, UltraRAG v3!
🚀 Quick Start
We provide complete tutorial examples from beginner to advanced. Whether you are conducting academic research or building industrial applications, you can find guidance here. Welcome to visit the Documentation for more details.
🔬 Research Experiments
Designed for researchers, providing data, experimental workflows, and visualization analysis tools.
- Getting Started: Learn how to quickly run standard RAG experimental workflows based on UltraRAG.
- Evaluation Data: Download the most commonly used public evaluation datasets in the RAG field and large-scale retrieval corpora, directly for research benchmark testing.
- Case Analysis: Provides a visual Case Study interface to deeply track each intermediate output of the workflow, assisting in analysis and error attribution.
- Structured Debugging Guide (Chinese): When answers look suspicious, retrieval hits are unstable, the reasoning chain drifts, or post-deployment behavior is abnormal, troubleshoot across four layers — input & retrieval, reasoning & planning, state & context, and deployment & runtime.
- Code Integration: Learn how to directly call UltraRAG components in Python code to achieve more flexible customized development.
🛠️ Demo Systems
Designed for developers and end users, providing complete UI interaction and complex application cases.
- Quick Start: Learn how to start UltraRAG UI and familiarize yourself with various advanced configurations in administrator mode.
- Deployment Guide: Detailed production environment deployment tutorials, covering the setup of Retriever, Generation models (LLM), and Milvus vector database.
- Deep Research: Flagship case, deploy a Deep Research Pipeline. Combined with the AgentCPM-Report model, it can automatically perform multi-step retrieval and integration to generate tens of thousands of words of survey reports.
🤝 Contributing
Thanks to the following contributors for their code submissions and testing. We also welcome new members to join us in collectively building a comprehensive RAG ecosystem!
You can contribute by following the standard process: Fork this repository → Submit Issues → Create Pull Requests (PRs).
⭐ Support Us
If you find this repository helpful for your research, please consider giving us a ⭐ to show your support.
💬 Contact Us
- For technical issues and feature requests, please use GitHub Issues.
- For questions about usage, feedback, or any discussions related to RAG technologies, you are welcome to join our WeChat group, Feishu group, and Discord to exchange ideas with us.
- If you have any questions, feedback, or would like to get in touch, please feel free to reach out to us via email at [email protected]
📖 Publications
Papers
-
Shi Yu, Chaoyue Tang, Bokai Xu, Junbo Cui, Junhao Ran, Yukun Yan, Zhenghao Liu, Shuo Wang, Xu Han, Zhiyuan Liu, Maosong Sun. (2025) VisRAG: Vision-based Retrieval-augmented Generation on Multi-modality Documents. arXiv:2410.10594 and In Proceedings of the Thirteenth International Conference on Learning Representations (ICLR 2025).
-
Xinze Li, Sen Mei, Zhenghao Liu, Yukun Yan, Shuo Wang, Shi Yu, Zheni Zeng, Hao Chen, Ge Yu, Zhiyuan Liu, Maosong Sun, Chenyan Xiong. (2025) RAG-DDR: Optimizing Retrieval-Augmented Generation Using Differentiable Data Rewards. arXiv:2410.13509 and In Proceedings of the Thirteenth International Conference on Learning Representations (ICLR 2025).
-
Kunlun Zhu, Yifan Luo, Dingling Xu, Yukun Yan, Zhenghao Liu, Shi Yu, Ruobing Wang, Shuo Wang, Yishan Li, Nan Zhang, Xu Han, Zhiyuan Liu, Maosong Sun. (2025) RAGEval: Scenario Specific RAG Evaluation Dataset Generation Framework. arXiv:2408.01262 and In Proceedings of the 63rd Annual Meeting of the Association for Computational Linguistics (ACL 2025).
-
Ruobing Wang, Qingfei Zhao, Yukun Yan, Daren Zha, Yuxuan Chen, Shi Yu, Zhenghao Liu, Yixuan Wang, Shuo Wang, Xu Han, Zhiyuan Liu, Maosong Sun. (2025) DeepNote: Note-Centric Deep Retrieval-Augmented Generation. arXiv:2410.08821 and In Findings of the Association for Computational Linguistics: EMNLP 2025.
Models
-
Yishan Li, Wentong Chen, Yukun Yan, Mingwei Li, Sen Mei, Xiaorong Wang, Kunpeng Liu, Xin Cong, Shuo Wang, Zhong Zhang, Yaxi Lu, Zhenghao Liu, Yankai Lin, Zhiyuan Liu, Maosong Sun. (2026) AgentCPM-Report: Interleaving Drafting and Deepening for Open-Ended Deep Research. arXiv:2602.06540.
-
OpenBMB. MiniCPM-Embedding-Light. Hugging Face Model Card.