成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Google 的 A2A 與 Anthropic 的 MCP 應該如何選擇? 原創 精華

發布于 2025-4-30 09:53
瀏覽
0收藏

編者按: Google 新推出的 A2A 與 Anthropic 的 MCP 到底有何區別?它們是競爭關系還是互補的技術?

本文通過一個規劃夏威夷旅行的生動案例,清晰拆解了這兩大協議的本質區別:MCP 更像是為單個 AI Agent 賦能的“超能力工具箱”,而 A2A 則是構建了 AI Agent 專家團隊間的“協作網絡”。作者基于實際項目經驗,揭示了影響實際應用這兩種協議的 3 項技術差異,同時還解讀了二者互為補充而非競爭的真實關系。

作者 | Zachary Huang

編譯 | 岳揚

Google 的 A2A 與 Anthropic 的 MCP 應該如何選擇?-AI.x社區

01 引言:協作式人工智能的曙光

想想你是如何與同事合作完成那些復雜項目的 —— 你們互相分享信息、提出問題,并整合彼此的專業知識。現在,請想象這些 AI Agent 也能做同樣的事情,它們不再各自為戰,而是通過協同工作來解決問題。

這正是 Google 于 2025 年 4 月 9 日發布的 Agent-to-Agent(A2A)協議[1]所追求的目標。該協議將孤軍奮戰的 AI Agent 轉化為團隊協作者:研究型助手可將研究成果無縫傳遞給文案助手,旅行規劃助手能直接與財務助手核對酒店預算 —— 全程無需人類扮演中間人的角色。開發者社區的熱情已然印證其價值,該協議上線數日即在 GitHub 斬獲 7000+ Stars[2] 的情況足以說明一切。但需注意的是,Anthropic 不久前推出的模型上下文協議(Model Context Protocol,MCP)[3]也抱有相似的愿景。

開發者該如何抉擇?A2A 是否只是換個了名字的 MCP?是否應該優先學習其中某個協議?抑或二者本就服務于不同場景?

本教程將撥開市場炒作的迷霧,為您實現:

  • 用通俗易懂的語言解釋這兩種協議
  • 揭示影響實際應用這兩種協議的 3 項技術差異
  • 解讀二者互為補充而非競爭的真實關系

本文不會有過多的技術術語,只有對這些協議是如何重塑人工智能協作范式的清晰見解。閱讀完本文,相信您將精準掌握 A2A 相較 MCP 的獨特優勢(反之亦然)。準備好探索這場技術熱潮了嗎?讓我們來一探究竟!

02 MCP vs. A2A

假設您正在計劃一場夏威夷夢幻之旅,需要考慮的事情太多了!您需要:

  • 查看天氣預報以確定最佳出行月份
  • 在預算內篩選最合適的航班
  • 根據當地人的建議規劃活動項目
  • 進行貨幣轉換,了解當地物價水平

這些任務涉及完全不同的專業領域!現在假設您擁有一位名為 Claude 的 AI Agent。您可以詢問:"Claude,下周茂宜島(Maui)的天氣如何?"

但問題在于:Claude 是根據過往的數據訓練出來的,既不了解實時的天氣狀況,也無法預測下周的天氣。這就好比去詢問你那位雖然聰明但近期未到訪過該城市的朋友 —— 他們確實無從知曉!此時就需要本文討論的這兩大技術協議來破局。

2.1 MCP:賦予 AI Agent 超能力

模型上下文協議(Model Context Protocol,MCP)如同為任意 AI Agent 裝備"按需調用專業工具"的超能力。

未啟用 MCP 時的對話場景可能如下:

您問:"下周茂宜島(Maui)的天氣如何?"

Claude 答:"我無法獲取實時天氣數據或天氣預報,建議您查詢氣象服務網站。"

這樣的回答顯然令人失望。但啟用 MCP 后:

您問:"下周茂宜島的天氣如何?"

Claude 答:[通過 MCP 連接氣象服務] "最新氣象預報顯示,下周茂宜島天氣晴朗,氣溫約82°F,周三下午可能有短暫陣雨。"

