RAG-MCP 新架構(gòu)設(shè)計(jì)解決大模型提示詞膨脹的工具選擇問(wèn)題 原創(chuàng) 精華
由于提示詞的膨脹以及工具選擇變得復(fù)雜,大語(yǔ)言模型(LLMs)很難高效地使用越來(lái)越多的外部工具,特別是那些由模型上下文協(xié)議(MCP)定義的工具。為此,需要新的架構(gòu)來(lái)解決, RAG-MCP 框架正是解決這個(gè)提示詞膨脹的問(wèn)題。
RAG-MCP 是一種“檢索增強(qiáng)生成”的方法。它通過(guò)提前篩選出最相關(guān)的工具來(lái)解決這個(gè)問(wèn)題。具體來(lái)說(shuō),在調(diào)用大語(yǔ)言模型之前,RAG-MCP 會(huì)先用語(yǔ)義檢索技術(shù),從外部的索引中找出和當(dāng)前查詢(xún)最相關(guān)的 MCP 工具。只有這些被選中的工具描述才會(huì)被傳遞給大語(yǔ)言模型。這樣一來(lái),提示詞的長(zhǎng)度大幅減少,決策過(guò)程也變得更加簡(jiǎn)單。
下文詳細(xì)剖析之。
一、RAG-MCP 架構(gòu)設(shè)計(jì)剖析
1、提示詞膨脹(Prompt Bloat)問(wèn)題剖析
提示詞膨脹(Prompt Bloat)是一個(gè)嚴(yán)重的問(wèn)題:如果在大模型的上下文中為每一個(gè)可能的工具都提供定義或使用說(shuō)明,會(huì)占用大量的空間,并且可能會(huì)讓大模型感到“壓力山大”。
我們?cè)?AI 應(yīng)用落地中發(fā)現(xiàn),隨著工具數(shù)量的增加,很難在單個(gè)提示詞中描述大量的 API 或工具。而且,許多 API 的功能非常相似,只有細(xì)微的差別。如果一次性把太多工具都塞進(jìn)去,不僅會(huì)超出大模型的上下文長(zhǎng)度限制,還可能讓大模型感到困惑,分不清這些功能相似的工具。
這直接導(dǎo)致了第二個(gè)問(wèn)題:決策成本太高。面對(duì)一長(zhǎng)串功能相似的工具,大模型在選擇是否調(diào)用以及調(diào)用哪個(gè)工具時(shí),會(huì)面臨更復(fù)雜的決策。工具越多,出錯(cuò)的可能性就越高。比如:大模型可能會(huì)選擇了一個(gè)不太合適的工具,或者誤解了某個(gè)工具的功能。實(shí)際上,即使是像 Qwen-3 這樣的先進(jìn)模型,在面對(duì)眾多 API 選項(xiàng)時(shí),也可能會(huì)“腦洞大開(kāi)”,虛構(gòu)出一個(gè)實(shí)際不存在的 API;而 Anthropic 的 Claude 可能會(huì)為用戶(hù)請(qǐng)求選擇錯(cuò)誤的庫(kù)。這些失敗案例說(shuō)明,簡(jiǎn)單地增加工具數(shù)量,可能會(huì)讓大語(yǔ)言模型(LLM)的性能下降。
2、RAG-MCP 解決方案剖析
為了解決這些問(wèn)題,提出了 RAG-MCP 新架構(gòu)設(shè)計(jì)方案,這是一個(gè)將檢索增強(qiáng)生成(RAG)與模型上下文協(xié)議框架結(jié)合起來(lái)的方法。它的核心思想是:不要一次性把所有工具都展示給大語(yǔ)言模型,而是根據(jù)用戶(hù)的查詢(xún),動(dòng)態(tài)地找出最相關(guān)的工具子集。
在 RAG-MCP 架構(gòu)設(shè)計(jì)中,大量的工具描述(比如:MCP 函數(shù)模式、使用示例等)都存儲(chǔ)在一個(gè)外部的語(yǔ)義索引中。當(dāng)一個(gè)新的查詢(xún)到來(lái)時(shí),一個(gè)專(zhuān)門(mén)的檢索器(比如:向量空間語(yǔ)義搜索)會(huì)先選出最有可能對(duì)這個(gè)查詢(xún)有用的前k個(gè)候選工具。然后,只有這k個(gè)工具的描述會(huì)被注入到大語(yǔ)言模型(LLM)的提示詞中(或者通過(guò)函數(shù)調(diào)用 AP I提供),這樣就能大大減少上下文的長(zhǎng)度和復(fù)雜性。這個(gè)檢索步驟就像是一個(gè)“聚焦過(guò)濾器”,減少了提示詞的冗余,幫助大模型更容易地做出選擇。
這種方法有點(diǎn)像檢索增強(qiáng)問(wèn)答系統(tǒng)的工作方式:不是把整個(gè)維基百科都給的模型,而是只檢索相關(guān)的文章。在這里,我們檢索的不是靜態(tài)的知識(shí),而是實(shí)時(shí)的、可以操作的工具知識(shí)。還有一個(gè)額外的好處是可擴(kuò)展性:因?yàn)楣ぞ咝畔⒋鎯?chǔ)在外部索引中,新工具或更新的 API 可以通過(guò)更新索引來(lái)整合,而不需要重新訓(xùn)練 LLM,這樣就能確保系統(tǒng)始終保持最新?tīng)顟B(tài)。簡(jiǎn)單來(lái)說(shuō),檢索的作用就是在正確的時(shí)間提供正確的工具,從而減輕模型的決策負(fù)擔(dān)。
3、RAG-MCP 新架構(gòu)設(shè)計(jì)
3.1、RAG-MCP框架
為了解決提示詞膨脹問(wèn)題,RAG-MC P將檢索增強(qiáng)生成(RAG)原則應(yīng)用于工具選擇。我們不再將所有 MCP 描述一股腦地塞給大語(yǔ)言模型,而是維護(hù)一個(gè)包含所有可用 MCP 元數(shù)據(jù)的外部向量索引。在處理用戶(hù)查詢(xún)時(shí),整個(gè)過(guò)程分為三個(gè)關(guān)鍵步驟:
步驟一、檢索
一個(gè)輕量級(jí)的基于大語(yǔ)言模型的檢索器會(huì)對(duì)用戶(hù)的任務(wù)描述進(jìn)行編碼,并在 MCP 索引上執(zhí)行語(yǔ)義搜索,返回與任務(wù)最相似的前k個(gè)候選 MCP。
步驟二、驗(yàn)證
對(duì)于每個(gè)檢索到的 MCP,RAG-MCP 可以生成一個(gè)少樣本示例查詢(xún),并測(cè)試其響應(yīng),以確?;炯嫒菪?。這一步在調(diào)用之前起到了“合理性檢查”的作用。
步驟三、調(diào)用
只有單個(gè)最佳的 MCP 描述(包括其工具使用參數(shù))會(huì)被注入到大語(yǔ)言模型的提示中或通過(guò)函數(shù)調(diào)用 API 傳遞給大模型。然后,大模型在不考慮工具發(fā)現(xiàn)的情況下進(jìn)行規(guī)劃和執(zhí)行。
這種設(shè)計(jì)帶來(lái)了以下好處:
- 縮小提示詞規(guī)模:通過(guò)僅提供相關(guān)的 MCP 元數(shù)據(jù),即使完整的工具注冊(cè)表很大,RAG-MCP 也能避免上下文窗口過(guò)載。
- 降低認(rèn)知負(fù)擔(dān):大語(yǔ)言模型不再需要從數(shù)百個(gè)干擾項(xiàng)中篩選,從而提高了選擇準(zhǔn)確率并減少了幻覺(jué)現(xiàn)象。
- 資源高效:與傳統(tǒng)的 MCP 客戶(hù)端(比如:Claude 或早期的 GPT-4 集成)不同,它們?cè)诮换ブ氨仨殞?shí)例化所有已注冊(cè)的 MCP 服務(wù)器,而 RAG-MCP 僅激活所選的 MCP,降低了啟動(dòng)成本,并能夠在沒(méi)有基礎(chǔ)設(shè)施瓶頸的情況下支持任意大的工具集。
- 多輪穩(wěn)健性:在跨越多個(gè)輪次的對(duì)話(huà)中,大語(yǔ)言模型無(wú)需重新納入所有 MCP;基于檢索增強(qiáng)生成的 RAG-MCP 檢索器可動(dòng)態(tài)處理工具調(diào)用,為特定任務(wù)推理騰出上下文空間。
3.2、新架構(gòu)設(shè)計(jì)三步流程示意圖
RAG-MCP 的操作可以概括為以下三個(gè)核心步驟,架構(gòu)圖如下圖所示:
第一、任務(wù)輸入 → 檢索器
用戶(hù)的自然語(yǔ)言任務(wù)被編碼并提交給檢索器。
第二、檢索器 → MCP 選擇與驗(yàn)證
檢索器搜索 MCP模式 的向量索引,根據(jù)語(yǔ)義相似度對(duì)候選對(duì)象進(jìn)行排序,并可選擇通過(guò)合成示例對(duì)每個(gè)候選對(duì)象進(jìn)行測(cè)試。
第三、使用選定的 MCP 執(zhí)行大語(yǔ)言模型
大語(yǔ)言模型僅接收選定的 MCP 模式和參數(shù),并通過(guò)函數(shù)調(diào)用接口執(zhí)行任務(wù)。
通過(guò)將工具發(fā)現(xiàn)與生成解耦,RAG-MCP 確保大語(yǔ)言模型能夠擴(kuò)展到數(shù)百或數(shù)千個(gè) MCP,而不會(huì)出現(xiàn)提示膨脹或決策疲勞。這類(lèi)似于 RAG 系統(tǒng)通過(guò)僅檢索相關(guān)段落來(lái)避免用整個(gè)語(yǔ)料庫(kù)使大語(yǔ)言模型不堪重負(fù)。
4、RAG-MCP 新架構(gòu)測(cè)試驗(yàn)證
4.1、實(shí)驗(yàn)設(shè)置
我們?cè)?MCPBench 的網(wǎng)絡(luò)搜索子集上進(jìn)行了評(píng)估,將其作為測(cè)試平臺(tái)。每個(gè)基線(xiàn)方法進(jìn)行20次獨(dú)立試驗(yàn),若產(chǎn)生超過(guò)10個(gè)正確答案,則認(rèn)為該方法成功。每次試驗(yàn)中,大模型最多與 MCP 服務(wù)器進(jìn)行10輪交互以得出最終響應(yīng)。我們使用 Deepseek-v3 作為評(píng)估器,確保實(shí)驗(yàn)在可控網(wǎng)絡(luò)環(huán)境下進(jìn)行,避免因連接問(wèn)題導(dǎo)致請(qǐng)求失敗。所有試驗(yàn)由 qwen-max-0125 驅(qū)動(dòng)。
4.2、基線(xiàn)方法
實(shí)驗(yàn)評(píng)估了以下三種選擇策略:
- 空白條件(Blank):一次性向大語(yǔ)言模型提供所有 MCP 描述,讓其選擇正確的一個(gè)。
- 實(shí)際匹配(Actual Match):通過(guò)關(guān)鍵詞匹配預(yù)過(guò)濾候選池,然后提示詞大模型。
- RAG-MCP:使用向量索引檢索器對(duì)所有 MCP 進(jìn)行語(yǔ)義排序,僅將排名最高的候選者注入大模型提示詞。
4.3、評(píng)估指標(biāo)
我們使用以下三個(gè)關(guān)鍵指標(biāo)評(píng)估性能:
- 準(zhǔn)確率(%):大模型選擇正確 MCP 的試驗(yàn)百分比。
- 平均提示詞元數(shù):提示詞所消耗的詞元平均數(shù)量。
- 平均完成詞元數(shù):大模型生成的最終輸出詞元平均數(shù)量。
最終答案的正確性由基于 Llama 的驗(yàn)證器自動(dòng)判斷。
4.4、結(jié)果
下表總結(jié)了基線(xiàn)方法的性能,結(jié)果顯示 RAG-MCP 的有效性:
- 準(zhǔn)確率:RAG-MCP 達(dá)到43.13%,顯著高于實(shí)際匹配(18.20%)和空白條件(13.62%)。
- 平均提示詞元數(shù):RAG-MCP為 1084,遠(yuǎn)低于空白條件(2133.84)。
- 平均完成詞元數(shù):RAG-MCP 為 78.14,略高于實(shí)際匹配(23.60),但與更高的準(zhǔn)確率和任務(wù)成功率相關(guān)。
RAG-MCP 新架構(gòu)設(shè)計(jì)的出色表現(xiàn)源于以下幾點(diǎn):
- 聚焦上下文:僅注入最相關(guān)的 MCP 模式,避免了無(wú)關(guān)工具描述的干擾,使決策更清晰。
- 提示詞效率:大幅減少提示令牌,讓大模型有更多空間用于任務(wù)推理,而非處理無(wú)關(guān)元數(shù)據(jù)。
- 平衡生成:雖然完成令牌略有增加,但這反映了更全面的推理和驗(yàn)證,與更高的準(zhǔn)確性相匹配。
總體而言,這些發(fā)現(xiàn)表明,檢索增強(qiáng)的 MCP 選擇有效控制了提示詞膨脹,提升了大語(yǔ)言模型(LLM)的工具選擇可靠性,使 RAG-MCP 成為可擴(kuò)展外部工具集成的理想方案。
本文轉(zhuǎn)載自???玄姐聊AGI?? 作者:玄姐
