MCP 和 A2A 架構(gòu)設(shè)計(jì)剖析 原創(chuàng)
Anthropic 推出的 MCP(模型上下文協(xié)議)取得了成功,這顯然激發(fā)了 AI 行業(yè)里的其他參與者,大家都想來(lái)定義一些開放協(xié)議,好用在 AI Agent 系統(tǒng)(Agentic Systems)的集成里。
上周周,谷歌公開發(fā)布了一個(gè)叫 A2A(Agent2Agent)的開放協(xié)議,目標(biāo)是規(guī)范多 AI Agent 系統(tǒng)通信的實(shí)現(xiàn)方式。很多人(可能有點(diǎn)誤解)說(shuō)這兩種協(xié)議是競(jìng)爭(zhēng)關(guān)系,而不是互補(bǔ)關(guān)系。
谷歌公開說(shuō) A2A 和 MCP 是互補(bǔ)的。這話挺合理的。但會(huì)不會(huì)有隱藏的長(zhǎng)期競(jìng)爭(zhēng)目標(biāo)呢?我們會(huì)不會(huì)很快看到協(xié)議之間的競(jìng)爭(zhēng)開始呢?
很多人都問我,我覺得這兩種協(xié)議未來(lái)會(huì)不會(huì)變得有競(jìng)爭(zhēng)?本文從架構(gòu)設(shè)計(jì)來(lái)剖析 MCP vs A2A 是朋友有還是對(duì)手?
本文重點(diǎn)剖析:
- A2A 架構(gòu)設(shè)計(jì)
- MCP 架構(gòu)設(shè)計(jì)
- A2A 如何與 MCP 互補(bǔ),反之亦然?
- 長(zhǎng)期來(lái)看,A2A 是否會(huì)在長(zhǎng)期內(nèi)取代 MCP?
下文詳細(xì)剖析之。
1、A2A 架構(gòu)設(shè)計(jì)
第一、為什么會(huì)有 A2A?
現(xiàn)在越來(lái)越清楚,未來(lái)的 AI Agent 系統(tǒng)(Agentic Systems)將是多 AI Agent 的。而且,這些 AI Agent 會(huì)在彼此之間遠(yuǎn)程協(xié)作,每個(gè) AI Agent 都可能使用不同的 AI Agent 框架(比如:LangGraph、AutoGen、CrewAI、Agent Development Kit 等)來(lái)實(shí)現(xiàn)。
這里面有3個(gè)固有的問題:
1.不同框架實(shí)現(xiàn)的 AI Agent 系統(tǒng)之間,不支持系統(tǒng)狀態(tài)的轉(zhuǎn)移和交換。
2.遠(yuǎn)程 AI Agent 之間也無(wú)法轉(zhuǎn)移系統(tǒng)狀態(tài)。
3.離線的 AI Agent 不共享工具、上下文和內(nèi)存(包括系統(tǒng)狀態(tài))。
第二、A2A 解決方案
A2A 是一個(gè)開放協(xié)議,它為 AI Agent 之間提供了一種標(biāo)準(zhǔn)方式,無(wú)論底層開發(fā)框架或供應(yīng)商如何,都可以進(jìn)行協(xié)作。