這個過程背后包含四個簡單的步驟:

1) 發現可用的“超能力” 。Claude 會檢索工具庫,詢問:"今天我有哪些酷炫工具可以使用?" 然后發現有一個氣象服務可以使用。(代碼實現:調用 list_tools[4])

2) 構建服務請求。Claude 生成一條精準的指令:"嘿,天氣工具,請提供下周茂宜島的天氣預報"(但是這條指令是以計算機語言表述的)(代碼實現:調用 call_tool[5])

3) 獲取到專家水平的響應。氣象服務施展魔法并返回響應:"茂宜島:82°F,晴,周三下午有小雨!"(代碼實現:執行 Tool.run[6])

4) 轉譯為人類語言。Claude 將專業的天氣預報轉化為通俗易懂的對話聊天式回復(代碼實現:從call_tool[7] 獲取結果)

Google 的 A2A 與 Anthropic 的 MCP 應該如何選擇?-AI.x社區

此處的神奇之處在于,MCP 為任意 AI Agent 與任意工具的交互構建了一條標準化的通道。 這就像構建了一個適配所有電器與插座的通用適配器。

  • 對工具開發者而言:只需按照 MCP 標準開發氣象 API、計算器或電子郵件發送器等工具,即可兼容 Claude、GPT、Gemini 等所有支持 MCP 的 AI Agent。
  • 對普通用戶而言:用戶所使用的 AI Agent 突然解鎖了實時天氣查詢、電子郵件發送、會面預約等超能力,所有功能無需針對每項任務單獨編程即可實現。

2.2 A2A:組建您的 AI 夢之隊

但面對復雜的夏威夷行程規劃,僅獲取天氣數據還遠遠不夠 —— 你還需要整合航班和酒店的預定、安排活動項目、控制預算等多領域的專業能力。這正是 Agent-to-Agent(A2A)協議大展身手的舞臺。如果說 MCP 是連接 AI 與各種工具的橋梁,A2A 則是用來建立專業 AI Agents 間的協作網絡。

想象一下假如你擁有這樣一只旅行夢之隊:

  • 深諳航空路線與票價的航班專家
  • 能精準匹配你的住宿偏好的酒店達人
  • 熟悉夏威夷各種活動與文化的本地向導
  • 嚴格把控支出的預算管家

借助 A2A,您的個人助手(Personal Agent)可將假期規劃任務分派給這些專家,繼而整合他們的專業建議。

未啟用 A2A 時的對話場景可能如下:

您問:"請為我規劃 6 月份的夏威夷 5 日游,預算 3000 美元。"

個人助手答:"我能提供一些常規性的建議,但無法獲取實時航班價格或酒店空房信息。至于活動,我能推薦一些熱門的選擇,但無法確定是否符合您的旅行日期或旅行預算。"

這對于擁有一個夢想中的假期顯然幫助有限!但啟用 A2A 后:

您問:"請為我規劃 6 月份的夏威夷 5 日游,預算 3000 美元。"

個人助手答:[通過 A2A 調度專家助手] "已為您制定完整的 6 月份夏威夷 5 日行程!從洛杉磯國際機場出發的往返機票(650美元)與茂宜島的海濱酒店(1200美元)合計 1850 美元,剩余 1150 美元的活動費用。活動規劃如下:次日莫洛基尼火山口浮潛(145美元/人)、第三日傳統盧奧晚宴(120美元/人)、第四日哈納公路之旅(210美元/人)。剩余約 675 美元可用于餐飲與紀念品。您希望我為您預訂其中任何一項嗎?"

在幕后,您的個人助手(Personal Agent)正通過 A2A 協議編排這場假期交響曲:

1) 找到合適的專家。 個人助手翻閱其數字版的"商務名片簿"(AgentCard[8]),篩選能在旅行、活動安排與制定預算等方面能提供幫助的專家助手(代碼實現:調用 A2ACardResolver[9] 獲取卡片)

