MCP 實(shí)踐:基于 MCP 架構(gòu)實(shí)現(xiàn)知識(shí)庫(kù)系統(tǒng) 原創(chuàng)

本文通過(guò)一個(gè)實(shí)際案例展示如何基于 MCP(Model Context Protocol)開(kāi)發(fā)一個(gè)支持私有知識(shí)庫(kù)的 AI Agent 問(wèn)答系統(tǒng)。

1、AI Agent 問(wèn)答系統(tǒng)整體流程
AI Agent 問(wèn)答知識(shí)庫(kù)系統(tǒng)整體由構(gòu)建與檢索流程組成。

第一、知識(shí)庫(kù)構(gòu)建流程
1、文本切分
對(duì)輸入的文本進(jìn)行切分,確保切分后的文本段在保持完整性和語(yǔ)義連貫性的同時(shí),便于后續(xù)處理和檢索。
2、FAQ 提取
從文本中提取常見(jiàn)問(wèn)題及其答案(FAQ),作為知識(shí)庫(kù)的一部分,以增強(qiáng)檢索的準(zhǔn)確性和效率。
3、知識(shí)庫(kù)導(dǎo)入
將切分后的文本段和提取的 FAQ 導(dǎo)入知識(shí)庫(kù),并進(jìn)行 Embedding 處理,以便將文本轉(zhuǎn)換為向量形式,便于檢索。
第二、知識(shí)檢索(RAG)流程
1、問(wèn)題拆解
對(duì)用戶提出的問(wèn)題進(jìn)行拆解,將其分解為更小、更具體的子問(wèn)題,以提高檢索的精確度。
2、檢索策略
對(duì)每個(gè)子問(wèn)題分別進(jìn)行檢索,包括:
對(duì)文本段進(jìn)行向量檢索,以找到最相關(guān)的文本內(nèi)容。
對(duì) FAQ 進(jìn)行全文和向量混合檢索,以確保檢索結(jié)果的全面性和準(zhǔn)確性。
3、內(nèi)容篩選
對(duì)檢索結(jié)果進(jìn)行篩選,選擇與子問(wèn)題最相關(guān)的內(nèi)容,作為生成回答的參考。
第三、優(yōu)化策略
與傳統(tǒng)的 Naive RAG 相比,本流程在知識(shí)庫(kù)構(gòu)建和檢索階段進(jìn)行了以下優(yōu)化:
1、Chunk 切分優(yōu)化
改進(jìn)文本切分方法,以更好地保持文本的完整性和語(yǔ)義連貫性。
2、FAQ 提取
自動(dòng)從文本中提取 FAQ,豐富知識(shí)庫(kù)內(nèi)容,提高檢索效果。
3、Query Rewrite
對(duì)用戶問(wèn)題進(jìn)行重寫(xiě),使其更易于檢索。
4、混合檢索
結(jié)合全文和向量檢索方法,提高檢索的準(zhǔn)確性和效率。
通過(guò)這些優(yōu)化,我們的知識(shí)庫(kù)構(gòu)建和檢索流程能夠更有效地處理和響應(yīng)用戶查詢,提供更準(zhǔn)確、更全面的答案。
2、基于 MCP 的 AI Agent 知識(shí)庫(kù)架構(gòu)設(shè)計(jì)
基于 MCP 的 AI Agent 知識(shí)庫(kù)架構(gòu)設(shè)計(jì)主要分為三個(gè)核心部分:知識(shí)庫(kù)、MCP Server 以及功能實(shí)現(xiàn)模塊。每個(gè)部分在系統(tǒng)中扮演著不同的角色,共同協(xié)作以實(shí)現(xiàn)高效的知識(shí)管理和檢索功能。

第一、知識(shí)庫(kù)模塊
知識(shí)庫(kù)是系統(tǒng)的數(shù)據(jù)存儲(chǔ)中心,包含兩個(gè)主要的存儲(chǔ)組件:
- Knowledge Store:用于存儲(chǔ)和管理文本內(nèi)容。它支持向量檢索和全文檢索,以確??焖偾覝?zhǔn)確的信息檢索。
- FAQ Store:專門(mén)用于存儲(chǔ)常見(jiàn)問(wèn)題及其答案(FAQ)。同樣支持混合檢索方式,以提高檢索效率和準(zhǔn)確性。
第二、MCP Server 模塊
MCP Server 作為系統(tǒng)的操作核心,負(fù)責(zé)對(duì) Knowledge Store 和 FAQ Store 進(jìn)行讀寫(xiě)操作。它提供了四個(gè)主要的工具(Tools),用于支持不同的操作需求:
- storeKnowledge:用于將新的文本內(nèi)容導(dǎo)入 Knowledge Store。
- searchKnowledge:用于在 Knowledge Store 中檢索文本內(nèi)容。
- storeFAQ:用于將新的 FAQ 導(dǎo)入 FAQ Store。
- searchFAQ:用于在 FAQ Store 中檢索 FAQ。
第三、功能實(shí)現(xiàn)部分模塊
這一部分完全依賴于 Prompt 和 LLM(大語(yǔ)言模型)來(lái)實(shí)現(xiàn)對(duì)知識(shí)庫(kù)的操作,包括:
- 文檔導(dǎo)入:通過(guò) LLM 處理,將文檔內(nèi)容導(dǎo)入 Knowledge Store。
- 檢索:利用 LLM 的能力,對(duì) Knowledge Store 或 FAQ Store 進(jìn)行內(nèi)容檢索。
- 問(wèn)答:通過(guò) LLM 解析用戶問(wèn)題,并在知識(shí)庫(kù)中檢索相關(guān)信息以生成答案。
這種設(shè)計(jì)使得系統(tǒng)能夠靈活地處理各種知識(shí)管理和檢索任務(wù),同時(shí)保持高效的性能和準(zhǔn)確性。
3、基于 MCP 的 AI Agent 知識(shí)庫(kù)架構(gòu)實(shí)現(xiàn)
第一、開(kāi)源代碼概覽
阿里的這個(gè)項(xiàng)目代碼已全部開(kāi)源,主要分為兩個(gè)部分:
Github 地址:
??https://github.com/aliyun/alibabacloud-tablestore-mcp-server??

