A2A 協定——AI 與 AI 之間的對話
Hermes 訊息平台接入第13篇:A2A。Agent 之間互相通訊的開放協定。
這篇教學將帶你了解 Hermes Agent 的 A2A 功能,讓你的 AI 能和別的 AI 直接「打電話」聊天、互相派活,就像人類用微信溝通一樣簡單。
為什麼需要 A2A?——AI 界的「電話線」
想像一下,你的電腦上有個 Hermes 管家,但有些活兒它不擅長(比如查最新論文)。以前你得手動複製貼上,現在有了 A2A 協定,你的管家可以直接「打電話」給另一台機器上的專家 AI,問完再把答案帶回來。A2A 就是 AI 之間的標準通話協定,不管對方用的是 Hermes、LangChain 還是 Google 的 AI,只要都支援這個協定,就能互相交流。
什麼時候用? 當你的 AI 需要跨電腦、跨軟體找別的 AI 幫忙時。如果只是同一台電腦上的多個 AI,用「委派」功能更輕便。
第1步:打開 A2A 開關
打開終端機,輸入:
hermes gateway setup # 選擇 A2A
或者直接編輯設定檔 ~/.hermes/config.yaml:
gateway:
platforms:
a2a:
enabled: true
extra:
port: 9900
預設只允許本機存取,安全第一。
第2步:讓你的 AI 能「打出去」(Outbound)
預設情況下,A2A 的「撥號工具」是關閉的。用 hermes tools 啟用後,你的 AI 就多了幾個新技能:
| 工具 | 作用 |
|---|---|
a2a_discover(url) |
查看對方 AI 的「名片」(會什麼技能) |
a2a_call(agent, message) |
給對方發訊息、要回覆 |
a2a_orchestrate(capability, msg) |
群發任務給所有會某項技能的 AI |
在設定裡存好「通訊錄」:
a2a_agents:
researcher:
url: "http://research-box.local:9900"
auth: { type: bearer, token: "..." }
capabilities: [web_search, research]
然後你只要對 Hermes 說:「問問 researcher 幫我總結今天的 arXiv 論文」,它就會自動去聯絡對方。
第3步:讓你的 AI 能被「打進來」(Inbound)
啟用平台後,Hermes 會變成一個「服務台」:
- 名片地址:
http://你的地址:9900/.well-known/agent-card.json(別人能看到你的 AI 會啥) - 接電話:別人透過標準 A2A 協定發訊息,你的 Hermes 會像處理微信訊息一樣處理它,用同一個大腦、記憶和工具,最後把結果回覆回去。
第4步:安全設定(重要!)
A2A 預設很安全,但你要主動「開門」才能被外網存取:
- 不給鑰匙(token)就只能本機玩。想對外開放,必須設定令牌:
export A2A_BEARER_TOKEN="你的秘密令牌" export A2A_HOST="0.0.0.0" # 允許任何機器存取 - 更推薦給每個朋友單獨鑰匙:
export A2A_PEER_TOKENS="alice:tok1,bob:tok2" - 防忽悠:外來的訊息會被標記為「不可信」,不能執行你的斜線指令。
- 防刷屏:兩個 AI 最多來回聊 5 輪(可調),防止死循環。
第5步:快速測試
在另一台電腦上試試:
curl http://你的主機:9900/.well-known/agent-card.json
如果能看到 JSON 格式的「名片」,就說明你的 AI 已經準備好和世界對話了!
常見問題
- 別人說存取不了名片? 檢查你是否設定了
A2A_PUBLIC_URL(公網地址)。 - 提示 401 錯誤? 令牌不匹配,檢查雙方設定。
- 任務跑太久逾時? 調大
A2A_REPLY_TIMEOUT,或者讓呼叫方註冊「回呼通知」。
總結一下:A2A 讓你的 Hermes 既能當「甲方」找別的 AI 幫忙,也能當「乙方」被別人呼叫。整個過程就像給 AI 裝了一部電話,安全又方便。
下篇預告:訊息平台接入系列還沒完!下一篇我們將聊聊如何讓 Hermes 接入 Telegram,讓你的 AI 管家住進手機裡,隨時聽候差遣。敬請期待!
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/messaging/a2a