A2A 是什麼?為什麼 MCP 不是 AI Agent 的全部,下一場戰爭其實是 agent 對 agent

前提

• 你已經大概知道 MCP 在做什麼,或至少看過最近關於 MCP vs CLI 的討論。 • 你現在想往前看一步:如果工具層不是全部,那多個 agent 之間到底怎麼協作? • 你關注的不只是單一產品功能,而是 AI agent 生態會不會長出類似網際網路協議的分工。 • 你是開發者、產品人,或對 AI 產業方向有判斷需求的人,不想只看 buzzword。 • 你想知道接下來一年,A2A 是不是只是另一個新縮寫,還是真的代表新的戰場。

排除

• 你現在只想知道怎麼寫 A2A server/client:你需要的是實作教學,不是這篇。 • 你只在意單一 agent 怎麼接資料庫、檔案或 API:那你更該先看 MCP,不是這篇。 • 你只想看 Google 又出新東西的新聞摘要:這篇重點不是發表會 recap,而是判斷它在整個 stack 裡的角色。 • 你期待單一協議一統天下:這篇的結論相反,未來更像分層協議共存。 • 你完全不在意 agent orchestration、delegation、long-running task、或跨組織協作:那 A2A 對你現在的價值不高。

A2A 是什麼?為什麼 MCP 不是 AI Agent 的全部,下一場戰爭其實是 agent 對 agent

一句話結論:如果上一篇講的是「為什麼 coding agent 常常會回到 CLI,而不是把所有工具都包成 MCP」,那這一篇要回答的就是另一個更大的問題:當 agent 不只要叫工具,而是要叫別的 agent 時,誰來負責? 這也是 A2A 開始變重要的原因。MCP 解的是 agent 對工具,A2A 想解的是 agent 對 agent。兩者不是互斥,而是 AI agent stack 開始分層的訊號。


Premise(前提)

  1. 你已經大概知道 MCP 在做什麼,或至少看過最近關於 MCP vs CLI 的討論。
  2. 你現在想往前看一步:如果工具層不是全部,那多個 agent 之間到底怎麼協作?
  3. 你關注的不只是單一產品功能,而是 AI agent 生態會不會長出類似網際網路協議的分工
  4. 你是開發者、產品人,或對 AI 產業方向有判斷需求的人,不想只看 buzzword。
  5. 你想知道接下來一年,A2A 是不是只是另一個新縮寫,還是真的代表新的戰場。

Exclusions(排除)

  1. 你現在只想知道怎麼寫 A2A server/client:你需要的是實作教學,不是這篇。
  2. 你只在意單一 agent 怎麼接資料庫、檔案或 API:那你更該先看 MCP,不是這篇。
  3. 你只想看「Google 又出新東西」的新聞摘要:這篇重點不是發表會 recap,而是判斷它在整個 stack 裡的角色。
  4. 你期待單一協議一統天下:這篇的結論剛好相反,未來更像分層協議共存。
  5. 你完全不在意 agent orchestration、delegation、long-running task、或跨組織協作:那 A2A 對你現在的價值不高。

先講結論:A2A 之所以重要,不是因為它要取代 MCP

很多人第一次看到 A2A,第一反應是:

所以這是下一個 MCP?還是 Google 版 MCP?

這個理解很容易,但也很容易錯。

因為從官方定位來看,A2A 處理的不是同一個問題。
它的核心描述很直接:

an open standard that enables seamless communication and collaboration between AI agents

換句話說,A2A 想做的不是讓模型更容易叫工具,而是讓:

  • 不同框架做的 agent
  • 不同公司做的 agent
  • 跑在不同伺服器上的 agent
  • 屬於不同組織的 agent

可以有一種比較標準化的方式互相溝通、發現能力、委派工作、回報長任務結果。

所以你不能把它理解成「另一個 tool calling 規格」。
更準的說法是:

MCP 把世界裡的外部能力暴露成 agent 可用的工具;A2A 則想讓 agent 本身成為可被別的 agent 調用的合作單位。

這個差異看起來抽象,但它其實非常重要。


為什麼 MCP 不夠?

