MCP、A2A、Agent Skills、Plugin、WebMCP 這幾個名字經常被放在同一句話裡比較,而它們各自處理的是不同層的問題。以下依序釐清三個問題:這些東西各自標準化了什麼、三種擴充機制的實際差別、以及四個框架的架構取向。
這幾個名字標準化的對象不同:
| 標準化的對象 | 代表 |
|---|---|
| agent 怎麼列出與呼叫工具 | MCP |
| agent 怎麼找到彼此、委派任務、回傳結果 | A2A |
| 技能怎麼打包成可攜的資料夾 | Agent Skills |
| 網站怎麼把自己的功能開放給 agent | WebMCP |
| 怎麼寫出一個 agent | ADK、LangGraph、Hermes、OpenClaw |

前四項是協定或格式規範,最後一項是實作。一份規範可以同時被多個框架支援,一個框架也會挑幾份規範來實作。
這三個機制都在回答「怎麼讓 agent 多會一件事」,差別在生效的位置。
Anthropic 在 2025 年 10 月的文章裡給的定義是:
有組織的資料夾,裝著指令、腳本與資源,agent 可以動態發現並載入,以便在特定任務上表現更好
最小結構是一個資料夾加一個 SKILL.md,YAML frontmatter 必須有 name 與 description。關鍵設計是漸進式揭露(progressive disclosure),分三層載入:
name 與 description 放進 system prompt,讓模型判斷相關性SKILL.md 載入 context這解釋了 Skill 佔用 context window 的方式,常駐的部分只有第一層,其餘兩層在需要時才載入。
這個詞在不同 runtime 指涉的對象不同:
| runtime | plugin 是什麼 | 內容 |
|---|---|---|
| Claude Code | 安裝與散布的單位 | 官方定義是「自足的元件目錄」,可打包 skills、agents、hooks、MCP servers、LSP servers、monitors,.claude-plugin/plugin.json 清單可省略 |
| Hermes Agent | 程式碼層的擴充 | Python 模組,例如自訂的 model provider,行程啟動時載入 |
在 Claude Code 裡,skill 可以裝進 plugin 一起散布。在 Hermes 裡兩者是不同機制,一個進 context、一個進行程。
跨行程的協定介接,工具跑在另一個行程甚至另一台機器,agent 透過 JSON-RPC 呼叫它。
它與前兩者最大的差別在故障邊界:
這也是它能跨框架重用的原因,工具側與 agent 側本來就跑在不同行程。
Skill 提供做事的步驟,Plugin 改變 runtime 行為,MCP server 提供外部能力
A2A 官方網站把界線畫得很直接:
MCP 處理 agent 對工具的通訊,A2A 處理 agent 對 agent 的通訊
官方文件另外把兩者定位為互補關係,原話是「它們解的是兩個不同的問題,設計上就是要一起運作」。時程上,Google 在 2025 年 4 月推出 A2A,2025 年 6 月 23 日捐給 Linux Foundation 成立專案,當時新聞稿的說法是「超過 100 家領先的技術公司」參與,目前規範已到 v1.0。
把另一個 agent 當成 OpenAI 相容端點來呼叫時,會出現一種很難察覺的失效:
tool_calls 寫進 OpenAI 格式的回應tool_calls,以為那是自己應該執行的工具Unknown tool 並開始重試協定相容涵蓋的是訊息格式,chat completions 預設對面是一個模型,工具由呼叫端自己執行
| 框架 | 官方定位 | 核心抽象 |
|---|---|---|
| Google ADK | 開源 agent 開發框架,讓你在企業規模下建置、除錯與部署可靠的 agent | 以程式碼宣告 agent,往上疊多 agent 工作流 |
| LangGraph | 低階的編排框架與 runtime,用於建置與部署長時間執行的有狀態 agent | 圖、節點、邊與狀態,強調可續行的執行 |
| OpenClaw | MIT 授權,TypeScript 與 Swift 撰寫,2025 年 11 月釋出 | gateway 是長駐行程,收訊息、呼叫模型、執行工具、回覆 |
| Hermes Agent | 開源常駐 agent runtime | 記憶、技能、身分宣告、排程四項內建 |
LangGraph 官方文件明講它比 LangChain 的 agent 抽象更低階,只是要開始做 agent 或想要高階抽象時,官方建議改用 LangChain 的預建架構。
低階的意思是控制權留在開發者手上,代價是每一步都要自己定義。
WebMCP 讓網站透過 navigator.modelContext 這個新的瀏覽器 API,把自己的 JavaScript 函式以結構化工具的形式開放給 agent。技術註記把它的來歷寫得很清楚:概念源自 Amazon 的 Alex Nahas 為了解決 OAuth 授權問題而做的 MCP-B(Model Context Protocol for Browsers),後由 Microsoft 與 Google 共同推進,文件掛名的三位編輯分別來自 Microsoft 與 Google。
規範地位與實作進度各自獨立推進:
chrome://flags 打開「WebMCP for testing」旗標一份規範走到 Community Group Report,代表它有人在寫,與瀏覽器把它端上預設開關是兩段各自獨立的進度
這次選型的判斷落在一個問題上:要控制的是流程,還是要維持存活。
| 需求 | 官方定位對得上的取向 |
|---|---|
| 精確控制每一步的分支與迴圈 | 圖式編排,LangGraph 這類 |
| 多 agent 分層協作、企業級部署 | 程式碼宣告式,ADK 這類 |
| 無人值守、長期活著、跨平台收訊息 | 常駐型 runtime,Hermes 與 OpenClaw 這類 |
同名不同物是這一層最花時間的地方,plugin 就是例子。
Hermes 的 plugin 是 Python 模組,放在 runtime 的擴充目錄下,行程啟動時載入。Claude Code 的 plugin 是打包清單,裡面可以裝 skills、hooks、MCP servers,內容由清單描述。
拿其中一邊的文件去對照另一邊,目錄結構分屬兩套,原因是兩個專案用同一個字指涉不同東西。
先分辨是哪一個 runtime,比研究目錄結構的差異更快找到答案。
MCP 在 2026 年 7 月 28 日改版的內容,以及它對自建 server 的影響。