給 MCP 加上 RAG,工具準確率提升 200-,起飛~
大型語言模型(LLMs)在有效利用越來越多的外部工具(如模型上下文協議(MCP)所定義的工具)方面存在困難,這是由於提示膨脹和選擇複雜性造成的。因此引入了 RAG-MCP,這是一個檢索增強生成框架,通過卸載工具發現來克服這一挑戰。
提示膨脹與 MCP 壓力測試
-
提示膨脹問題:隨着可用的 MCP(Model Context Protocol)服務器數量增加,將所有工具描述包含在單個提示中會導致提示過長,消耗大量 token,並降低模型區分和回憶正確工具的能力。這種現象類似於 “針在草堆中”(Needle-in-a-Haystack, NIAH)測試,即在長上下文中檢索關鍵信息的能力會隨着上下文長度增加而顯著下降。
-
MCP 壓力測試設計:爲了量化工具選擇能力隨工具池大小的變化,作者設計了一個 MCP 壓力測試。測試中,候選 MCP 服務器的數量從 1 增加到 11100,每次試驗中隨機選擇一個 “真實”MCP(唯一能滿足任務需求的工具)和若干干擾項(distractors)。模型需要從這些候選中選擇正確的 MCP 並執行任務。通過改變候選工具的數量和位置,測試模型在不同工具池規模下的選擇準確性和任務成功率。
RAG-MCP 框架
-
框架設計:RAG-MCP 框架通過檢索增強生成(RAG)技術解決提示膨脹問題。它不將所有工具描述一次性提供給 LLM,而是將工具描述存儲在外部向量索引中,並在查詢時動態檢索與用戶任務最相關的工具描述。
-
工作流程:
-
檢索(Retrieval):使用輕量級 LLM(如 Qwen)對用戶任務描述進行編碼,並在 MCP 索引中執行語義搜索,返回與任務最相似的前 k 個候選工具。
-
驗證(Validation):對每個檢索到的 MCP,生成少量示例查詢並測試其響應,以確保其基本兼容性(可選步驟)。
-
調用(Invocation):僅將最佳 MCP 的描述(包括工具使用參數)注入 LLM 提示中,LLM 隨後通過函數調用接口執行任務。
-
框架優勢:
-
減少提示大小:避免上下文窗口過載,即使工具庫很大也能保持高效。
-
降低認知負擔:LLM 無需篩選數百個干擾工具,從而提高選擇準確性和減少幻覺(hallucinations)。
-
資源效率:與傳統 MCP 客戶端相比,RAG-MCP 僅激活選定的 MCP,降低了啓動成本,並支持任意大小的工具集,而無需擔心基礎設施瓶頸。
-
多輪對話魯棒性:在多輪對話中,LLM 無需重複包含所有 MCP 提示,RAG-MCP 的檢索器可以動態處理工具回憶,釋放上下文空間用於任務特定推理。
三步流程圖
- 流程圖總結:RAG-MCP 的操作流程分爲三個核心步驟:
-
用戶任務輸入:用戶的自然語言任務被編碼並提交給檢索器。
-
檢索器選擇和驗證 MCP:檢索器在 MCP 索引中搜索,按語義相似性對候選工具進行排序,並通過合成示例測試每個工具的兼容性(可選)。
-
LLM 執行任務:LLM 僅接收選定 MCP 的描述和參數,並通過函數調用接口執行任務。
實驗結果
-
性能提升:RAG-MCP 在工具選擇的準確性上顯著優於基線方法。在基準任務中,RAG-MCP 的工具選擇準確率達到了 43.13%,而基於關鍵詞匹配的 “實際匹配” 方法和直接提示所有工具的 “空白條件” 方法的準確率分別爲 18.20% 和 13.62%。
-
提示大小減少:RAG-MCP 顯著減少了提示中使用的 token 數量,平均爲 1084 個 token,而 “空白條件” 方法需要 2133.84 個 token。
-
生成 token 數量:RAG-MCP 的完成 token 數量略高於 “實際匹配” 方法(78.14 vs 23.60),但這種增加與更高的準確性和整體任務成功率相關。
更多信息:《動手設計 AI Agents:CrewAI 版》、《高級 RAG 之 36 技》、新技術實戰:中文 Lazy-GraphRAG/Manus+MCP/GRPO+Agent、大模型日報 / 月報、最新技術熱點追蹤解讀(GPT4-o / 數字人 / MCP/Gemini 2.5 Pro)
https://arxiv.org/pdf/2505.03275
RAG-MCP: Mitigating Prompt Bloat in LLM Tool Selection via Retrieval-Augmented Generation
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/c8VlvlEG0E4gqdykOK4cUw