這不是說 MCP 不好,而是它本來就不是為了所有事情設計的。

MCP 最擅長的是:

  • tool exposure
  • data / resource access
  • workflow integration
  • 結構化能力暴露

也就是說,它很適合做:

  • 查資料庫
  • 拿文件
  • 用搜尋工具
  • 接第三方服務
  • 把既有 workflow 變成 agent 可調用能力

但當你遇到下面這種場景時,事情就開始變了:

  • 一個 travel agent 要找 flight agent、hotel agent、currency agent 一起完成任務
  • 一個企業內部 orchestrator agent 要把任務分給法務 agent、財務 agent、採購 agent
  • 一個 coding agent 想委派另一個專門做測試、另一個專門做 review

在這種情況下,如果你還把「另一個 agent」包成普通 tool 來用,會開始出現幾個問題:

1. agent 不是普通工具

工具通常比較像:

  • stateless
  • 單次呼叫
  • 功能邊界明確
  • 回傳格式固定

但 agent 往往不是這樣。

agent 更像:

  • 有自己的能力描述
  • 可能需要多輪互動
  • 可能要澄清需求
  • 可能執行很久
  • 可能回傳的是 task 狀態、artifact、stream,而不是單一結果

也就是說,把 agent 硬包成 tool,有時候會把它的能力壓扁。

2. point-to-point integration 很快會失控

如果每個 agent 之間都自己接:

  • 一套自定義 API
  • 一套自定義 auth
  • 一套自定義 status callback
  • 一套自定義 streaming

那你很快就會掉進 integration hell。

這也是 A2A 官方文件一直強調的點:
沒有標準時,跨 agent 協作會變成大量 bespoke integration。

3. 長任務與 opaque collaboration 不是 MCP 的主場

A2A 官方文件強調幾個關鍵字:

  • long-running operations
  • streaming
  • opaque execution
  • capability discovery

這些東西其實都在說同一件事:

A2A 想讓 agent 保留自己的自治與內部邏輯,同時又能被別的 agent 當成合作對象。

這和 tool calling 的心智模型不太一樣。


A2A 到底在解什麼問題?

如果你把官方文件讀白話一點,A2A 在解的大概是四件事。

1. agent discovery

別的 agent 怎麼知道你會什麼?

A2A 的答案是:
讓 agent 透過類似 Agent Card 這樣的方式公開自己的能力描述、連線資訊、支援模態與安全需求。

這很像把「可被合作的能力」標準化,而不是靠人手動寫 integration doc。

2. agent collaboration

不是每個問題都該由一個巨型 agent 全包。

很多真實場景更像:

  • 一個總控 agent 接到任務
  • 它判斷需要哪些專門 agent
  • 它把任務分派出去
  • 再把結果整理回來

如果沒有標準化的協作方式,這種架構很快會變得又脆又難維護。

3. long-running task lifecycle

很多 agent 工作不是 request/response 一次結束,而是:

  • submitted
  • working
  • partial artifacts
  • completed

這也是 A2A 特別強調 streaming、SSE、async execution 的原因。
它不是只想傳一個結果,而是想描述一個任務生命週期。

4. opaque execution

這是我覺得最容易被低估的一點。

A2A 官方文件反覆強調:agent 可以互相合作,但不需要暴露內部記憶、工具或 proprietary logic。

這件事很重要,因為現實世界裡很多 agent 不會願意把自己的:

  • prompt
  • memory
  • internal tools
  • business logic
  • 專有資料流程

全部攤給別人看。

所以 A2A 的思路不是「把大家都攤平」,而是:

讓 agent 像 service 一樣可以被合作,但不必失去邊界。


這篇真正想講的是:AI agent stack 正在長出分工

如果你把最近幾個協議放在一起看,畫面就會比只看 MCP 清楚很多。

目前最容易理解的分法大概是:

  • agent-to-toolMCP
  • agent-to-agentA2A
  • agent-to-user interactionAG-UI

AG-UI 官方文件甚至直接把這三層並列,說它們是 complementary protocols,而且一個 agent 往往會同時用到三者。

