MCP vs. A2A:AI開(kāi)發(fā)的兩大新星,誰(shuí)將引領(lǐng)未來(lái)? 原創(chuàng) 精華
在當(dāng)今這個(gè)科技飛速發(fā)展的時(shí)代,AI領(lǐng)域正以前所未有的速度創(chuàng)新和擴(kuò)張。新模型、新能力和新工具層出不窮,讓人應(yīng)接不暇。而在眾多新興技術(shù)中,Model Context Protocol(MCP)和Agent2Agent(A2A)無(wú)疑是兩顆耀眼的新星,它們正以開(kāi)放標(biāo)準(zhǔn)的形式,為AI開(kāi)發(fā)帶來(lái)全新的可能性。今天,就讓我們深入探討一下MCP和A2A,看看它們究竟有何魅力,以及如何為你的團(tuán)隊(duì)帶來(lái)新的機(jī)遇。
一、什么是Model Context Protocol(MCP)?
(一)MCP的誕生背景
在MCP出現(xiàn)之前,我們通常會(huì)通過(guò)一些工具(比如微軟的Semantic Kernel或LangChain)編寫(xiě)自定義代碼和連接器,將大型語(yǔ)言模型與我們自己的數(shù)據(jù)或自定義工具集結(jié)合起來(lái),從而構(gòu)建出各種AI應(yīng)用。這種做法雖然有效,但也存在一些局限性。比如,當(dāng)我們想要將新的AI功能(比如開(kāi)發(fā)者AI聊天插件或網(wǎng)絡(luò)聊天門(mén)戶)集成到現(xiàn)有系統(tǒng)中時(shí),就會(huì)發(fā)現(xiàn)這些系統(tǒng)很難與它們兼容。這就像是我們?yōu)锳I打造了一座功能強(qiáng)大的城堡,但城堡的每一扇門(mén)只能通往一個(gè)特定的地方,無(wú)法靈活地與其他地方連接。
(二)MCP的核心理念
MCP的出現(xiàn),正是為了解決這個(gè)問(wèn)題。它通過(guò)將自定義功能從聊天插件和大型語(yǔ)言模型中分離出來(lái),以一種模塊化的方式公開(kāi)這些功能,從而讓不同的AI系統(tǒng)都可以輕松地引用和使用它們。這就像是把城堡的每一扇門(mén)都變成了一個(gè)通用的接口,無(wú)論你想要通往哪里,只要找到對(duì)應(yīng)的接口,就可以輕松連接。
舉個(gè)例子,假設(shè)你正在開(kāi)發(fā)一個(gè)AI聊天機(jī)器人,它可以回答用戶關(guān)于公司內(nèi)部文檔的問(wèn)題。在傳統(tǒng)的開(kāi)發(fā)模式下,你可能需要為這個(gè)聊天機(jī)器人編寫(xiě)一套完整的代碼,將文檔檢索、問(wèn)題解析和答案生成等功能都集成在一起。但有了MCP之后,你可以將這些功能分解成一個(gè)個(gè)獨(dú)立的模塊,比如一個(gè)專(zhuān)門(mén)負(fù)責(zé)文檔檢索的模塊、一個(gè)負(fù)責(zé)問(wèn)題解析的模塊,以及一個(gè)負(fù)責(zé)答案生成的模塊。然后,你只需要在MCP服務(wù)器上配置好這些模塊,聊天機(jī)器人就可以通過(guò)MCP客戶端調(diào)用它們,從而實(shí)現(xiàn)功能的擴(kuò)展和升級(jí)。
(三)MCP服務(wù)器的構(gòu)成
MCP系統(tǒng)由MCP客戶端和MCP服務(wù)器兩部分組成。MCP客戶端通常集成在用戶使用的對(duì)話式AI界面中,它本身并不包含太多邏輯。而MCP服務(wù)器才是真正的“能力中心”,它包含了所有自定義邏輯,為AI系統(tǒng)提供額外的功能。

