多角度全面對比Google最新的A2A、ANP、MCP

Google剛剛發佈了一個新的智能體通訊協議A2A(Agent to Agent),本文會從多個方面全面對比A2A、ANP、MCP。

解決的問題

ANP和A2A都是為瞭解決智能體之間的通訊問題,都看到了MCP在智能體通訊上的侷限性:MCP更加擅長於讓模型連接工具與資源。

同時,ANP和A2A都認為自己是和MCP互補的。ANP與A2A則有很大的重合,之所以不是百分比重合,是因為看下來,A2A好像想解決的是企業內部的智能體協作,雖然官網沒有明確地說明這一點,但是我從他們的設計中能夠感受到這一點,特別是在Task的設計上。

設計原則

在設計原則上,ANP與A2A有很多相似之處:

  • 強調簡單,並且復用現有的協議。
  • 強調身份,智能體身份是ANP最核心的模組。
  • 解耦(不透明):智能體不必共享思考過程、計畫或工具。這是ANP、A2A與MCP在設計細節上最大的區別。

A2A應該也看到了MCP的複雜性,選擇使用Task來作為核心的概念,Task確實是比Tools、Resources更加抽象,更高level的概念。

MCP的Tools和Resources也是非常適合MCP的概念,但是sampling、root的設計我認為需要斟酌一下。

協議架構

ANP與A2A在協議架構上都可以看做P2P架構。MCP是典型的C/S架構,不單單是連接上,也包括協議的概念、角色設定上。

無疑P2P架構更適合智能體網路。

傳輸層

都支援HTTP,除此之外,MCP由於需要訪問本地資源,為了方便,還支援stdio。

核心概念

MCP的核心概念是Tools、Resources、Sampling、Root、Prompts。

A2A的核心概念是Task、Artifact(工件)、Message、Part。

ANP的核心概念是Interface:包括NaturalLanguageInterface(自然語言介面)、StructuredInterface(結構化介面)。

ANP是將智能體互動方式的定義下放到了Interface中。比如,Interface可以是一個預訂酒店的API,這個API直接返回結果。也可以是類似A2A的Task,在Interface中定義Task的狀態。但是在協議層,我們沒有直接顯式的定義Task以及狀態。

從不透明程度看:

  • MCP是白盒,能夠查看對方內部的檔案、工具、資源等資訊
  • A2A是灰盒,雖然不共享智能體的思考過程、計畫或工具,但是仍然定義了智能體之間的任務,以及任務的狀態等
  • ANP是黑盒,兩個智能體完全不透明,只交付最終結果。同時保留靈活性。

智能體身份

這塊的差異非常的大。

  • ANP

協議本身會攜帶身份資訊、身份驗證資訊,目前主要是使用W3C的DID方案,一個智能體可以用自己的身份資訊,與其他所有的智能體進行互動,不必在其他智能體平台申請帳號。

我們認為DID是最適合智能體的身份方案,特別是在網際網路場景下。當然也可擴展其他的身份認證方式。

  • A2A

A2A採用OpenAPI支援的認證方式,包括:HTTP 認證(如 Basic、Bearer)、API Key(可放在要求標頭、查詢參數或 Cookie)、Cookie 認證、OAuth 2.0 以及 OpenID Connect。

A2A協議本身不攜帶身份資訊,只攜帶身份驗證資訊,身份驗證資訊在帶外獲得,即在A2A協議之外通過其他的手段獲得,比如通過Oauth。

A2A的設計使其能夠充分利用企業現有的身份體系。但是,在智能體網際網路的場景中,如果要實現任意智能體之間的連接,A2A用起來會麻煩一些。

  • MCP

MCP使用Oauth做的身份驗證,也是一個中心化的方案,在連接工具和資源這個場景是適合的。

智能體描述

ANP與A2A比較類似,都是使用JSON。

A2A的智能體描述文件命名為Agent Card,本質上是一個json文件。

ANP的智能體描述則是基於JSON-LD和schema.org,這是語義網的技術,目的是提高兩個智能體對資訊理解的一致性。

智能體發現

MCP的發現規範還沒有看到,不過大機率用和ANP、A2A類似的發現機制。

ANP和A2A都是基於RFC 8615做的,相當於在一個域名的.well-known目錄下增加一個中繼資料文件,A2A的檔案名稱是agent.json,ANP的檔案名稱是agent-descriptions。

使用這個方案,都可以被搜尋引擎非常方便地抓取到。

智能體資訊組織

在智能體或者MCP server對外的資訊組織上,A2A和MCP都使用的是JSON-RPC,類似一種遠端呼叫技術。

ANP在這裡比較獨特,ANP採用的是語義網的Linked-Data技術,目標是建構一個便於AI訪問和理解的AI原生資料網路。

從這個角度看,ANP的技術路線更加靠近Web,我們認為未來的智能體網際網路是一個非常開放的網路,只有這樣才能夠讓資訊自由地流動,進而釋放AI的能力。

開源license

ANP的license是MIT,Google-A2A的license是Apache 2.0。

我仔細研究了一下,後面如果要推到大廠、參與標準化、走國際化路線,Apache 2.0 會是企業法律部門優先認可的協議。MIT 雖然簡單,但在你這種有專利潛在風險和商業化路徑的協議項目裡,容易被企業法律團隊卡住。

開源許可上ANP會修改為Apache 2.0。

趨勢

雖然說A2A號稱與MCP是互補的,但是在閱讀文件的過程中,我隱約看到一個可能:工具Agent化,Agent工具化

現有的工具,是否可以進化成一個Agent?未來的Agent,是否也是一個工具?

如果從這個角度看,MCP和A2A,包括ANP,應該會有一定的重疊。

對行業智能體協議的影響

MCP已經成為模型連接工具與資源的事實標準,A2A短期是難以撼動的。不過對於ANP是有很大的影響的。

好的影響是,讓智能體通訊與協作被更多的人看到。之前MCP火的時候,我們去講ANP,很多人是不理解的。現在我們不用再強調智能體通訊協作的重要性了。

壞的影響是,A2A和ANP有很大部分功能是重疊的,A2A背靠Google,影響力非常大,ANP主要靠開源社區,影響力無法比。這對ANP的發展是不利的。

最後

ANP最有價值的部分,其實是社區對未來智能體網際網路的設想,社區獨特的網際網路理念(連接即權力),以及DID+語義網的技術路線。 (長山的隨筆)