- 客戶端(Client):使用 Python 編寫(xiě),負(fù)責(zé)與大語(yǔ)言模型(LLM)進(jìn)行交互。它通過(guò) MCP 客戶端獲取所需的工具(Tools),并根據(jù) LLM 的反饋來(lái)調(diào)用這些工具。客戶端利用精心設(shè)計(jì)的提示(Prompt)實(shí)現(xiàn)了三個(gè)核心功能:知識(shí)庫(kù)構(gòu)建、檢索和問(wèn)答。
- 服務(wù)器端(Server):使用 Java 編寫(xiě),基于 Spring AI 框架實(shí)現(xiàn) MCP 服務(wù)器。由于底層存儲(chǔ)采用的是 Tablestore,因此主體框架是基于相關(guān)文章的代碼進(jìn)行改造。
第二、知識(shí)庫(kù)存儲(chǔ)
我們選擇 Tablestore 作為知識(shí)庫(kù)的存儲(chǔ)解決方案,原因如下:
- 簡(jiǎn)單易用:只需創(chuàng)建一個(gè)實(shí)例即可開(kāi)始使用,采用 Serverless 模式,無(wú)需管理容量和后續(xù)運(yùn)維。
- 低成本:完全按量計(jì)費(fèi),自動(dòng)根據(jù)存儲(chǔ)規(guī)模水平擴(kuò)展,最大可擴(kuò)展至PB級(jí)。雖然采用本地知識(shí)庫(kù)可以實(shí)現(xiàn)零成本,但我們實(shí)現(xiàn)的是一個(gè)企業(yè)級(jí)、可通過(guò)云共享的知識(shí)庫(kù)。
- 功能完備:支持全文、向量和標(biāo)量等檢索功能,支持混合檢索。
第三、MCP 服務(wù)器
MCP服務(wù)器實(shí)現(xiàn)了四個(gè)工具(Tools),具體注冊(cè)代碼可參考 TablestoreMcp,相關(guān)描述如下:

第四、知識(shí)庫(kù)構(gòu)建
1.對(duì)文本進(jìn)行切段并提取 FAQ


以上完全通過(guò)提示詞來(lái)完成,可根據(jù)自己的要求進(jìn)行調(diào)優(yōu)。這種方式的優(yōu)勢(shì)是切段的文本能保證完整性以及語(yǔ)義一致性,能夠比較靈活的對(duì)格式做一些處理。提取的 FAQ 很全面,對(duì)于簡(jiǎn)單問(wèn)題的問(wèn)答通過(guò)直接搜索 FAQ 是最準(zhǔn)確直接的。最大的缺點(diǎn)就是執(zhí)行比較慢并且成本較高,一次會(huì)消耗大量的 Token,不過(guò)好在是一次性的投入。
2.寫(xiě)入知識(shí)庫(kù)和 FAQ 庫(kù)

這一步也是通過(guò)提示詞來(lái)完成,基于 MCP 架構(gòu)可以非常簡(jiǎn)單的實(shí)現(xiàn)。
3.知識(shí)庫(kù)檢索

同樣這一步也是通過(guò)提示詞加 MCP 來(lái)實(shí)現(xiàn),非常簡(jiǎn)便。通過(guò)提示詞描述實(shí)現(xiàn)了一個(gè)稍微復(fù)雜點(diǎn)的檢索:先對(duì)問(wèn)題進(jìn)行拆解,拆解為更原子的子問(wèn)題;每個(gè)子問(wèn)題分別檢索知識(shí)庫(kù)和 FAQ,檢索結(jié)果匯總后篩選留下與問(wèn)題最相關(guān)的內(nèi)容;按照格式返回結(jié)果。
4.知識(shí)庫(kù)問(wèn)答
直接查看提示詞和效果。從 MCP 服務(wù)器的日志中可以看到自動(dòng)調(diào)用了知識(shí)庫(kù)和 FAQ 的檢索工具,并能根據(jù)之前導(dǎo)入的內(nèi)容進(jìn)行回答。

通過(guò)這種方式,我們實(shí)現(xiàn)了一個(gè)高效、靈活且功能完備的知識(shí)庫(kù)系統(tǒng)。
本文轉(zhuǎn)載自公眾號(hào)玄姐聊AGI 作者:玄姐
原文鏈接:??https://mp.weixin.qq.com/s/n56zgMe3FtH3pOW9k4vp2w??

















