總覽:三套協定、兩道邊界
MCP、A2A、ACP 常被混成「Agent 協定大雜燴」。本篇只做一件事:把它們放到同一張選型圖上,講清邊界與共存。
Model Context Protocol(MCP) 與 Agent-to-Agent Protocol(A2A) 已在 MCP 篇與 A2A 篇各自展開。實務訪談與架構討論裡,很快會冒出第三個名字:Agent Communication Protocol(ACP)——由 IBM Research/BeeAI 提出、同樣瞄準 Agent 之間互通。若你把三套協定都當成「能讓 Agent 說話的東西」,選型會立刻糊掉:到底該標準化工具插拔、跨團隊委派,還是整條編排管線?
正確切入點不是「哪一套比較新」,而是兩道邊界:
記法:垂直方向是「接工具」(MCP);水平方向是「對等委派」(A2A,含 ACP 貢獻)。兩層可同時出現在同一條業務流程。
MCP 的 Host/Client/Server、A2A 的 Card/Task 狀態機,各自的專篇已寫過。這裡只保留選型需要的最小對照:各自解決什麼、訊息模型差在哪、何時該選哪一層、如何共存。ACP 則以「歷史定位+合併後的實務含義」呈現——知道它是什麼、為何不再平行選型,比背另一套 API 更有價值。
面試或架構評審若主張「我們改用 ACP 取代 A2A」,在 2025-08 合併宣告之後通常是過時資訊。正確敘事是:ACP 與 A2A 曾是同層競合;合併後資產與長任務/狀態化思維收斂進 A2A,BeeAI 生態提供遷移適配器。選型表上「對等層」應寫 A2A(含 ACP 貢獻),而不是並列三選一。
對照表:問題邊界、訊息模型、適用場景
把三套協定攤在同一張表上——比較「連誰、交換什麼、何時該用」,而不是比較誰的 JSON 欄位比較多。
- 連線:Host/Client ↔ Server
- 單位:tool/resource/prompt
- 風格:JSON-RPC + stdio/HTTP+SSE
- 連線:Client Agent ↔ Remote Agent
- 單位:Task + Message + Artifact
- 風格:Agent Card + JSON-RPC/串流
- 連線:Agent ↔ Agent/App/Human
- 單位:run/message(多模態)
- 風格:REST/OpenAPI 取向
| 維度 | MCP | A2A | ACP(歷史) |
|---|---|---|---|
| 解決的痛 | M 應用 × N 工具的客製爆炸 | K Agent × K Agent 的委派契約爆炸 | 同層:跨框架/跨組織 Agent 溝通碎片化 |
| 邊界 | 工具/資料邊界 | 對等 Agent 邊界 | 對等 Agent(及應用/人類)邊界 |
| 訊息模型核心 | tools.list/call、resources、prompts | Agent Card、Task 狀態機、Parts/Artifact | REST 資源、多模態 message、長任務 run |
| 典型適用 | 接 DB、搜尋、票務 API、內部 gateway | 跨團隊專責 Agent 委派、長任務追蹤 | BeeAI 生態內互通;新專案應遷移 A2A |
| 刻意不做 | 不定義 Agent↔Agent 委派語意 | 不規定內部用哪個 MCP tool | 不取代 MCP;亦不應再與 A2A 平行選型 |
| 2026 實務狀態 | 工具層事實標準 | 對等層事實標準(含 ACP 貢獻) | 停止平行演進;遷移至 A2A |
表上最後一列最重要:面試時若被問「MCP vs A2A vs ACP」,先答邊界,再補一句「ACP 已併入 A2A」——顯示你跟得上治理現實,不是背三份規格書。
ACP 的歷史定位與合併含義
為什麼會同時出現 A2A 與 ACP?合併之後,架構師還需要記什麼?
2025 上半年,Agent 互通突然變成熱門缺口:一邊是 Google 提出的 A2A(Agent Card + Task 狀態機),一邊是 IBM Research 為 BeeAI Platform 打造的 ACP(偏 REST/OpenAPI、強調多模態訊息與長任務可觀測)。兩者目標重疊——都想讓「不同框架做出來的 Agent」用共同契約協作——但哲學與表面形態不同:A2A 更像「對等 Agent 的發現+任務協定」,ACP 更像「把 Agent 當成可 HTTP 呼叫的一等公民」。
| 面向 | ACP 當時強調 | 併入 A2A 後怎麼理解 |
|---|---|---|
| 傳輸與發現 | REST/OpenAPI 易被閘道與觀測堆疊吃進去 | 對等層能力以 A2A 規格為準;適配器處理舊 ACP 客戶端 |
| 長任務/狀態 | run 級狀態、非同步與企業工作流親和 | 貢獻到 A2A 的 Task/狀態與企業場景思維 |
| 生態入口 | BeeAI 平台的發現、執行、分享 | BeeAI 改以 A2A 支撐;提供 A2AServer/A2AAgent 遷移路徑 |
| 治理 | 隨 BeeAI 進入 Linux Foundation | 與 A2A 同在 LF AI & Data 傘下合併,避免雙標準撕裂生態 |
問題本身沒消失:跨團隊 Agent 仍需要標準委派契約。改變的是答案收斂成一條對等層標準(A2A)。若你維護既有 ACP 服務,優先計畫是遷移或加適配器,而不是再寫一套平行 gateway。新綠地專案:對等層直接選 A2A,工具層選 MCP。
無論走 A2A 還是殘留 ACP 路徑,發現端點可被偽造、委派可被濫用。信任鏈(TLS、簽章 Card/允許清單、身份、授權)仍是你的責任——這與 MCP「協定 ≠ 安全機制」、以及 Tool Gateway 篇的邊界提醒同一條線。
選型決策:何時用哪一層
面試與設計評審最值錢的不是背規格,而是一條可執行的決策階梯。
階梯給的是直覺,直覺在評審桌上撐不了三輪。下面這台引擎把同一組判準換成可量化的分數:你回答八個問題,它用 12 條加權規則同時替四種做法算分,列出每條規則對勝出者的貢獻,並在你的答案互相矛盾時直接點名。
看零軸兩側的長度差,不要只看誰贏:條子幾乎貼齊(margin 小)代表這個邊界本來就模棱兩可,該回頭改需求而不是硬選協定。
| 情境 | 建議 | 反模式 |
|---|---|---|
| 單一 Agent 呼叫內部 CRM API | MCP server(或直接 SDK) | 為了「看起來先進」硬包一層 A2A Task |
| 客服 Agent 把爭議丟給帳務 Agent(不同團隊) | A2A 委派 + 各自內部 MCP | 在 A2A Message 裡塞滿對方的 MCP tool schema |
| 既有 BeeAI/ACP Agent 要進公司網 | 適配器遷移到 A2A | 同時維護 ACP gateway 與 A2A gateway 當永久架構 |
| 只想串本地腳本與檔案 | MCP(stdio)通常就夠 | 上對等協定再加服務網格——協定稅大於收益 |
選型口訣:工具走 MCP,對等走 A2A,ACP 只當遷移項。
延伸:為你自己的流程逐 hop 標協定
單點選型會了,接下來看整條流程——層級切太碎、或工具呼叫穿越組織邊界,都是評審會當場抓住的地方。
把第 4 節那台選層評分引擎逐跳套用:你描述自己流程的每一跳「對端是什麼、落在哪個邊界」,它替每一跳算出該走的層、該付的協定稅,再彙總成三個整條流程才看得出來的指標——層級純度(切換越多越難維運)、正交破壞點(被標成 MCP 的工具呼叫卻跨組織)、以及可省下的協定稅(明明在同一個 process 卻硬上對等協定)。
看每一列左緣的色條:同色連成一段就是同一層。標著「換層」的虛線越多,代表這條流程的邊界切得越碎——那通常不是架構精緻,而是抽象沒想清楚。
共存架構與實務注意
兩層協定一起長在系統裡時,什麼該穿透、什麼絕對不該穿透?
健康的多 Agent 系統通常長這樣:外層是 A2A 對等網(誰能被發現、任務狀態怎麼回報),每個 Agent 內部是 MCP 工具扇出(資料庫、搜尋、票務、政策引擎)。中間再掛上你已有的 Tool Gateway、身份與觀測——協定負責語意契約,平台負責安全與運維。
| 做法 | 為什麼好/壞 |
|---|---|
| A2A 只傳業務意圖與產物 | 好:對方可自由替換內部 MCP tools,對外 Task 契約不變 |
| MCP payload 穿透塞進 A2A Message | 壞:兩層黏死;對方換 tool schema 就弄破委派契約 |
| 對等層同時永久跑 ACP + A2A 雙 gateway | 壞:治理與觀測成本倍增;應遷移收斂 |
| 用適配器暫時吞舊 ACP 流量 | 好:給遷移窗口,但不把適配器當成最終產品邊界 |
| 把「編排狀態機」全部塞進協定 | 壞:協定管互通表示;重試、補償、人工審批仍屬 runtime/workflow |
面試加分句:MCP 與 A2A 是正交的——一個管工具扇出,一個管對等委派。正交才能獨立演進;正交被破壞的第一個症狀,就是 Message 裡開始出現對方內部的 tool name。
面試考點與收束
把三套名字收成可秒答的判斷力——以及下一步該往哪裡學。
| 可能問法 | 高分答法骨架 |
|---|---|
| MCP、A2A、ACP 差在哪? | 先畫兩道邊界:工具 vs 對等。MCP=前者;A2A=後者現行標準;ACP=同層歷史路線且已併入 A2A。 |
| 為什麼不全部用 MCP? | MCP 的單位是 tool call,不承載跨 Agent 的長任務狀態機、發現名片與 Artifact 交卷語意。 |
| 為什麼不全部用 A2A? | 對內部資料庫/搜尋用 A2A 等於把工具當 Agent,協定稅過高且喪失工具生態的插拔效率。 |
| 現在還要學 ACP 嗎? | 要懂定位與合併故事(選型與遷移);新實作以 A2A+MCP 為主,ACP 當遺產處理。 |
讀完本篇,你應能在白板上快速畫出「理賠/客服/研究」任一流程,並在每一跳旁邊標上 MCP 或 A2A——這比背欄位名更能通過 System Design 面試。若還要往下鑽:工具層回 MCP 篇、對等委派回 A2A 篇、權限與閘道回 Tool Gateway 篇。