2) 任務分解和派發。 個人助手將您的假期夢想拆解為多個易于管理的任務:

  • 任務1:查詢航班/酒店 → 旅行助手
  • 任務2:推薦活動 → 本地向導助手
  • 任務3:預算審核 → 預算助手

3) 航班任務派發

  • 個人助手將任務 1 封裝為數字包(Task[10]),分配追蹤編號如"task-123"
  • 通過 tasks/send 指令發送至旅行助手(代碼實現:調用 A2AClient.send_task[11] 與 TaskSendParams[12])
  • 旅行助手開始尋找最合適的航班與酒店
  • 個人助手 → 旅行助手:"請為總預算為 3000 美元的一對情侶查找 6 月份從洛杉磯國際機場飛往夏威夷的平價航班,以及茂宜島 5 日的酒店選擇。"
  • 旅行助手 → 個人助手:"已找到夏威夷航空公司洛杉磯國際機場(LAX)至 OGG(茂宜島)的往返機票,650 美元/人。阿羅哈海灘度假村(Aloha Beach Resort)提供 240 美元/晚的客房,5 晚合計 1200 美元。兩項均含可免費取消的服務條款。"

4) 在“活動安排”與“預算制定”階段上重復以上步驟

  • 個人助手對其他任務執行相同的封裝-派發流程,為每位專家分配專屬任務與追蹤編號
  • 個人助手 → 本地向導:"請為 6 月份的茂宜島情侶 5 日游推薦最佳活動方案,剩余預算 1150 美元。"
  • 本地向導 → 個人助手:"推薦活動:莫洛基尼火山口浮潛(145 美元/人)、老拉海納盧奧晚宴(120 美元/人)、哈納公路導覽游(210 美元/人)。這些項目六月可預定且評分極高。"
  • 個人助手 → 預算助手:"請審核該方案是否符合 3000 美元預算:650 美元的機票+1200 美元的酒店+475 美元的主要活動安排,剩余預算用于餐飲與紀念品支出。"
  • 預算助手 → 個人助手:"核心支出 2325 美元,剩余 675 美元(約 135 美元/日)可用于餐飲與購物。若靈活搭配較為高端的餐廳用餐與經濟型簡餐,該預算在夏威夷屬合理范圍。"

5) 狀態跟蹤機制

  • 個人助手通過 tasks/get 指令定期查詢:"任務 task-123 完成了嗎?"(代碼實現:調用 A2AClient.get_task[13])
  • 當助手返回"已完成"狀態(TaskStatus[14], TaskState[15]),個人助手提取響應包中的成果(Artifact[16])

6) 制定完美的假期方案。個人助手將所有專家建議制定成專屬您的完美假期方案!

Google 的 A2A 與 Anthropic 的 MCP 應該如何選擇?-AI.x社區

最終,您的個人助手將所有專家知識整合為一個連貫的旅行計劃。整個過程您無需參與 —— 您只需坐享這份由專家團隊精心打造的完整行程!

2.3 完美的組合

當 MCP 和 A2A 協同工作時,真正的奇跡就會發生:

  1. 您的個人助手通過 A2A 連接專業 AI 智能體
  2. 每個專業智能體通過 MCP 連接所需的特定工具
  3. 由此形成 AI 智能體網絡,每個智能體都擁有獨特的超能力,共同為您服務

這就像擁有一個專家顧問團隊(A2A)且為每個顧問配備專屬的工作設備(MCP)。它們合力可完成單個 AI Agent 無法獨自處理的復雜任務。

其中的關鍵區別在于誰在與誰對話:

  • MCP: AI 智能體與工具進行對話(Claude + 天氣服務)
  • A2A: AI 智能體與其他 AI 智能體進行對話(行程規劃師 + 酒店專家)

最妙之處在于其可擴展性。通過統一標準實現"一次開發,通用適配"——任何新開發的工具或智能體都能無縫接入現有生態,不同組件之間就像標準化接口的樂高積木,無需針對特定組合重復開發對接程序。

03 Beyond Tools vs. Agents:介紹他們真正的技術差異