這個訊號很重要,因為它意味著:

AI 生態不是在等一個單一終極協議,而是在長出像網路協議棧一樣的分層。

這也讓我更不相信下面這種說法:

下一個標準會把全部問題一次解完

我反而更相信未來會長得像這樣:

  • 你用 CLIMCP 處理工具層
  • 你用 A2A 處理 agent collaboration
  • 你用 AG-UI 處理前端互動與 event flow

也就是說,真正的戰爭不是「誰一統」,而是:

誰先在自己的那一層變成預設。


A2A 真的會成嗎?

這裡我會保守一點,不會直接喊它一定會贏。

我看好它的理由

1. 問題真的存在

agent-to-agent collaboration 不是假需求。
只要 multi-agent、delegation、cross-org workflow 持續存在,這層就需要某種標準化。

2. 它的問題定義很清楚

很多新協議失敗,是因為問題本身模糊。
但 A2A 的問題其實很明確:

  • agent 怎麼被發現?
  • agent 怎麼被調用?
  • 長任務怎麼追蹤?
  • 不透明邏輯怎麼被保留?

這些都是真問題。

3. 它不是硬和 MCP 搶同一個位置

這反而是它比較有機會活下來的地方。
如果它想當「更好的 MCP」,那會很辛苦;但如果它定位成 MCP 補不到的那一層,合理性就高很多。

我保留的地方

1. 真正採用速度還不明朗

一個協議寫得漂亮,不代表會形成真正採用。
關鍵還是要看:

  • 主流 agent framework 有沒有內建
  • 大型平台有沒有默認支持
  • 開發者有沒有感覺「不用不行」

2. 很多團隊短期內會先用內部私規撐

這點很現實。
很多團隊在 agent 還沒成熟前,未必會急著上 A2A,可能先自己做內部 orchestration 與 callback。

3. 它容易被過早神化

這也是我現在最警惕的地方。
如果社群開始把 A2A 講成「未來 agent internet 的終極答案」,那它就很容易重演 MCP 先被吹高、再被 backlash 的路。


真正值得追的,不是 A2A 這個名字,而是這種問題開始被獨立對待

即使你最後不押 A2A 本身,我還是認為這個題目值得關注。
因為它代表一件更大的事:

市場已經不再假設「一個 agent + 一堆 tools」就能解決所有場景。

當這件事開始被廣泛承認後,很多設計思路都會變:

  • orchestration 不再只是 prompt engineering
  • delegation 不是把別人包成一個 function 就好
  • multi-agent 不是 marketing 詞,而是架構問題
  • 互通性不只是 tool calling,而是 agent calling

這也是為什麼我會說:
如果上一篇 MCP vs CLI 在講的是工具層分裂,這一篇 A2A 真正在講的是:

agent 本身開始被視為網路上的一級公民。


最後的低後悔建議

如果你只想抓最實用的結論,我會這樣建議:

  1. 如果你還在單一 agent + tool 的階段:先把 CLI / MCP 想清楚,不必急著上 A2A
  2. 如果你已經在做 multi-agent orchestration:開始關注 A2A,因為你很可能已經踩在它要解的問題上。
  3. 不要把 A2A 當成另一個 buzzword 收藏:真正要觀察的是,主流框架與平台會不會把 agent discovery、task lifecycle、opaque collaboration 變成默認能力。
  4. 重新理解 AI agent 戰爭:不是模型戰被協議戰取代,而是整個 stack 開始長出更多值得搶的位置。

如果你問我這篇真正想給你的結論是什麼,我會用一句話收掉:

MCP 不是 AI agent 的全部;當 agent 開始真的要和 agent 協作時,A2A 代表的是下一層戰爭。


資料來源說明

本文主要根據以下公開資料整理:

  • A2A 官方文件:What is A2A?
  • a2a-protocol.org 與 A2A 官方 README
  • AG-UI 官方文件:MCP, A2A, and AG-UI
  • 既有 MCP 官方文件與相關開發者文件

這些協議與採用情況仍在快速變動,這篇更適合拿來建立判讀框架,而不是當成最終定論。