文章目錄
- 1. 引言:背景與三協議概覽
- 2. MCP(Model Context Protocol)
- 起源與動因
- 架構與規范要點
- 開發實踐
- 3. A2A(Agent-to-Agent Protocol)
- 起源與動因
- 架構與規范要點
- 開發實踐
- 4. AG-UI(Agent-User Interaction Protocol)
- 起源與動因
- 架構與規范要點
- 開發實踐
- 5. 對比與組合使用建議
- 6. 如何落地

1. 引言:背景與三協議概覽
隨著大模型(LLM)從單一問答工具逐步演進到具備自主決策能力的Agent,開發者面臨三大痛點:
- 外部資源集成困難(M×N 適配挑戰)
- 多 Agent 協作通信缺乏統一標準
- 前端 UI 與后端 Agent 交互混亂多樣
為了解決上述問題,業界先后推出了三套開放協議:
- MCP:模型 ? 工具/資源 的統一“USB-C”接口
- A2A:Agent ? Agent 的“網絡協議”
- AG-UI:Agent ? 用戶界面 的“翻譯官”
2. MCP(Model Context Protocol)
起源與動因
- M×N 集成難題:不同模型(M)要接入不同工具或數據源(N),往往需要自己實現 M×N 套適配。
- 解決方案:Anthropic 于 2024 年 11 月開源 MCP,將各種工具/數據源封裝成符合協議的 Server,模型端只需一套 Client 即可接入所有資源。
架構與規范要點
-
客戶端–服務器模式
- MCP Client:嵌入到 LLM 應用中,負責發起請求。
- MCP Server:將工具、數據庫或 API 封裝成輕量服務,暴露統一接口。
-
協議標準化內容
- 傳輸層:JSON-RPC / HTTP / SSE
- 消息格式:請求/響應、批量處理、工具注解等
- 安全與授權:API Key、OAuth2 等
開發實踐
-
編寫 MCP Server
- 使用官方 SDK(Python/JS/Go/Java)或直接按照規范實現 HTTP 接口。
- 定義工具元數據(名稱、輸入輸出 schema、權限要求)。
-
在 LLM 應用中調用
- 引入 MCP Client,加載各 Server 的“描述文件”(類似 USB-C 的 PD 協商)。
- 發起工具調用請求,處理返回結果。
-
最佳實踐
- 批量模式:合并多次調用減少網絡延遲
- Streamable HTTP:實時返回流式輸出
- 工具注解:豐富命令與參數說明,提高調用準確度
3. A2A(Agent-to-Agent Protocol)
起源與動因
- 多 Agent 協作:在復雜業務場景中,往往需要不同智能體互相分工、串聯工作。
- 信息孤島:缺乏統一協議時,不同廠商或框架的 Agent“各說各話”,難以互通。
- 發布:Google 在 2025 年 4 月 Cloud Next 大會上開放 A2A,目標打造 AI Agent 的“TCP/IP”。
架構與規范要點
-
Agent Card:每個 Agent 對外的“名片”,包含名稱、版本、端點 URL、可用技能、認證方式。
-
雙向客戶端–服務端角色:
- 發起方 Agent 扮演 Client
- 接收方 Agent 扮演 Server
- 同一個 Agent 可動態切換角色
-
任務模型與流程:
submitted
→ 2.working
→ (可能input-required
)→ 3.completed
或failed
- 支持異步通知、回調、狀態查詢
-
交換內容:
- 消息:文本、文件、結構化數據
- 工件:最終結果對象
開發實踐
-
實現 A2A Server
- 準備 Agent Card 文檔(JSON 格式),托管在可訪問的端點。
- 實現標準接口:接收任務、查詢狀態、推送回調。
-
調用其他 Agent
- 發現并下載目標 Agent’s Card
- 發起 HTTP 請求到其任務接口
- 處理異步通知或輪詢結果
-
工具與框架
- 官方 SDK:Python/JS/Go/Java
- Demo 項目:配置式開啟 A2A 支持
4. AG-UI(Agent-User Interaction Protocol)
起源與動因
- UI 適配紛繁:聊天面板、助手插件、Web 應用,各自接口和消息格式不一致,開發成本高,用戶體驗差。
- 發布:CopilotKit 團隊 2025 年 5 月開源 AG-UI,將前后端交互抽象為事件流。
架構與規范要點
-
事件驅動:定義標準事件類型(文本消息、工具調用、狀態更新、用戶輸入等),前后端通過流式通道(WebSocket/SSE)收發事件。
-
雙向協作:
- Agent 發出事件,前端渲染 UI
- 用戶動作產生事件,后端 Agent 響應
-
靈活傳輸:不綁定具體協議,保證事件格式一致即可。
開發實踐
-
接入 SDK
- Python 或 TS/JS SDK,封裝底層事件通道。
- CopilotKit:快速集成示例,內置常用組件。
-
前端構建
- 訂閱事件流,按事件類型渲染消息、控件、進度等。
- 發送用戶操作事件(點擊、輸入、選擇)。
-
優化建議
- 事件分組:將相關事件打包發送,減少頻繁交互
- 重試機制:連接斷開時自動重連
- UI 組件庫:統一樣式與行為
5. 對比與組合使用建議
協議 | 解決場景 | 典型用法 | 推薦組合 |
---|---|---|---|
MCP | 模型接入工具/數據源 | URL+API Key 嵌入 LLM 應用 | 與 A2A 聯動:自動調用工具后再交給其他 Agent |
A2A | 多 Agent 間協作 | Agent Card + 異步任務流程 | 與 AG-UI 聯動:前端觸發多 Agent 協作 |
AG-UI | Agent 與用戶界面實時、結構化交互 | 事件流通道 + UI 組件 | 同時接入 MCP:用戶觸發工具調用 |
6. 如何落地
- 評估需求:先確定項目是單模型調用外部資源(MCP)、多 Agent 協作(A2A)還是復雜前端交互(AG-UI)。
- 分步實施:建議先引入 MCP,完成資源接入;再逐步拆分多 Agent 邏輯,用 A2A 構建微服務式智能體;最后以 AG-UI 打通人機交互環節。
- 選用框架/SDK:優先使用官方 SDK 或成熟開源項目,如 LangGraph、Google ADK、CopilotKit,減少底層實現成本。
- 測試與監控:設計完整的端到端測試用例,監控協議調用延遲、消息丟失、錯誤恢復等指標。