根據(jù)谷歌的官方文檔: A2A 協(xié)議促進(jìn)了“客戶端”和“遠(yuǎn)程” AI Agent 之間的通信。
簡(jiǎn)單來(lái)說(shuō),“客戶端” AI Agent 創(chuàng)建任務(wù)并與“遠(yuǎn)程” AI Agent 溝通,期望執(zhí)行某些工作或返回?cái)?shù)據(jù)。
第三、A2A 架構(gòu)設(shè)計(jì)
1.能力發(fā)現(xiàn):所有實(shí)現(xiàn) A2A 的 AI Agent 都通過(guò)“Agent Card”公開其能力目錄。這有助于其他 AI Agent 發(fā)現(xiàn)給定 AI Agent 實(shí)現(xiàn)的潛在有用功能。
2.任務(wù)管理:通信協(xié)議,時(shí)代短期和長(zhǎng)期任務(wù)變得更容易。它幫助通信中的 AI Agent 保持同步,直到請(qǐng)求的任務(wù)完成并返回答案。這很重要,因?yàn)橛行?AI Agent 可能需要很長(zhǎng)時(shí)間來(lái)執(zhí)行工作,而且目前沒有統(tǒng)一標(biāo)準(zhǔn)如何等待這種情況發(fā)生。
3.協(xié)作:AI Agent 可以相互發(fā)送消息以傳達(dá)上下文、回復(fù)、工件或用戶指令。
4.用戶體驗(yàn)協(xié)商:這是一個(gè)很有趣的功能。它允許協(xié)商數(shù)據(jù)返回的格式,以符合用戶界面的期望(比如:圖像、視頻、文本等)。
通過(guò) A2A 公開的 AI Agent 的發(fā)現(xiàn)是一個(gè)重要話題。谷歌建議使用統(tǒng)一的位置來(lái)存儲(chǔ)組織的“Agent Card”。
比如:
https://<DOMAIN>/<agreed-path>/agent.json這并不意外,因?yàn)楣雀鑼⑻幱谧罴盐恢?,能夠索引全球所有可用?AI Agent,可能創(chuàng)建一個(gè)類似于當(dāng)前搜索引擎索引的全球 AI Agent 目錄。
我喜歡 A2A 強(qiáng)調(diào)無(wú)需重新發(fā)明輪子,并且建立在現(xiàn)有標(biāo)準(zhǔn)之上:
1.該協(xié)議建立在現(xiàn)有、流行的標(biāo)準(zhǔn)之上,包括:HTTP、SSE、JSON-RPC,這意味著它更容易與企業(yè)日常使用的現(xiàn)有 IT 堆棧集成。
2.默認(rèn)安全 - A2A 旨在支持企業(yè)級(jí)身份驗(yàn)證和授權(quán),與 OpenAPI 的身份驗(yàn)證方案相當(dāng)。
2、MCP 架構(gòu)設(shè)計(jì)
MCP(模型上下文協(xié)議)是由 Anthropic 定義的一個(gè)開放協(xié)議,標(biāo)準(zhǔn)化應(yīng)用程序如何為大語(yǔ)言模型(LLM)提供上下文。更具體地說(shuō),它試圖標(biāo)準(zhǔn)化基于 LLM 的應(yīng)用程序與其他環(huán)境集成的協(xié)議。
在 AI Agent 系統(tǒng)(Agentic Systems)中,上下文可以通過(guò)多種方式提供:
1.外部數(shù)據(jù):這是長(zhǎng)期記憶的一部分。
2.工具:系統(tǒng)與環(huán)境交互的能力。
3.動(dòng)態(tài)提示詞:可以作為系統(tǒng)提示詞(System Prompt)的一部分注入。
第一、為什么要標(biāo)準(zhǔn)化?
目前,AI Agent 應(yīng)用的開發(fā)流程很混亂:
1.有許多 AI Agent 框架存在細(xì)微差異。雖然看到生態(tài)系統(tǒng)蓬勃發(fā)展令人鼓舞,但這些細(xì)微差異很少能帶來(lái)足夠的價(jià)值,但可能會(huì)顯著改變你的代碼編寫方式。
2.與外部數(shù)據(jù)源的集成通常是臨時(shí)實(shí)現(xiàn)的,并且使用不同的協(xié)議,即使在組織內(nèi)部也是如此。對(duì)于不同公司來(lái)說(shuō),這顯然是如此。
3.工具在代碼庫(kù)中以略微不同的方式定義。如何將工具附加到增強(qiáng)型 LLM 上也是不同的。
目標(biāo)是提高我們創(chuàng)新 AI Agent 應(yīng)用的速度、安全性以及將相關(guān)數(shù)據(jù)帶入上下文的便利性。
第二、MCP 架構(gòu)設(shè)計(jì)

1.MCP Host:使用 LLM 為核心并希望通過(guò) MCP 訪問數(shù)據(jù)的程序。
2.MCP Client:與 MCP Server 保持1:1連接的客戶端。
3.MCP Server:每個(gè) MCP Server 都通過(guò)標(biāo)準(zhǔn)化的模型上下文協(xié)議公開特定功能的輕量級(jí)程序。
4.Local Data Sources:你計(jì)算機(jī)上的文件、數(shù)據(jù)庫(kù)和服務(wù),MCP Server 可以安全訪問。
5.Remote Data Sources:通過(guò)互聯(lián)網(wǎng)可用的外部系統(tǒng)(比如:通過(guò) API),MCP Server 可以連接到這些系統(tǒng)。
第三、通過(guò) MCP 分離控制責(zé)任
MCP Server 公開三個(gè)主要元素(Prompts、Resoures、Tools),這些元素是有意設(shè)計(jì)的,以幫助實(shí)現(xiàn)特定的控制分離。

