Google A2A 與 MCP
來源資訊
- 原始 URL:https://zhuanlan.zhihu.com/p/1893578344324379306
- 作者:北方的郎
- 編輯時間:2025-04-11 07:43
- 主題:Agent2Agent、Model-Context-Protocol、Agent、Google
摘要
這篇文章分析 Google 於 2025-04-09 發布的 Agent2Agent(A2A)協議,說明它如何讓 AI agent 之間互相發現能力、提交任務、追蹤長期任務狀態、交換訊息與工件。文章也把 A2A 和 Model-Context-Protocol(MCP)做對照:MCP 偏向連接 agent 與工具 / 資料,A2A 偏向連接 agent 與 agent。
作者使用「電話簿 vs 工具說明書」比喻兩者關係:A2A 像電話簿,讓 agent 知道有哪些其他 agent、它們會什麼、怎麼聯絡;MCP 像工具說明書,讓 agent 知道有哪些工具與資料源,以及如何用結構化方式操作它們。
核心提取
- A2A 目標:促進 AI agent 之間的協作,特別適合大規模、多 agent 系統。
- 設計原則:支援自然非結構化協作、利用 HTTP / SSE / JSON-RPC 等現有標準、預設安全、支援長期任務、多模態通訊。
- Agent Card:位於
/.well-known/agent.json的公共 metadata,描述 agent 能力、技能、端點 URL 與認證需求,用於能力發現。 - A2A Server / Client:server 暴露 A2A 協議方法並管理任務;client 或其他 agent 透過
tasks/send或tasks/sendSubscribe與 server 互動。 - Task:A2A 的工作單位,具有 submitted、working、input-required、completed、failed、canceled 等狀態。
- Message / Part / Artifact:message 是通訊單位,part 可包含文字、檔案、結構化資料;artifact 是任務輸出,也包含 parts。
- 長期任務支援:
tasks/sendSubscribe可用 SSE 傳送任務狀態與 artifact 更新,並可透過 webhook 做 push notification。 - A2A 與 MCP 互補:MCP 讓 agent 連到資料與工具;A2A 讓 agent 以 agent 身份互相溝通與協作。
- 交集模式:Google 建議可把 A2A agent 建模為 MCP resource,讓框架同時能用 MCP 調工具,也能用 A2A 與使用者、遠端 agent 或其他 agent 通訊。
對本庫的意義
- 補上 Agent2Agent 作為多 agent 協作協議概念。
- 將既有 Augmented-LLM 中提到的 MCP 抽出為 Model-Context-Protocol,方便後續累積工具協議與 agent 協議的差異。
- 補強 Agent-Computer-Interface:Agent Card、task 狀態、message parts、artifact 都是 agent 互操作時的介面設計問題。
待追問
- A2A 與 MCP 在實作上應如何分層,避免 agent-to-agent 與 tool-calling 邊界混亂?
- Agent Card 是否會成為 agent 生態的 discovery / SEO 層?
- 多 agent 協作中的安全、認證、授權與責任歸屬如何設計?