一、導讀
2025 年 4 月 9 日,Google 正式發布了 Agent2Agent(A2A)協議。
A2A 協議致力于打破智能體之間的隔閡,讓它們能夠跨越框架和供應商的限制,以一種標準化、開放的方式進行溝通與協作
截止到現在,代碼倉庫已經4.5k星
https://github.com/google/A2A
接下來,本文將深入剖析 A2A 協議的核心概念與架構,通過具體案例展示其在實際應用中的功能,
最后總結 A2A 協議對人工智能領域未來發展的重要意義。
二、A2A協議介紹
官方文檔:https://google.github.io/A2A/#/documentation
本節為摘要,需要深度了解的可以自行查看
1、A2A與MCP協議的關系
-
MCP是專注模型的工具或數據的調用
-
A2A 更多是專注智能體的合作,跟MCP并不矛盾,是一個互補關系
2、以應用場景分析
想象一下,我們有下面一個協作流程
-
用戶請求:
- 用戶向系統提出生成銷售分析報告的需求。
-
售前洞察代理工作:
售前洞察代理
分析銷售數據,識別關鍵的銷售趨勢和客戶行為模式。- 它確定報告中需要包含的關鍵指標,如銷售額、產品類別、地區分布等。
-
數據可視化代理工作:
數據可視化代理
接收售前洞察代理
提供的分析結果和關鍵指標。- 它利用MCP協議使用工具層提供的數據和API生成相應的圖表和圖形。
-
A2A 協作:
數據可視化代理
通過A2A協議將生成的圖表發送給售前洞察代理
。售前洞察代理
接收圖表,并將其整合到銷售分析報告中。
-
報告生成:
售前洞察代理
完成報告的編寫,包括對圖表的解釋和對銷售策略的建議。- 報告突出顯示業績增長點和潛在問題,為用戶制定本季度的銷售策略提供支持。
-
報告交付:
售前洞察代理
將完整的銷售分析報告交付給用戶。
這些組件都來自不同的生態圈,但是遵從相同協議,使得他們可以向搭積木一樣,由用戶的"問題"
自我調度生態圈的積木,產生了一個解決用戶問題的的智能體。
3、A2A概念&功能
A2A協議的核心概念包括:
- 功能發現:智能體可以使用JSON格式的智能體卡(
類似智能體的名片
)來公布其功能與驗證方式,從而讓客戶端智能體能夠確定可以執行任務的最佳智能體,并利用A2A與遠端智能體進行通信。 - 任務管理:A2A協議定義了一個“任務”對象,客戶端和遠程Agent之間的所有溝通都是圍繞著完成任務來進行的。這個“任務”對象有自己的生命周期(比如:待處理、進行中、已完成、失敗等)。
- 協作:智能體可以相互發送消息,以傳達上下文、回復、交付物或用戶說明。
- 用戶體驗協商機制:每條消息均包含若干“內容單元”,每個單元均標注特定內容類型,使客戶端與遠端智能體能夠協商確定所需格式,并特別涵蓋UI能力的協調。
A2A協議的功能包括:
- 允許智能體之間相互通信,安全地交換信息,并在各種企業平臺或應用程序上協調行動。
- 支持企業級身份驗證與授權,其認證方案在發布時即與OpenAPI標準保持同步。
- 支持包括音視頻流在內的多種交互模態,并采用靈活設計,既能高效處理即時任務,也能支持需要數小時甚至數天(含人工介入環節)的深度研究任務。
通過A2A協議開發的智能體,可以通過https://domain/.well-known/agent.json
被開放式的發現,下面的案例會單獨將
A2A比較重要的是一個 智能體的卡片(Card)https://google.github.io/A2A/#/documentation?id=agent-card-1
三、案例
克隆這個項目
https://github.com/google/A2A
git clone https://github.com/google/A2A
我們將啟動2個Agent以及web界面,依賴與python3.13版本,并且安裝使用uv
pip install uv
在此之前,會用到google的 Gemini Api key,自行注冊一個
https://aistudio.google.com/apikey
1、CrewAI
本示例演示了一個使用 CrewAI 構建并通過 A2A 協議暴露的簡單圖像生成代理。
詳情關于這個內容請閱讀:
https://github.com/google/A2A/tree/main/samples/python/agents/crewai
白話文【畫圖的Agent】
啟動服務
cd samples/python/agents/crewai
echo "GOOGLE_API_KEY=your_api_key_here" > .env 或者 set GOOGLE_API_KEY=你的key
這個命令將自動安裝包跟運行服務
uv run .
默認為10001端口
現在我們來看看這個智能體的卡片信息
http://localhost:10001/.well-known/agent.json
我將描述的信息翻譯如下
-
基本信息:
name
:智能體的名稱,這里是“Image Generator Agent”。description
:對智能體功能的簡要描述,說明它可以按需生成高質量圖像,并利用強大的編輯功能來修改、增強或完全轉換視覺內容。url
:智能體的服務地址,這里是http://localhost:10001/
,表示智能體在本地服務器上運行。version
:智能體的版本號,這里是1.0.0
。
-
能力(capabilities):
streaming
:是否支持流式傳輸,這里是false
。pushNotifications
:是否支持推送通知,這里是false
。stateTransitionHistory
:是否支持狀態轉換歷史,這里是false
。
-
輸入和輸出模式(Input and Output Modes):
defaultInputModes
:智能體默認接受的輸入模式,包括文本(text
)、純文本(text/plain
)和PNG圖像(image/png
)。defaultOutputModes
:智能體默認提供的輸出模式,同樣包括文本(text
)、純文本(text/plain
)和PNG圖像(image/png
)。
-
技能(skills):
- 包含一個或多個技能,每個技能都有其ID、名稱、描述、標簽和示例。
- 在這個例子中,有一個技能
image_generator
:id
:技能的唯一標識符,這里是image_generator
。name
:技能的名稱,這里是“Image Generator”。description
:技能的詳細描述,與智能體的描述相同。tags
:與技能相關的標簽,這里包括generate image
和edit image
。examples
:技能的使用示例,這里是一個示例“Generate a photorealistic image of raspberry lemonade”。
2、LangGraph
本示例演示了一個使用 LangGraph 構建并通過 A2A 協議公開的貨幣轉換代理。它展示了支持多輪對話和流式響應的會話交互。
詳情關于這個內容請閱讀:
https://github.com/google/A2A/blob/main/samples/python/agents/langgraph/README.md
白話文【貨幣匯率計算的】
啟動服務
cd samples/python/agents/langgraph
echo "GOOGLE_API_KEY=your_api_key_here" > .env 或者 set GOOGLE_API_KEY=你的key
這個命令將自動安裝包跟運行服務
uv run .
同樣的你也可以訪問這個智能體卡片信息
http://localhost:10000/.well-known/agent.json
3、在頁面進行測試
cd demo/ui
echo "GOOGLE_API_KEY=your_api_key_here" > .env 或者 set GOOGLE_API_KEY=你的key
這個命令將自動安裝包跟運行服務
uv run main.py
你將看到下面內容
訪問頁面
http://localhost:12000/
將剛剛2個Agent全部注冊上去
隨后就可以體驗對話了
你可以問,剩下的你自己的體驗吧!
- 美元換算 (LangGraph)
- 幫我畫一直小鳥(CrewAI)
四、結論
-
制定標準
我總覺得google正在搶占標準,掌控生態,國內起始早就有人在搞了
https://www.showapi.com/news/article/67da437d4ddd791c0e00a39f
誰能制定標準,那么后續在Agent生態圈中一定會有主導權,或許就是“安卓” “IOS” “小米” 生態圈了
-
MCP會持續發展
講真的 MCP就是將數據跟API等,能夠實現一個插座調用,A2A有點像是過度設計
一個Agent,即可以看成工具,也可以說是Agent,這種狀態說不清的,各位看官自有見解
下面是A2A官方的一幅圖,對應的文檔地址可以自己看看
https://google.github.io/A2A/#/topics/a2a_and_mcp