"MCP 中智能體和工具對話,A2A 中智能體和其他智能體對話"這一解釋雖然淺顯易懂,但你可能會疑惑:"這種劃分是否過于簡單?"

沒錯!"工具"與"智能體"的界限其實很模糊。事實上,正如 OpenAI 的文檔所示[17],我們甚至可以將整個智能體當作工具來使用!想象一下,讓你的 AI 智能體將另一個 AI 智能體作為工具調用 —— 這種操作會立即引發系統層級的指數級疊加。

如果您不滿足于表面解釋而想深入技術本質,那就來對地方了。讓我們拋開"誰與誰對話"的表層差異,剖析使這兩個協議產生根本性不同的代碼層特征!

重要說明:以下分析內容基于 Zach 在實際開發過程中形成的個人理解,部分細節可能出錯!若發現任何問題,歡迎留言探討 —— 這正是我們共同進步的最佳方式。

3.1 差異1:自然語言與結構化模式

使用 A2A 時,您只需說"100美元等于多少加元?";而使用 MCP 時,必須嚴格按照貨幣工具要求的格式輸入 —— 例如 {"currency_from": "USD", "currency_to": "CAD", "amount": 100}。這是完全不同的交流方式!

A2A 的交流方式類似人類對話

A2A 采用類似人類自然對話的方式交流:

# A2A Client sending a task
user_message = Message(
    role="user",
    parts=[TextPart(text="How much is 100 USD in CAD?")]
)

接收消息的 Agent 能以最自然的方式理解請求 —— 就像向朋友求助時沒有嚴格的格式要求。

MCP 要求提供精確參數

而 MCP 則要求嚴格匹配預定義模式(predefined schema)中的參數:

# MCP Client calling a tool
tool_name ="get_exchange_rate"
# Must match EXACTLY what the tool expects
arguments ={"currency_from":"USD","currency_to":"CAD"}

如果未提供工具要求的精確參數(例如使用"from_currency"而非"currency_from"),調用就會失敗。這里沒有回旋余地!

Why This Matters

試想一下客服服務場景:A2A 如同能與你自然溝通的客服代表,即使你的問題無法歸類到預設標簽中,也能準確理解需求;MCP 則像填寫必須嚴格對號入座的表格,只能在特定字段輸入指定內容。

A2A 的自然語言方法能應對"非標準"請求并適應新場景 —— 例如詢問"100美元夠不夠在多倫多吃雙人份晚餐?",自然語言 Agent 能綜合貨幣知識和當地餐飲定價。而 MCP 的嚴格模式能確保可靠、可預測的結果 —— 非常適合需要標準問題的精準答案的場景。

3.2 差異2:任務生命周期與函數調用

A2A 將工作視為具有生命周期的完整任務,而 MCP 則將其視為獨立的函數調用。這類似于項目經理(A2A)與計算器(MCP)的區別。

A2A 的多階段任務管理

A2A 的核心是圍繞“任務”概念構建的,“任務”具有包含多個狀態的完整生命周期:

# A2A Task has explicit states in its lifecycle
{
"id":"task123",
"status":{
"state":"running",# Can be: pending → running → completed/failed
"startTime":"2025-04-12T10:30:00Z"
},
"artifacts":[...]# Partial results as they're created
}

“任務”可以在不同狀態間自然流轉 —— 可以是啟動狀態、需要更多輸入、生成部分結果,最終的完成或失敗狀態。A2A 協議本身就能管理這一生命周期,使其非常適合具有不確定性的復雜、多階段的工作。

MCP 的單階段操作

MCP 的操作本質上是單階段的 —— 它們要么成功要么失敗:

# MCP has no built-in "in-progress" or "needs more input" states
result = client.call_tool("get_exchange_rate",{"from":"USD","to":"CAD"})

# If arguments are invalid or missing, it simply fails with an error
# There's no protocol-level "input-required" state

如果工具需要更多信息,無法通過協議直接請求 —— 它必須返回報錯信息,或由客戶端應用程序處理創建一個新的、單獨的請求。進度更新是可選的附加功能,而非操作生命周期的核心部分。

