最近真的有一種感覺,就是 幾乎每隔一陣子就會冒出一個新的 agent protocol,多到會讓人有點小崩潰,想說:「欸等一下,這個到底是拿來做什麼的?我現在到底該用哪一個?」
所以我最近就花了一點時間,把幾個目前比較重要的 agent protocol 整理了一下。這篇文章會用比較高層次的方式,帶大家快速認識 MCP、A2A、A2UI 跟 AG-UI 這四個協定。
TL;DR
如果你現在很忙,或者只是想先快速抓重點,沒空把整篇看完,我先幫你整理一句話版本:
- MCP:讓模型或 agent 可以標準化地存取外部工具、資源和 prompt。
- A2A:讓不同框架、不同平台上的 agent 可以彼此溝通。
- AG-UI:讓 agent backend 能夠跟使用者前端介面接起來。
- A2UI:讓 agent 直接產生互動式 UI,而不是你自己一個元件一個元件慢慢做。
接下來我們就一個一個來看。
Model Context Protocol(MCP)
Model Context Protocol(MCP) 是由 Anthropic 推出的開放協定,主要目的是把 模型或 agent 存取外部工具與資源的方式標準化。
MCP 大致上可以分成三個部分。雖然大部分的人在用 MCP 的時候,最常拿它來串接 tools,但其實它也可以拿來處理 resources 跟 prompts。
而且你也可以用 Python 裡的 FastMCP 自己實作 MCP server。
除了最基本的功能之外,MCP 還有一些比較進階的能力,像是 elicitation、sampling、progress 等等。
在這篇提到的幾種 protocol 裡面,MCP 是最早出現、也最成熟的一個,而且大概也是目前 採用最廣 的協定。
如果你想看更完整的實作範例,可以去看我的 MCP samples repository。我也有搭配這些 sample 做了一份 MCP 簡報,可以一起參考。
Agent2Agent Protocol(A2A)
Agent2Agent(A2A)Protocol 是由 Google 推出的開放協定,主要是要把 不同框架、不同平台上的 agent 彼此溝通的方式標準化。
如果說 MCP 比較像是在處理 agent 跟工具之間的互動,那 A2A 就是在處理 agent 跟 agent 之間的互動。
也就是說,它的重點不是「怎麼呼叫工具」,而是「不同 agent 要怎麼互相合作、交換資訊、分工做事」。
相較於 MCP,A2A 是比較新的 protocol,目前也還在持續演進中。
如果你想讓自己的 agent 支援 A2A,可以把它包成 AgentExecutor 介面;或者你也可以直接使用像 ADK 這類 agent framework,讓 MCP 跟 A2A 的整合變得更簡單。
如果你想看實際範例,我有整理一份 A2A samples,裡面會展示 A2A 在不同語言中的實作,像是 Python 跟 C#,也會示範 Agent Development Kit(ADK) 怎麼幫忙簡化 A2A 溝通流程。
另外我也有一份搭配 sample 的 A2A 簡報 可以參考。

Agent-User Interaction Protocol(AG-UI)
AG-UI 是由 CopilotKit 提出的開放式、輕量級、事件驅動(event-based)協定,目的是把 agent backend 跟 agent frontend 之間的連接方式標準化。
簡單講,它就是在處理:
你的 agent 背後怎麼跟前端 UI 接起來,讓使用者真的可以用得到。
在 client 端,CopilotKit 是 AG-UI 的參考實作,但也不是只有它能用,還有其他 client 可以搭配。
而在 agent 端,目前也已經支援很多主流的 agent framework,像是 LangGraph、CrewAI、Google ADK 等等。
AG-UI 跟 MCP、A2A 的差別是什麼?
看到這裡,你可能會開始想:
「好,那 AG-UI 跟 MCP、A2A 到底差在哪裡?」
其實可以很簡單這樣理解:
- MCP:幫 agent 接工具。
- A2A:讓 agent 跟其他 agent 對話。
- AG-UI:讓 agent 能進到真正面向使用者的應用程式裡。
所以這三個不是互相取代的關係,比較像是各自負責不同層的事情。
如果你想更進一步看說明,可以參考我整理的 MCP、A2A、AG-UI 介紹,以及我的 AG-UI samples。
Agent to UI Protocol(A2UI)
Agent to UI Protocol(A2UI) 是由 Google 提出的 生成式 UI 協定。
它的核心概念很有趣:不是你先把整個 UI 手工寫好,再讓 agent 塞內容進去;而是 讓 agent 根據既定的 UI widget 清單,直接生成豐富又可互動的介面。
而且它不只侷限在網頁上,還可以應用在 web、mobile、desktop 等不同平台。
換句話說,以前比較像是:「我幫 agent 做一個 UI。」
現在 A2UI 的想法比較像是:「我先定義好可以用哪些 UI 元件,然後讓 agent 自己決定要怎麼組出介面。」
A2UI 跟 AG-UI 一樣嗎?
雖然 AG-UI 跟 A2UI 名字看起來很像,但它們其實做的事情差很多,而且是 互補 的,不是重疊的。
你可以這樣記:
- AG-UI:把你的前端應用程式接到任意 agent backend。
- A2UI:定義 agent 回應時可以用什麼方式產生 UI widget。
所以:
- AG-UI 比較像是「連接層」
- A2UI 比較像是「介面生成規格」
兩個一起用,整個 agent application 的 UI 體驗就會變得更完整。
如果你想看更多內容,可以參考 AG-UI and Generative UI Specs,以及 AG-UI and A2UI 相關資料。
結論
這篇文章用比較高層次的方式,帶大家快速看過 MCP、A2A、AG-UI、A2UI 這四個重要的 agent protocol。
如果你現在剛開始接觸 agent ecosystem,真的很容易被這些名詞搞得有點亂,但其實只要抓住它們各自負責的角色,就會清楚很多:
- MCP 負責工具、資源、prompt 的標準化存取
- A2A 負責 agent 之間的互通
- AG-UI 負責 agent backend 跟前端應用的銜接
- A2UI 負責讓 agent 能直接生成互動式 UI
下一篇文章,我會更深入聊聊 AG-UI 跟 A2UI,帶大家看這兩個 protocol 更細的設計與使用方式。
如果你想繼續研究這些主題,也可以去看看我整理的相關資源。