1.Prompts 提示詞被設(shè)計(jì)為用戶控制的。后端的程序員可以公開特定的提示詞(適用于與后端服務(wù)公開的數(shù)據(jù)交互),這些提示詞可以注入到使用 LLM 的應(yīng)用程序中,并暴露給給定應(yīng)用程序的用戶。
2.Resoures 資源被設(shè)計(jì)為應(yīng)用程序控制的。Resources 資源是任何可以被利用 LLM 構(gòu)建的應(yīng)用程序使用的數(shù)據(jù)(文本或二進(jìn)制)。應(yīng)用程序的程序員(通常是 AI 應(yīng)用開發(fā)工程師)負(fù)責(zé)將這些信息編碼到應(yīng)用程序中。通常,這里沒有自動(dòng)化,LLM 不參與此選擇。
3.Tools 工具被設(shè)計(jì)為大模型控制的。如果我們賦予應(yīng)用程序如何與環(huán)境交互的代理權(quán),我們使用 Tools 工具來(lái)實(shí)現(xiàn)這一點(diǎn)。MCP Server 公開一個(gè)端點(diǎn),可以列出所有可用 Tools 工具及其描述和所需參數(shù),應(yīng)用程序可以將此列表傳遞給 LLM,以便它決定哪些 Tools 工具適用于手頭的任務(wù)以及如何調(diào)用它們。
3、A2A + MCP 協(xié)同架構(gòu)設(shè)計(jì)
第一、A2A + MCP 協(xié)同架構(gòu)設(shè)計(jì)
谷歌說(shuō)得很清楚:AI Agent 應(yīng)用需要 A2A 和 MCP。我們推薦用 MCP 來(lái)處理工具,用 A2A 來(lái)處理 AI Agents。
這話啥意思呢?我們來(lái)看看一個(gè)涉及多個(gè) AI Agent 系統(tǒng)架構(gòu)。

MCP 里的組件:
1.MCP Host:這里有意思了,和 A2A 結(jié)合后,MCP Server 就是 AI Agent。
2.MCP Client。
3.MCP Server。
4.Local Data Sources。
5.Remote Data Sources。
A2A 這邊:
6.AI Agent(MCP Host)會(huì)通過(guò) A2A 協(xié)議來(lái)實(shí)現(xiàn)和通信,這個(gè)協(xié)議能實(shí)現(xiàn):
a.安全協(xié)作:MCP 沒有身份驗(yàn)證功能。[更新:最近 MCP 在身份驗(yàn)證方面有了很多改進(jìn)。
b.任務(wù)和狀態(tài)管理。
c.用戶體驗(yàn)協(xié)商。
d.能力發(fā)現(xiàn):和MCP工具類似。
谷歌建議,MCP 主要用于把傳統(tǒng)的數(shù)據(jù)系統(tǒng)(MCP Resources)和 API(MCP Tools)跟基于 LLM 的應(yīng)用整合起來(lái),而 A2A 則負(fù)責(zé) AI Agent 之間的通信。
我確實(shí)覺得,往后發(fā)展,大家會(huì)越來(lái)越傾向于把平臺(tái)暴露成 AI Agent,而不是 MCP Server,所以 MCP 在第5點(diǎn)的重要性會(huì)逐漸降低。
第二、通過(guò) MCP 進(jìn)行 AI Agent 發(fā)現(xiàn)
谷歌甚至建議通過(guò) MCP Server Resources 來(lái)暴露 A2A AI Agent。

1.網(wǎng)格(Mesh)中的每個(gè) AI Agent 都可以通過(guò) MCP Client 連接到一個(gè)專門的 MCP Server,并瀏覽 Resources 目錄來(lái)發(fā)現(xiàn)其他可用的 AI Agent。建議通過(guò)這些 MCP Resources 來(lái)暴露 Agent Cards。
2.發(fā)現(xiàn)之后,AI Agent 之間會(huì)繼續(xù)利用 A2A 協(xié)議進(jìn)行通信。
話說(shuō)回來(lái),如果我們朝著通過(guò)全球索引進(jìn)行 AI Agent 發(fā)現(xiàn)的方向發(fā)展,MCP 在這里的重要性也會(huì)降低,甚至可能會(huì)消失。
4、長(zhǎng)期來(lái)看,A2A 會(huì)不會(huì)取代 MCP?
第一、MCP 會(huì)不會(huì)逐漸變得不重要?
其實(shí),一直以來(lái),人們都在尋找一種方法,能讓大量的 AI Agent 之間互相連接,還能和傳統(tǒng)的系統(tǒng)連接。之前有人提到過(guò)無(wú)頭瀏覽器(headless browsers),但現(xiàn)在看來(lái),開放的通信協(xié)議可能才是未來(lái)的方向。我覺得,這也是為什么有人說(shuō) MCP 是“新的 HTTP 時(shí)刻”(雖然可能有點(diǎn)夸張)。
以下的想法是基于一些假設(shè)的:
- 開放的通信協(xié)議會(huì)把新世界的 AI Agent 整合在一起。
- 成為領(lǐng)先的協(xié)議是有好處的。
- 這兩種協(xié)議都會(huì)繼續(xù)發(fā)展,可能會(huì)擴(kuò)大它們的責(zé)任范圍。
第二、MCP 和 A2A 有一些相似之處
在 AI Agent 協(xié)議方面,兩者都有明顯的相似性,用戶可以選擇多種方式來(lái)構(gòu)建他們的 AI Agent 應(yīng)用,并將它們展示給世界。
隨著 MCP 的迅速流行,公司把 MCP Server 作為他們產(chǎn)品的一部分變得很常見,這樣開發(fā)者就可以輕松地把這些平臺(tái)的內(nèi)容整合到他們自己的基于 LLM 的應(yīng)用中。
然而,MCP 在推廣過(guò)程中遇到了一些問題。
- 這個(gè)協(xié)議最大的缺點(diǎn)之一就是缺乏安全性和身份驗(yàn)證。如果你想安全地展示一個(gè)遠(yuǎn)程的 MCP Server,你需要在基本實(shí)現(xiàn)上做一些調(diào)整。
- Tools 工具可以描述任何東西,包括其他 AI Agent。不幸的是,MCP 沒有實(shí)現(xiàn)任何可以讓 AI Agent 通過(guò)工具進(jìn)行適當(dāng)通信的機(jī)制(比如狀態(tài)/上下文交換、長(zhǎng)期任務(wù)支持等)。
這可能是谷歌通過(guò) A2A 進(jìn)入?yún)f(xié)議競(jìng)爭(zhēng)的一個(gè)切入點(diǎn),因?yàn)樗鉀Q了上述問題。
我總覺得 Anthropic 對(duì) MCP 的規(guī)劃比現(xiàn)在看到的要大,包括把多個(gè) AI Agent 連接在一起?,F(xiàn)在,A2A 的出現(xiàn)可能已經(jīng)關(guān)上了向這個(gè)方向發(fā)展的大門。
從長(zhǎng)遠(yuǎn)來(lái)看,AI Agent 的世界會(huì)是什么樣子呢?
- 公司會(huì)把他們的數(shù)據(jù)資產(chǎn)暴露給 AI Agent 使用。
- 公司會(huì)暴露可以返回?cái)?shù)據(jù)或執(zhí)行操作的 AI Agent。
- 公司本身就是可以和其他 AI Agent 互動(dòng)的 AI Agent。
我傾向于最后一種情況。
如果這個(gè)假設(shè)成立,那么真正有權(quán)力的是控制遠(yuǎn)程 AI Agent 通信協(xié)議的那個(gè)協(xié)議。
即使在短期內(nèi),假設(shè)新出現(xiàn)的公司默認(rèn)會(huì)選擇第二種方式,如果他們選擇通過(guò) AI Agent 來(lái)暴露數(shù)據(jù),那么 A2A 顯然是贏家。