Why This Matters

想象一下翻新房屋與使用單個工具的區別。A2A 就像雇傭一位承包商管理整個翻新項目 —— 他們會處理所有階段、向你匯報進度,并解決突發問題。MCP 則像單獨呼叫各個專家 —— 水管工做一件事,電工做另一件事,無人全程跟進整體項目進度。

A2A 在需要適應性、存在不確定性且涉及復雜多階段的工作中表現卓越,例如項目研究、創意工作或解決復雜問題。

MCP 在需要精確的獨立操作(具有可預測的輸入和輸出)時表現優異,例如數據計算、數據檢索或特定類型的數據轉換。

3.3 差異3:宏觀的、通用性強的技能 vs. 明確的、步驟化的具體功能

A2A 是籠統地描述智能體能做什么,而 MCP 則詳細說明了可用的具體功能及其調用方式。

A2A 的能力描述

A2A 以概括性的、靈活的術語描述智能體的能力:

# A2A AgentCard example
agent_skill = AgentSkill(
id="research_capability",
    name="Research and Analysis",
    description="Can research topics and provide analysis.",
    examples=[
"Research quantum computing advances",
"Analyze market trends for electric vehicles"
]
# Notice: no schema for how to invoke these skills!
)

它就像一份簡歷,告訴你某人擅長什么,而不是具體為他如何分配工作。

MCP 的功能規范

MCP 精確定義了每項可用功能:

# MCP tool definition
{
"name":"get_exchange_rate",
"description":"Get exchange rate between currencies",
"inputSchema":{
"type":"object",
"properties":{
"currency_from":{"type":"string"},
"currency_to":{"type":"string"}
},
"required":["currency_from","currency_to"]
}
}

它就像一本說明書,沒有任何解釋的余地。

Why This Matters

想象一下工作分配場景。使用 A2A 類似于只告知某個團隊成員"你負責這個項目的調研部分" —— 他們將根據自身專業知識自行規劃實施細節。使用 MCP 則如同給出詳細的逐步操作指令:"用這三個關鍵詞搜索這三個數據庫,并按此格式整理結果"。

A2A 模式鼓勵創造性思維、主動性和應對突發情況的能力。智能體可根據探索過程中發現的新信息動態調整策略。

MCP 模式則確保執行過程的一致性、可預測性,以及對操作流程和結果的精準控制。這種方式特別適用于需要嚴格遵循既定程序的場景。

04 二者的理念差異

這三項技術差異反映了對于 AI 協作的不同理念:

  • MCP 的核心理念:"明確告知需要完成的具體內容及執行方式"
  • A2A 的核心理念:"告訴我你想要完成什么,我將自主規劃實現路徑"

可以將 MCP 類比為樂高積木 —— 精準、可預測、組合方式明確。A2A 則更似陶土 —— 靈活、適應性強、能夠呈現您最初可能未曾設想的形態。

其精妙之處在于無需二選一!許多復雜的系統將同時運用這兩種模式:MCP 用于精確執行工具,A2A 用于專業智能體之間協作解決問題。

05 結論:協作型 AI 即未來

我們已剖析了 A2A 與 MCP 的核心差異,其本質在于:它們不是非此即彼的技術標準,而是解決同一難題不同部分的互補性方案。

可將 MCP 視為精確工具的構建者,A2A 則是專家團隊的組建者。當二者協同運作時,真正的奇跡就出現了:

  • MCP 通過標準化的工具連接為單個 AI 智能體賦予超能力
  • A2A 使這些強化后的智能體能夠協作攻克復雜任務
  • 二者合力構建的生態系統,實現了專業能力與知識經驗的無障礙交互共享

對開發者而言,這意味著他們不必糾結于人為制造的協議陣營對立。相反,你可以問問自己:"我需要精準的工具執行(MCP)、智能體協作(A2A),還是兩者都需要?"答案完全取決于您的具體應用場景。

