Google A2A 與 MCP

來源資訊

摘要

這篇文章分析 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/sendtasks/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 通訊。

對本庫的意義

待追問

  • A2A 與 MCP 在實作上應如何分層,避免 agent-to-agent 與 tool-calling 邊界混亂?
  • Agent Card 是否會成為 agent 生態的 discovery / SEO 層?
  • 多 agent 協作中的安全、認證、授權與責任歸屬如何設計?