說(shuō)了這么多,MCP 會(huì)不會(huì)繼續(xù)作為連接新型應(yīng)用和傳統(tǒng)系統(tǒng)的協(xié)議,而一旦 AI Agent 占據(jù)主導(dǎo)地位,MCP 就會(huì)變得無(wú)關(guān)緊要呢?誰(shuí)知道呢,讓我們拭目以待。
但如果真有那么一天,猜猜我在行業(yè)里會(huì)支持誰(shuí)呢? :)
第三、總結(jié)一下
我們正處在一個(gè)激動(dòng)人心的時(shí)代。新型 AI Agent 應(yīng)用的大規(guī)模連接方式正在我們眼前被定義。
A2A 雖然是新來(lái)者,但它很快就在 AI Agent 通信領(lǐng)域嶄露頭角。雖然 MCP 為 LLM 如何整合上下文帶來(lái)了結(jié)構(gòu),但 A2A 正在解決 MCP 所缺乏的東西:安全性、狀態(tài)管理和實(shí)時(shí)協(xié)作。A2A 會(huì)不會(huì)取代 MCP?誰(shuí)知道呢。
盡管官方立場(chǎng)是這兩種協(xié)議解決的是完全不同的問題,但它們之間可能存在潛在的重疊,而且可以預(yù)見這些協(xié)議的范圍也會(huì)擴(kuò)大。
如果未來(lái)是 AI Agent 的天下,公司開始暴露 AI Agent 而不僅僅是工具或數(shù)據(jù),那么能夠?qū)崿F(xiàn)無(wú)縫 AI Agent 互動(dòng)的協(xié)議可能就是贏家。現(xiàn)在看來(lái),A2A 似乎正在做出正確的選擇。
本文轉(zhuǎn)載自公眾號(hào)玄姐聊AGI 作者:玄姐

















