AI領域:MCP 與 A2A 協議的關系

一、為何會出現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。

--------------------------------------

沒有自由的秩序和沒有秩序的自由,同樣具有破壞性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76765.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76765.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76765.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習訓練中的顯存溢出問題分析與優化:以UNet圖像去噪為例

最近在訓練一個基于 Tiny-UNet 的圖像去噪模型時,我遇到了經典但棘手的錯誤: RuntimeError: CUDA out of memory。本文記錄了我如何從復現、分析,到逐步優化并成功解決該問題的全過程,希望對深度學習開發者有所借鑒。 訓練數據&am…

FramePack V2版 - 支持首尾幀生成,支持LoRA,支持批量,支持50系顯卡,一個強大的AI視頻生成軟件 本地一鍵整合包下載

FramePack 是斯坦福大學主導開發的視頻生成框架,是一種用于視頻生成的下一幀(下一幀部分)預測神經網絡結構,可以逐步生成視頻。FramePack 主要開發者之一,就是業內大名鼎鼎的張呂敏大佬,AI領域的“賽博佛祖…

STM32 HAL 通用定時器延時函數

使用通用定時器TIM3,實現ms、us延時。 delay.c #include "delay.h" #include "stm32f1xx_hal.h"TIM_HandleTypeDef htim3;/*** brief 初始化定時器3用于延時* param 無* retval 無*/ void Delay_Init(void) {TIM_ClockConfigTypeDef sClock…

軟件功能測試和非功能測試有什么區別和聯系?

軟件測試是保障軟件質量的核心環節,而軟件功能測試和非功能測試作為測試領域的兩大重要組成部分,承擔著不同但又相互關聯的職責。 軟件功能測試指的是通過驗證軟件系統的各項功能是否按照需求規格說明書來正確實現,確保軟件的功能和業務流程…

使用Java調用TensorFlow與PyTorch模型:DJL框架的應用探索

在現代機器學習的應用場景中,Python早已成為廣泛使用的語言,尤其是在深度學習框架TensorFlow和PyTorch的開發和應用中。盡管Java在許多企業級應用中占據一席之地,但因為缺乏直接使用深度學習框架的能力,往往使得Java開發者對機器學…

Docker安裝beef-xss

新版的kali系統中安裝了beef-xss會因為環境問題而無法啟動,可以使用Docker來安裝beef-xss,節省很多時間。 安裝步驟 1.啟動kali虛擬機,打開終端,切換到root用戶,然后執行下面的命令下載beef的docker鏡像 wget https:…

metasploit(2)生成dll木馬

聲明!本文章所有的工具分享僅僅只是供大家學習交流為主,切勿用于非法用途,如有任何觸犯法律的行為,均與本人及團隊無關!!! 一、dll文件基本概念 DLL 是一種包含可由多個程序同時使用的代碼和數…

5V 1A充電標準的由來與技術演進——從USB誕生到智能手機時代的電力革命

點擊下面圖片帶您領略全新的嵌入式學習路線 🔥爆款熱榜 88萬閱讀 1.6萬收藏 一、起源:USB標準與早期電力傳輸需求 1. USB的誕生背景 1996年,由英特爾、微軟、IBM等公司組成的USB-IF(USB Implementers Forum)發布了…

使用Python設置excel單元格的字體(font值)

一、前言 通過使用Python的openpyxl庫,來操作excel單元格,設置單元格的字體,也就是font值。 把學習的過程分享給大家。大佬勿噴! 二、程序展示 1、新建excel import openpyxl from openpyxl.styles import Font wb openpyxl.…

【設計模式】深入解析代理模式(委托模式):代理模式思想、靜態模式和動態模式定義與區別、靜態代理模式代碼實現

代理模式 代理模式,也叫委托模式。 Spring AOP 是基于動態代理來實現 AOP 的 定義 為其他對象提供一種代理 以控制對這個對象的訪問。它的作用就是通過提供一個代理類,讓我們在調用目標方法的時候,不再是直接對目標方法進行調用,而…

利用java語言,怎樣開發和利用各種開源庫和內部/自定義框架,實現“提取-轉換-加載”(ETL)流程的自動化

一、ETL 架構設計的核心要素? 在企業級數據處理場景中,ETL(Extract-Transform-Load)流程自動化是數據倉庫、數據湖建設的核心環節。基于 Java 生態的技術棧,我們可以構建分層解耦的 ETL 架構,主要包含以下四層結構&am…

2023藍帽杯初賽內存取證-8

也是用到pslist模塊,加上grep過濾”chrome“即可: vol.py --plugin/opt/volatility/plugins -f memdump.mem --profile Win7SP1x64 pslist | grep "chrome" 第一個是PID,第二個是PPID,第三個是線程數,第四個…

【C語言】動態內存的常見錯誤

前言&#xff1a; 在上章節中講解了動態內存的概念和管理的核心函數。 在本章節繼續為大家介紹動態內存的常見錯誤&#xff0c;讓大家更好的理解運用。 補充&#xff1a;使用內存函數需要頭文件<stdlib.h> 對NULL指針的解引用操作 當使用malloc、calloc或realloc等函…

uniapp-x 二維碼生成

支持X&#xff0c;二維碼生成&#xff0c;支持微信小程序&#xff0c;android&#xff0c;ios&#xff0c;網頁 - DCloud 插件市場 免費的單純用愛發電的

Linux內核之文件驅動隨筆

前言 近期需要實現linux系統文件防護功能&#xff0c;故此調研了些許知識&#xff0c;如何實現文件防護功能從而實現針對文件目錄防護功能。當被保護的目錄&#xff0c;禁止增刪改操作。通過內核層面實現相關功能&#xff0c;另外在通過跟應用層面交互從而實現具體的業務功能。…

利用大模型實現地理領域文檔中英文自動化翻譯

一、 背景描述 在跨國性企業日常經營過程中&#xff0c;經常會遇到專業性較強的文檔翻譯的需求&#xff0c;例如法律文書、商務合同、技術文檔等&#xff1b;以往遇到此類場景&#xff0c;企業內部往往需要指派專人投入數小時甚至數天來整理和翻譯&#xff0c;效率低下&#x…

鴻蒙Flutter倉庫停止更新?

停止更新 熟悉 Flutter 鴻蒙開發的小伙伴應該知道&#xff0c;Flutter 3.7.12 鴻蒙化 SDK 已經在開源鴻蒙社區發布快一年了&#xff0c; Flutter 3.22.x 的鴻蒙化適配一直由鴻蒙突擊隊倉庫提供&#xff0c;最近有小伙伴反饋已經 2 個多月沒有停止更新了&#xff0c;不少人以為停…

(七)深入了解AVFoundation-采集:采集系統架構與 AVCaptureSession 全面梳理

引言 在 iOS 開發中&#xff0c;AVFoundation 是構建音視頻功能的強大底層框架。而在音視頻功能中&#xff0c;“采集”往往是最基礎也是最關鍵的一環。從攝像頭捕捉圖形、到麥克風獲取聲音&#xff0c;構建一條高效且穩定的采集鏈是開發高質量音視頻應用的前提。 本系列將逐…

QML ShaderEffect(著色器效果)組件

ShaderEffect 是 QML 中用于實現自定義著色器效果的組件&#xff0c;允許開發者使用 GLSL 著色器語言創建圖形效果。 核心屬性 基本屬性 屬性類型默認值說明fragmentShaderstring""片段著色器代碼vertexShaderstring""頂點著色器代碼blendingbooltrue是…

基于javaweb的SSM教材征訂與發放管理系統設計與實現(源碼+文檔+部署講解)

技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論文…