模型 / 資料集
OpenBMB/UltraRAG avatar
OpenBMB/UltraRAG

UltraRAG 把 RAG 拆成 MCP Server:用 YAML 編排檢索流程的實際代價

A Low-Code MCP Framework for Building Complex and Innovative RAG Pipelines

5,694 個 Star448 個 ForkPythonApache-2.0

秒懂

它是什麼?
UltraRAG 由 THUNLP、NEUIR、OpenBMB 與 AI9stars 共同推出,把 Retriever、Generation 等元件標準化成獨立 MCP Server,再用 YAML 描述分支與迴圈。它適合想快速改動檢索邏輯的研究者,但對已經有穩定 RAG 服務的團隊,導入成本需要先算清楚。
適合誰用?
UltraRAG 適合正在做檢索策略實驗、需要頻繁替換 Retriever 或插入條件分支與迭代邏輯的研究團隊,也適合想把 demo 快速變成可操作介面的原型開發者。已經有穩定上線的 RAG 服務、且不想引入 MCP 這一層協定的團隊,不需要為此重寫既有流程。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 Python(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

UltraRAG 要解的是檢索流程難改的問題

多數 RAG 專案一開始都是一條直線:切文件、算向量、檢索、丟給模型生成。等到要加入查詢改寫、多輪檢索、或依檢索分數決定要不要再查一次時,程式碼就開始纏在一起,換一個 Retriever 要動好幾個檔案。UltraRAG 的切入點就是把這些步驟拆成獨立的 MCP Server,讓流程本身變成一份可讀的設定檔。README 把目標寫成「Less Code, Lower Barrier, Faster Deployment」,並說明它由清華大學 THUNLP、東北大學 NEUIR、OpenBMB 與 AI9stars 共同推出。它鎖定的對象寫得很明確:研究探索與工業原型。這兩個場景的共同點是流程會一直改,所以「改起來快」比「跑得穩」優先。如果你的 RAG 已經定型、半年不改一次檢索邏輯,這個框架帶來的好處會非常有限。

MCP Server 加 MCP Client:控制流放在客戶端,能力放在伺服器

根據 README 的描述,UltraRAG 把 Retriever、Generation 這類核心元件標準化為獨立的 MCP Server,再由 MCP Client 負責工作流編排。這個切法的關鍵在於職責分離:每個 Server 只暴露函式層級的工具,本身不知道自己在整條流程中的位置;分支、迴圈、順序執行這些控制結構全部由客戶端決定。README 明確列出原生支援的控制結構是 sequential、loop 與 conditional branch。這意味著迭代式檢索這類邏輯不需要寫成 Python 迴圈,而是描述在 YAML 裡。代價是除錯路徑變長:當一次檢索結果不如預期,你得先判斷是 YAML 的流程接錯、客戶端傳錯參數,還是某個 Server 內部的檢索本身有問題。傳統寫法只要在函式裡印一行就好,這裡要先確認是哪一層出錯。這個代價換到的是可替換性,元件之間透過協定溝通,換掉一個 Server 不需要改動其他部分。

YAML 描述流程,複雜度從程式碼搬到設定檔

README 的說法是開發者「只需撰寫 YAML 設定檔」就能在數十行內實現複雜的迭代式 RAG 邏輯。這裡要誠實看待一件事:複雜度並沒有消失,只是換了位置。條件分支與迴圈寫在 YAML 裡,確實比散落在多個 Python 檔案中容易看出全貌,但 YAML 沒有型別檢查,也沒有編譯期驗證。一個縮排錯誤或欄位名稱打錯,通常要等到執行時才會浮現。專案本身也承認設定檔是主要介面,這代表版本升級時,設定檔格式的變動會直接影響你。倉庫的 release 紀錄顯示 v0.3.0 在 2026 年 1 月發布,接著 v0.3.0.1 與 v0.3.0.2 分別在 3 月與 4 月推出,三個版本集中在三個月內。這種節奏對早期採用者是好消息,說明還在活躍維護,但也意味著設定檔與 API 的穩定性還在建立中。

安裝與啟動:倉庫提供的入口

這個倉庫的預設分支是 main,主要語言是 Python,授權為 Apache-2.0。README 本身沒有貼出完整的安裝指令區塊,而是把安裝與操作的說明導向官方文件站 ultrarag.openbmb.cn,以及 2025 年 9 月 1 日發布的安裝與完整 RAG 操作影片與對應部落格文章。這是判斷是否採用的重要訊號:安裝步驟不在倉庫首頁,代表你必須先連到文件站確認依賴與啟動方式。README 提到的具體操作入口有兩個方向,一是透過 YAML 設定檔描述流程,二是把流程轉成互動式對話 Web UI,README 描述為「one command」即可完成。由於我沒有實際安裝或執行這個專案,無法確認該指令的實際名稱與參數,也無法確認它預設監聽的埠號或需要哪些環境變數。這些都必須回到文件站與倉庫內的範例目錄確認,不能靠推測。

版本迭代快,但設定檔與介面的穩定性還在建立中

從 release 時間看,v0.3.0 於 2026 年 1 月 26 日、v0.3.0.1 於 3 月 10 日、v0.3.0.2 於 4 月 9 日,最後一次推送是 2026 年 9 月 9 日。專案沒有被封存,仍在更新。但要注意 README 的新聞區塊顯示,專案在 2025 年 8 月發過 2.0、11 月發過 2.1,2026 年 1 月發 3.0,並明確保留了 v2 與 v1 的程式碼分支。這種大版本跳躍加上舊分支保留的做法,說明每次大改版都可能有不相容的變動,官方選擇用分支隔離而不是無痛升級。對採用者來說,這是一個具體的維護成本:你不能假設升級 0.3.x 不會動到既有 YAML。實際做法應該是在升級前先讀對應版本的 release notes,並在測試環境用同一份設定檔跑一次,確認流程沒有因為欄位變更而中斷。

內建評測流程是研究場景的加分項,也是它的邊界

README 把統一評測列為主要亮點之一,說明內建標準化評測工作流與主流研究基準,並透過統一的指標管理與基線整合來提升實驗的可重現性。對做研究的人來說,這一塊的價值可能高於流程編排本身:換 Retriever 之後要能公平比較,前提是評測方式一致。但這也劃出了它的適用邊界。這套評測是為研究基準設計的,不是為線上服務的品質監控設計的。README 沒有提到任何關於延遲、吞吐、併發或線上流量治理的機制。如果你的問題是「如何在尖峰時段把 P99 延遲壓下來」,這個框架沒有對應的答案,它甚至可能讓問題更難查,因為請求路徑多了一層協定轉換。把 UltraRAG 當成實驗平台是合理的,把它當成生產環境的服務框架則需要額外補上很多東西。

與 LangChain 這類程式庫的差別在哪裡

常見的替代方案是 LangChain 這類以 Python 程式庫形式提供的編排工具。兩者的差別不在功能清單,而在流程的存放位置與執行邊界。LangChain 的鏈是在 Python 行程內組裝的,元件是物件,控制流是程式碼,除錯可以直接用既有的 Python 工具。UltraRAG 把元件推到獨立行程的 MCP Server 後面,流程寫在 YAML 裡,好處是元件可跨流程重用、可獨立替換,壞處是跨行程通訊帶來的延遲與除錯斷點。選擇的判斷點很簡單:如果你的團隊需要讓不同人分別維護檢索端與生成端,而且希望換掉其中一端時不動另一端的程式碼,MCP 這層邊界是有意義的。如果整條流程由同一兩個人維護、且對延遲敏感,多一層協定只會讓事情變複雜。README 也提到新功能「只需註冊為函式層級的工具」即可接入流程,這句話點出了它的設計取向:以工具為單位擴充,而不是以類別繼承為單位。

授權與採用判斷

專案採用 Apache-2.0,這是寬鬆授權,允許修改與商業使用,並包含專利授權條款。實際使用時仍要注意兩件事:一是倉庫中可能包含來自其他來源的資料集或模型,這些元件的授權不隨主倉庫的 Apache-2.0 自動轉移;二是 README 提到與 Hugging Face、ModelScope 上的模型與資料集搭配使用,那些模型各有自己的授權條件。以上是一般性提醒,不構成法律意見,商業採用前應由法務確認。至於是否該採用:正在做檢索策略實驗、需要頻繁替換元件與插入條件分支的研究團隊,這個框架的 YAML 編排與內建評測能省下不少重複工作。已經有穩定上線服務、對延遲與可觀測性有明確要求的團隊,不需要為了低程式碼而引入 MCP 這一層。導入前應先確認三件事:依賴能否在目標 Python 環境裝起來、你要用的向量庫或模型是否已有現成的 MCP Server 實作、以及 v0.3.0 到 v0.3.0.2 之間設定檔格式有無變動。

編輯結論

UltraRAG 適合正在做檢索策略實驗、需要頻繁替換 Retriever 或插入條件分支與迭代邏輯的研究團隊,也適合想把 demo 快速變成可操作介面的原型開發者。已經有穩定上線的 RAG 服務、且不想引入 MCP 這一層協定的團隊,不需要為此重寫既有流程。導入前請先確認三件事:你的 Python 環境能否跑起倉庫指定的依賴組合;你要用的向量庫或模型是否已經有對應的 MCP Server 實作,否則得自己註冊 Tool;以及 v0.3.0 到 v0.3.0.2 這幾個版本的 release notes 實際改了哪些介面。這三點沒確認就開始寫 YAML,改版時會直接卡在設定檔格式變更上。

官方來源

  1. License: Apache-2.0
  2. OpenBMB/UltraRAG on GitHub
  3. Project website
  4. README
  5. Releases
社群筆記

社群筆記