一、為何會出現MCP和A2A
????????協議是非常重要的東西,只有大家都遵循統一的協議,整體生態才好發展,正如有了HTML,互聯網才快速發展,有了OpenAPI, API才會快速發展。
????????Agent目前是發展最快的領域,從最初的簡單,本地應用,開始向互聯發展;人工智能技術的快速發展催生了智能體(Agent)的廣泛應用,但系統間的協作障礙逐漸顯現。模型無法直接訪問實時數據、工具調用標準不統一、多Agent協作缺乏規范等問題,成為制約AI規模化落地的核心瓶頸。這種情況下,智能體(Agent)之間的協作與通信是實現復雜任務的關鍵。正是在這樣的背景下,兩個關鍵協議橫空出世:谷歌主導的A2A(Agent-to-Agent)協議和Anthropic推出的MCP(Model Context Protocol)。由此,MCP(模型上下文協議)、和 A2A(Agent到Agent協議)相繼成為支持 AI Agent通信和協作的重要協議和框架。二者協議各有獨特的設計和目標,旨在增強AI Agent能力,都反映了AI Agent從單一模型向多Agent協作發展的趨勢。所以,MCP,A2A這樣的協議就顯得非常重要。這兩個協議不是競爭關系,更像是構建未來AI生態系統的互補基石。
二、什么是 A2A 與 MCP
????????MCP是由Anthropic提出并于2024年11月開源的通信協議,旨在標準化大型語言模型與外部數據源和工具的交互方式,為LLM提供上下文和工具支持。在MCP協議,一些專業工具、軟件、系統都可以向大模型提供服務支持,這樣用戶在大模型交互的時候,就能支持更豐富的能力專業能力。
????????A2A也是一個開源通信協議,由谷歌推出,旨在為不同系統和平臺中的智能體提供標準化的交互方式。智能體是能夠執行特定任務的AI實體,A2A確保這些智能體通過一致的標準進行通信和協作,實現跨平臺協同工作。A2A的目標是使多個AI Agent能夠共同完成任務,而不直接分享它們的內部記憶、思維或工具。
三、什么是 MCP
????????MCP(Model Context Protocol,模型上下文協議)由Anthropic于2024年11月推出,是一套開放協議標準,旨在規范AI模型與外部數據源、工具之間的交互方式。它通過標準化接口,實現AI模型與外部資源(如數據庫、API、文件系統等)的無縫集成。MCP的設計以模型為中心,將互聯網視為上下文和工具的來源,適合當前AI模型(尤其是大型語言模型)訪問互聯網資源的需求。可以讓AI模型像使用USB設備一樣方便地調用外部工具,因此可以被視為AI系統的“USB接口”。
????????其核心目標是解決以下問題:
????????????????數據孤島:模型無法直接訪問實時數據或本地資源;
????????????????集成復雜性:為每個工具編寫獨立接口導致開發成本高;
????????????????生態碎片化:不同平臺的工具調用機制缺乏統一標準;
????????????????安全隱患:缺乏標準化的訪問控制機制。
????????基本組成(MCP采用客戶端-服務器架構):
????????????????MCP Host:運行 MCP Client 的宿主環境,可能是 Claude 桌面端、IDE、企業 Copilot 系統等。
????????????????MCP Client:代表模型一側發起任務請求的客戶端 SDK,封裝成標準協議消息發送給 MCP Server。
????????????????MCP Server:暴露功能或數據接口的服務提供者,可是本地數據庫、文件系統,也可以是遠程 API。
????????????????數據源或遠程服務:MCP Server 后端連接的數據或服務。
????????通信協議:基于 JSON-RPC 2.0,使用 WebSocket、本地 socket、HTTP 等方式作為承載層。
????????會話管理:雖然 JSON-RPC 是無狀態協議,MCP 在其基礎上增加了有狀態會話機制,支持多輪交互。
????????能力協商:客戶端和服務器在建立連接后,會互換所支持的能力與版本,確保兼容性。
????????MCP 協議的幾個核心能力:
????????1. Resources(資源):表示模型可以讀取的數據,如:本地文件(markdown, code, PDF 等);數據庫查詢結果;實時日志流;Server 端根據 query 參數,返回結構化數據或內容片段,模型據此推理。
????????2. Prompts(提示):Server 提供特定場景下可復用的提示模版,例如:提交 Bug 的規范格式;提醒語句的生成模版;模型根據 prompt 模版動態構建完整 prompt,提升上下文一致性與效果。
????????3. Tools(工具):Server 以函數形式暴露一組可調用方法,模型可以查看工具描述、參數定義,并構造調用請求;輸入/輸出均為結構化 JSON;類似 OpenAI 的 function calling,但與模型 API 解耦,工具只暴露于 MCP Server,而非模型服務端。
????????4. Sampling(采樣:反向調用模型): Sampling 是客戶端(Client)提供給服務器(Server)的附加能力;它允許服務器反向請求客戶端執行一次 LLM 補全,然后把生成結果回傳給服務器本身。這使服務器可在自身邏輯里嵌套 LLM 調用(例如讓模型為返回的數據做摘要、分類或生成代碼),從而形成遞歸式、多代理協作。由于服務器可觸發模型生成,規范要求Sampling應始終有人類在環(human?in?the?loop),客戶端應提供拒絕或中止采樣請求的能力。
????????5. Roots(限定服務器可操作范圍的“根路徑”):Roots是客戶端提供給服務器的 URI 列表,用于聲明服務器可操作的資源邊界;Roots 只是“指導信息(guidance, not enforcement)”,真正的約束仍需服務器端遵守;但它為多源資源接入提供了清晰的作用域模型,便于權限審核與 UI 呈現。典型 root 可以是文件系統目錄、Git 倉庫路徑或 REST API 根 URL。用途:最小暴露面:服務器只應在這些 root 下讀取/寫入,避免誤操作其他文件或泄露數據;動態更新:客戶端可在會話中實時添加、移除或變更 roots,服務器會通過roots/listchanged_ 通知獲知。
????????MCP 應用場景示例:
????????1. 開發工具集成:在IDE中通過自然語言查詢數據庫、調用部署工具,開發工具集成,在IDE中通過自然語言查詢數據庫、調用部署工具。
????????2. 自定義AI工作流:通過MCP,用戶可以將AI助手與外部數據源和工具連接,構建個性化的AI工作流。
????????3. 企業級自動化應用:在企業環境中,MCP可以連接ERP、CRM等系統,構建智能客服系統、自動化辦公流程等,實現流程自動化,提高企業的運營效率。
????????4. 本地數據處理:在隱私保護前提下分析用戶設備內的文件。
????????5. 以“模型查詢某用戶的數據庫信息”為例演示流程:
? ? ? ? 5.1. 注冊能力:Server 啟動并聲明提供query_user_info工具,說明其參數為 user_id,返回結構為 JSON。
? ? ? ? 5.2. 能力協商:模型所在應用(Client)建立連接,獲得工具描述。
? ? ? ? 5.3. 模型調用:模型識別到缺少用戶信息,于是發起 Tool Call 請求:json{"method":"query_user_info","params":{"user_id":12345}}
? ? ? ? 5.4. Server 執行:MCP Server 查詢數據庫,返回:json{"result":{"name":"小明","level":3,"org":"杭州分部"}}
? ? ? ? 5.5. 模型繼續生成回答:基于新獲得的信息,回答“該用戶來自哪個部門?”等問題。
????????目前 MCP 已成為行業重點推進的通用標準,生態擴展迅速:官方 SDK 提供 Python、TypeScript、Java、C# 等語言支持;如 Google Drive, Slack, GitHub, Postgres 等接口已提供標準 MCP Server 實現預構建服務器;mcp-python-sdk 和 mcp-typescript-sdk 等開源工具鏈,開源集成如 Dify、LangChain 社區已提供插件;國內也已有初步生態實踐:如阿里百煉推出了 MCP 工具市場 (https://bailian.console.aliyun.com/?tab=app#/mcp-manage),支持企業級私有 Server 接入。
四、什么是 A2A
????????2025年4月9日,谷歌在Google Cloud Next 25大會上推出Agent2Agent 協議(A2A),這是一項全新的開放標準,旨在讓AI智能體能夠相互通信。此前,Anthropic的模型上下文協議(MCP) 為智能體提供了一種結構化的工具使用方式,而A2A則為智能體提供了一種相互協作的方式,就像是給AI智能體們制定了一套“通用社交禮儀”和“標準溝通語言”,讓它們可以互相理解、協作,共同完成復雜任務。A2A的推出,也反映了行業對Agent互操作性的迫切需求。不僅限于技術層面,還涉及企業應用的商業價值。
????????在A2A協議出現之前,AI智能體之間很難直接對話和協作,必須依賴開發者定制的接口。這就像是每個國家都有自己的語言和規矩,想要互相溝通、做生意、交換情報非常困難。A2A協議的出現,解決了這個“智能體孤島”問題,讓不同來源、不同技術的AI智能體能夠相互溝通、安全地交換信息,并協同執行跨企業平臺或應用的復雜任務。該協議由谷歌聯合50余家科技企業(包括Salesforce、SAP、埃森哲等)共同推動,目標就是解決AI生態中“各自為戰”的痛點:打破生態孤島,解決多Agent協作的協議不兼容問題;支持長時任務,處理耗時數小時至數天的復雜流程;模態無關性,兼容文本、音頻、視頻等多模態交互。
????????A2A基于HTTP、SSE(Server-Sent Events)和JSON-RPC構建,包含以下核心模塊:
????????能力發現(Capability Discovery):通過Agent Card(JSON元數據)聲明Agent能力;
????????任務管理(Task Management):以任務為單位管理多輪交互;
????????協作機制(Collaboration):支持Agent間消息傳遞與狀態同步;
????????用戶體驗協商:根據終端設備動態調整內容呈現方式。
????????典型交互流程包括:客戶端Agent通過HTTP GET發現遠程Agent能力;通過SSE建立持久連接并發送任務請求;遠程Agent返回包含文本、表單、流媒體等內容的Message對象;任務完成后生成Artifact(如文件、結構化數據)。應用場景示例:
????????1. 跨系統流程自動化:如招聘場景中,協調簡歷解析、面試安排、背調等Agent;
????????2. 供應鏈管理優化:連接庫存管理、物流調度、需求預測等Agent。A2A可以協調不同企業的智能體,優化供應鏈流程。例如,一個物流智能體可以與一個倉儲智能體協作,實時更新貨物狀態。
????????3. 客戶關系管理:語音助手、工單系統、知識庫Agent的協同響應。在跨平臺客戶管理中,A2A可以實現數據共享和協作。例如一個電商平臺的智能客服可以與一個社交媒體平臺的智能客服協作,提供更全面的客戶支持。
????????4. 醫療健康:A2A可以協調不同醫療機構的智能體,實現醫療數據的共享和協作。
????????A2A與MCP的功能很相似,但也有著不同。A2A側重智能體之間的協作溝通,而MCP側重智能體獲取外部工具與數據。兩者可以視為互補的層次 。Google在發布A2A時也明確提到:“A2A是一個開放協議,與Anthropic的MCP互為補充:MCP為智能體提供有用的工具和上下文,而A2A則讓不同智能體能夠協同工作” 。例如,在一個汽車維修店的示例中,MCP負責連接單個維修機器人智能體與它使用的傳感器、機械臂等“工具”(結構化動作指令),而A2A則讓不同機器人和客服代理彼此對話協商,共同完成復雜的維修任務 。因此,兩協議并非競爭關系,而是針對不同層面的需求提供支持:MCP連接“AI與工具”,A2A連接“AI與AI”。
五、MCP和A2A解決的是AI技術棧中不同層次的問題對比
????????MCP 解決數據和工具代理的問題,A2A 解決 AI Agent 協作通信的問題。A2A 和 MCP就好比是 AI 世界的 “外交協議” 與 “萬能接口”。
????????A2A 協議并不是要取代 MCP,它們倆是好搭檔,是互補關系!一個是讓 AI 自己“兵器”使得更順手,一個是讓不同的 AI 組成“軍隊”能協同作戰。
?????????? MCP 更側重于解決單個 AI 智能體?如何使用工具和獲取外部信息?的問題 (Agent ?? Tool/Data)。
?????????? A2A 則專注于解決?不同 AI 智能體之間如何有效協作?的問題 (Agent ?? Agent)。
????????
六、A2A + MCP 生態
????????谷歌A2A協議已獲得50+家科技企業和服務商支持,覆蓋工具層、應用層、咨詢服務三大領域:
????????典型場景:Salesforce的CRM Agent通過A2A調用Workday的HR Agent,自動同步客戶簽約與員工績效數據。
????????Anthropic的MCP協議聚焦AI與工具/數據的連接,主要支持者包括:
????????典型場景:Claude模型通過MCP訪問GitHub代碼庫,自動修復程序漏洞。
????????A2A 和 MCP 等開放協議統一標準后,有望構建全新 AI Agent 生態。眾多 AI Agent 通過 A2A 通信、借助 MCP 調動資源,用戶能像瀏覽網頁般無感使用智能體協同服務。
七、AI 協議的安全問題不可忽視
????????Google A2A要解決的是不同黑盒中Agent間的安全通信與信任問題,其中的關鍵實現是AgentCard,這個是一個公開的元數據文件,描述了AI代理的功能、技能、端點URL和身份驗證要求,可以通過URL路徑?http://{remote_agent_address}/.well-known/agent.json?訪問。AgentCard允許代理在不了解彼此的情況下,通過讀取對方的AgentCard來識別對方的能力和訪問權限,從而實現安全的協作。A2A的 Agent Auth方案可以選擇簡單的API KEY,可以選擇OAuth等企業級授權方案,在消息推送方面,也通過類似機制來確保通信數據安全性。相對MCP協議,Google A2A協議在安全功能實現與安全指引上明顯更為成熟。從攻擊視角看,由于Google A2A的使用場景主要是不同Agent間的遠程通信,大部分服務會被部署在公網,所以一旦出現漏洞,攻擊成本會更低影響也更大,這對于使用Google A2A協議的AI Agent開發者們的安全意識提出了更高要求,需要開發運維等持續關注Google A2A協議與開發者實現的安全問題。
????????由于設計之初MCP協議主要是用于AI Agent調用本地工具或調用權威廠商提供的MCP服務,同時也沒有過多考慮安全相關風險;在2025年3月25號最新發布的MCP協議規范文檔中,MCP官方正式支持了OAuth2.1授權認證,來確保MCP客戶端和MCP服務器之間的交互受到嚴格的權限管理。
????????官方強調了MCP協議本身無法實現上述這些安全原則,AI Agent與MCP服務的開發者們應該為MCP服務的安全實現負責,并給了一些粗略的安全建議:在應用程序中構建明確的同意和授權流程;提供清晰的安全隱患提示文檔;實施適當的訪問控制和數據保護;在工具集成中遵循安全最佳實踐;在功能設計中考慮隱私影響。
????????從中可以看到MCP官方已經意識到了安全的重要性,不過不同于Google,MCP官方明確了安全責任主體是開發者,未強制要求MCP服務必須開啟OAuth授權保護,也沒有在協議中提供可直接使用的權限分級管控能力與安全加固的詳細實現指引。
八、開源協議地址
(1)MCP 協議參考實現的集合
????????這個倉庫是模型上下文協議(MCP)的一系列參考實現的集合,同時包含了社區構建的服務器和額外資源的引用。此倉庫中的服務器展示了MCP的多樣性和可擴展性,演示了如何使用它來為大型語言模型(LLM)提供對工具和數據源的 安全、受控訪問。每個MCP服務器都是使用TypeScript MCP SDK或Python MCP SDK實現的。
????????
https://github.com/modelcontextprotocol/servers
https://modelcontextprotocol.io/introduction
(2)A2A協議已經完全開源,在
https://github.com/google/A2A/tree/main
https://google.github.io/A2A/
????????智能體應用需要 A2A 和 MCP 結合。建議工具使用 MCP,代理使用 A2A。
--------------------------------------
沒有自由的秩序和沒有秩序的自由,同樣具有破壞性。