未來將如何發展?隨著 AI 生態的成熟,這兩大協議的融合將日益加深。這些協議背后的企業都明白,協同工作能力才是未來的趨勢——孤島式的 AI 智能體終將被淘汰。最具價值的應用不會局限于單一智能體搭配若干工具,而是統籌協調由專業智能體組成的完整團隊。 開發者若能把握這一技術交匯點,就將成為構建下一代真正具備協作能力的 AI 系統的先行者。

About the author

Zachary Huang

Incoming Researcher @MSFTResearch AI Frontiers. I work on LLM Agents and Sys | Phd@ColumbiaCompSci | Prev: @GraySystemsLab @databricks | Fellowship: @GoogleAI

END

本期互動內容 ??

?您是否已經在項目中應用了這些協議?歡迎分享您的實踐經驗和取得的成果。

文中鏈接

[1]??https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/??

[2]??https://github.com/google/A2A??

[3]??https://www.anthropic.com/news/model-context-protocol??

[4]??https://github.com/modelcontextprotocol/python-sdk/blob/70115b99b3ee267ef10f61df21f73a93db74db03/src/mcp/server/fastmcp/server.py#L173??

[5]??https://github.com/modelcontextprotocol/python-sdk/blob/70115b99b3ee267ef10f61df21f73a93db74db03/src/mcp/client/session.py#L256??

[6]??https://github.com/modelcontextprotocol/python-sdk/blob/70115b99b3ee267ef10f61df21f73a93db74db03/src/mcp/server/fastmcp/tools/base.py#L78??

[7]??https://github.com/modelcontextprotocol/python-sdk/blob/70115b99b3ee267ef10f61df21f73a93db74db03/src/mcp/client/session.py#L256??

[8]??https://github.com/google/A2A/blob/main/samples/python/common/types.py#L331??

[9]??https://github.com/google/A2A/blob/main/samples/python/common/client/card_resolver.py??

[10]??https://github.com/google/A2A/blob/main/samples/python/common/types.py#L85??

[11]??https://github.com/google/A2A/blob/main/samples/python/common/client/client.py#L34??

[12]??https://github.com/google/A2A/blob/main/samples/python/common/types.py#L129??

[13]??https://github.com/google/A2A/blob/main/samples/python/common/client/client.py#L68??

[14]??https://github.com/google/A2A/blob/main/samples/python/common/types.py#L65??

[15]??https://github.com/google/A2A/blob/main/samples/python/common/types.py#L11??

[16]??https://github.com/google/A2A/blob/main/samples/python/common/types.py#L75??

[17]??https://openai.github.io/openai-agents-python/tools/#agents-as-tools??

本文經原作者授權,由 Baihai IDP 編譯。如需轉載譯文,請聯系獲取授權。

原文鏈接:

??https://zacharyhuang.substack.com/p/a2a-protocol-simply-explained-here??


?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
標簽
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 中文字幕精品一区二区三区精品 | 免费人成在线观看网站 | 亚洲成人免费av | 久久精品91久久久久久再现 | 日日干夜夜干 | 中文在线a在线 | 69福利影院| av中文在线 | 一区二区三区av | 99成人 | 日本免费一区二区三区四区 | h在线看 | 亚洲国产区 | 亚洲逼院 | 欧美日韩在线精品 | 国产精品亚洲视频 | 免费久久久 | 精品一区二区免费视频 | 日本特黄a级高清免费大片 国产精品久久性 | 欧美日韩在线免费 | 日韩成人一区 | 黄色大全免费看 | 日本午夜精品一区二区三区 | 中文字幕 亚洲一区 | 在线色| 国产一区二区三区在线视频 | 成人毛片一区二区三区 | 久久国产精品99久久久大便 | 欧美成人一区二区三区片免费 | 欧美综合国产精品久久丁香 | 视频一区二区三区中文字幕 | 521av网站| 欧美一级毛片久久99精品蜜桃 | 一级做a爰片性色毛片16 | 亚洲永久免费 | 精品一二三区视频 | 国产精品久久av | 美女一级a毛片免费观看97 | 99re6热在线精品视频播放 | 欧美5区 | 欧美一级二级视频 |