MCP服務(wù)器可以包含以下幾種類(lèi)型的資源:
- 工具(Tools):AI系統(tǒng)可以調(diào)用的函數(shù),用于完成特定任務(wù)。比如,一個(gè)工具可以用來(lái)從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù),另一個(gè)工具可以用來(lái)生成文本摘要。
- 資源(Resources):這些是可以被AI系統(tǒng)訪問(wèn)的文件、文檔或數(shù)據(jù)庫(kù)記錄等。比如,你可以將公司的內(nèi)部文檔庫(kù)作為資源,讓AI聊天機(jī)器人能夠從中檢索信息。
- 提示(Prompts):這些是預(yù)定義的交互模板,用于指導(dǎo)AI系統(tǒng)如何處理常見(jiàn)的交互場(chǎng)景。比如,你可以定義一個(gè)提示,告訴AI在用戶詢(xún)問(wèn)“如何使用某個(gè)功能”時(shí),應(yīng)該如何回答。
當(dāng)你創(chuàng)建一個(gè)MCP服務(wù)器時(shí),你需要定義你的服務(wù)器能夠提供哪些功能,以及如何檢索提示和資源,如何執(zhí)行指定的工具。這種靈活的方式允許你的服務(wù)器動(dòng)態(tài)地發(fā)現(xiàn)和廣告資源,因此可以根據(jù)新的文件、數(shù)據(jù)庫(kù)條目或外部API結(jié)果來(lái)更新資源。
(四)MCP的優(yōu)勢(shì)
MCP帶來(lái)的最大好處就是效率和模塊化。開(kāi)發(fā)者可以專(zhuān)注于開(kāi)發(fā)特定的功能模塊,而不是從頭到尾構(gòu)建整個(gè)AI系統(tǒng)。這就像是在一個(gè)大型的建筑工地上,不同的工人只需要專(zhuān)注于自己的任務(wù),比如砌磚、安裝門(mén)窗等,而不需要每個(gè)人都去設(shè)計(jì)和建造整個(gè)建筑。這樣一來(lái),不僅可以提高開(kāi)發(fā)效率,還可以讓AI系統(tǒng)更加靈活地適應(yīng)工具的變化和大型語(yǔ)言模型的更新。
此外,MCP還為AI系統(tǒng)的擴(kuò)展提供了極大的便利。比如,當(dāng)你開(kāi)發(fā)了一個(gè)新的AI功能時(shí),你只需要將其添加到MCP服務(wù)器上,然后其他AI系統(tǒng)就可以通過(guò)MCP客戶端輕松地調(diào)用它,而不需要對(duì)每個(gè)系統(tǒng)都進(jìn)行單獨(dú)的集成和配置。
(五)MCP的部署方式
目前,MCP服務(wù)器通常是以本地安裝的方式部署的。雖然也有遠(yuǎn)程MCP服務(wù)器的協(xié)議,但更常見(jiàn)的做法是將MCP服務(wù)器安裝和配置在本地,然后讓本地的MCP服務(wù)器根據(jù)需要調(diào)用外部資源。這樣做的好處是,可以將認(rèn)證邏輯保留在本地,而不需要在MCP客戶端層處理復(fù)雜的認(rèn)證問(wèn)題。比如,你的聊天機(jī)器人不需要知道如何與Azure的MCP服務(wù)器、GitHub的MCP服務(wù)器以及你團(tuán)隊(duì)的MCP服務(wù)器進(jìn)行認(rèn)證,而是由本地的MCP服務(wù)器來(lái)處理這些認(rèn)證問(wèn)題。
隨著MCP協(xié)議的逐漸成熟,遠(yuǎn)程MCP服務(wù)器可能會(huì)越來(lái)越受歡迎,因?yàn)樗鼈兛梢蕴峁└鼧?biāo)準(zhǔn)化的認(rèn)證過(guò)程。但目前,建議使用小型的自定義MCP服務(wù)器,這些服務(wù)器可以在本地運(yùn)行,并通過(guò)你團(tuán)隊(duì)控制的API連接到外部資源,使用你團(tuán)隊(duì)喜歡的任何認(rèn)證機(jī)制。
二、什么是Agent2Agent(A2A)?
(一)A2A的核心理念
如果說(shuō)MCP是一個(gè)“工具箱”,那么A2A就是一個(gè)“標(biāo)準(zhǔn)化的修理工”。A2A是由谷歌最近推出的一種開(kāi)放協(xié)議,它允許AI代理之間以一種標(biāo)準(zhǔn)化的方式進(jìn)行通信。與MCP專(zhuān)注于公開(kāi)模塊化功能不同,A2A更側(cè)重于提供一個(gè)標(biāo)準(zhǔn)化的協(xié)議,用于與整個(gè)AI代理進(jìn)行交互,包括它的提示、資源、工具和模型選擇。
舉個(gè)例子,假設(shè)你有一個(gè)AI代理,它可以回答關(guān)于天氣的問(wèn)題。但當(dāng)用戶問(wèn)到一個(gè)關(guān)于股票市場(chǎng)的問(wèn)題時(shí),這個(gè)AI代理可能就無(wú)能為力了。這時(shí),A2A就可以讓這個(gè)AI代理“打電話求助”,找到另一個(gè)專(zhuān)門(mén)處理股票市場(chǎng)問(wèn)題的AI代理來(lái)幫忙。這就像是在一個(gè)復(fù)雜的機(jī)械系統(tǒng)中,當(dāng)一個(gè)部件出現(xiàn)問(wèn)題時(shí),它可以自動(dòng)找到合適的維修工來(lái)解決問(wèn)題。
(二)A2A的工作方式
A2A的工作方式是通過(guò)A2A客戶端和A2A服務(wù)器架構(gòu)來(lái)實(shí)現(xiàn)的。A2A將工作表示為任務(wù),其交互由多個(gè)部分組成的消息,旨在產(chǎn)生一個(gè)或多個(gè)代表交付物的工件,這些工件將返回給調(diào)用代理。
比如,你可以創(chuàng)建一系列AI代理,并將它們連接在一起,或者創(chuàng)建一個(gè)單一的代理,它可以調(diào)用你選擇的可信供應(yīng)商提供的專(zhuān)業(yè)第三方代理。這就像是在一個(gè)大型的生態(tài)系統(tǒng)中,每個(gè)AI代理都有自己的職責(zé),當(dāng)遇到超出自己能力范圍的任務(wù)時(shí),它們可以通過(guò)A2A協(xié)議互相協(xié)作,共同完成復(fù)雜的請(qǐng)求。
(三)A2A的優(yōu)勢(shì)
A2A的最大優(yōu)勢(shì)在于它能夠支持更復(fù)雜、更動(dòng)態(tài)的AI交互場(chǎng)景。在一個(gè)快速變化的AI生態(tài)系統(tǒng)中,我們很難預(yù)測(cè)未來(lái)會(huì)出現(xiàn)哪些新的AI功能和工具。而A2A提供了一個(gè)標(biāo)準(zhǔn)化的接口,讓不同的AI代理可以輕松地集成和協(xié)作,從而適應(yīng)不斷變化的需求。
比如,在一個(gè)企業(yè)環(huán)境中,你可能需要一個(gè)AI代理來(lái)處理客戶支持問(wèn)題,另一個(gè)AI代理來(lái)處理訂單處理,還有一個(gè)AI代理來(lái)處理數(shù)據(jù)分析。通過(guò)A2A,這些AI代理可以互相協(xié)作,共同完成一個(gè)復(fù)雜的業(yè)務(wù)流程,比如處理一個(gè)客戶的投訴,從接收投訴到分析問(wèn)題,再到提出解決方案,最后通知客戶處理結(jié)果。
三、MCP與A2A:如何選擇?

(一)它們并不是相互沖突的
雖然MCP和A2A都旨在提供更模塊化的AI系統(tǒng),但它們并不是相互沖突的技術(shù)。實(shí)際上,你可以創(chuàng)建一個(gè)AI代理,它既可以使用MCP來(lái)連接一系列功能模塊,又可以使用A2A來(lái)請(qǐng)求幫助,以處理那些它自己無(wú)法完成的任務(wù)。
(二)選擇MCP的情況
如果你的團(tuán)隊(duì)想要為AI代理提供自定義功能,并且這些功能需要集成到不同的用戶界面中(比如開(kāi)發(fā)者IDE聊天機(jī)器人和網(wǎng)絡(luò)聊天門(mén)戶),那么MCP是一個(gè)不錯(cuò)的選擇。設(shè)計(jì)時(shí)考慮MCP可以為組織帶來(lái)更多的靈活性,隨著AI工具的發(fā)展和在更多地方的可用性,你可以輕松地將新的功能集成到你的系統(tǒng)中。
(三)選擇A2A的情況
如果你的團(tuán)隊(duì)想要支持復(fù)雜的交互場(chǎng)景,但又不想提供自定義解決方案,那么A2A可能更適合你。通過(guò)A2A,你可以輕松地調(diào)用其他組織提供的專(zhuān)業(yè)AI代理,從而快速實(shí)現(xiàn)復(fù)雜的功能。
另外,如果你的團(tuán)隊(duì)有一些獨(dú)特的功能或能力,想要與其他組織共享,那么A2A也可以幫助你將這些功能打包成AI代理,供其他組織在他們的AI解決方案中使用。
四、總結(jié)
MCP和A2A都是正在迅速獲得廣泛支持和流行的開(kāi)放協(xié)議,微軟最近也承諾在其未來(lái)的產(chǎn)品中支持這兩種協(xié)議。在一個(gè)快速發(fā)展的AI生態(tài)系統(tǒng)中,出現(xiàn)標(biāo)準(zhǔn)化的協(xié)議來(lái)定義AI系統(tǒng)如何連接到功能以及AI系統(tǒng)如何相互交互是非常有意義的。
MCP和A2A的出現(xiàn),不僅為AI開(kāi)發(fā)帶來(lái)了新的可能性,也為組織提供了更多的選擇和靈活性。無(wú)論你是想要構(gòu)建一個(gè)功能強(qiáng)大的AI系統(tǒng),還是想要快速集成現(xiàn)有的AI功能,MCP和A2A都可以為你提供支持。在未來(lái),隨著這些協(xié)議的不斷發(fā)展和完善,我們有理由相信,AI開(kāi)發(fā)將變得更加高效、靈活和模塊化。
本文轉(zhuǎn)載自??Halo咯咯?? 作者:基咯咯

















