IBM 的 ACP 開 repo 144 天後宣布併入 A2A,公告裡的遷移指南連結現在是 404
2025 年 2 月 18 日,PyPI 上多了一個叫 acp-sdk 的套件,版本 0.0.1。這時候 GitHub 上還找不到 i-am-bee/acp,那個 repo 要再過 44 天才會建立。
名字先講清楚,免得跟本站舊文混在一起。這篇的 ACP 是 IBM Research 做的 Agent Communication Protocol,管的是 agent 跟 agent、跟應用程式、跟人之間怎麼溝通。四月寫過的 OpenAB 那篇也有一個 ACP,那是 Agent Client Protocol,處理編輯器和 coding agent 之間的連線。是兩個不同的協定,只是縮寫撞名。
它想解的問題,README 寫得很白:「Modern AI agents are often built in isolation, across different frameworks, teams, and infrastructures. This fragmentation slows innovation and makes it harder for agents to work together effectively.」換成辦公室的說法:你用 A 框架寫的 agent,要去叫隔壁團隊用 B 框架寫的 agent,兩邊沒有共同語言,只能各開各的 API 湊合。ACP 的解法是把這件事寫成一份 OpenAPI 規格,放在 repo 的 docs/spec/openapi.yaml,再配 Python 和 TypeScript 兩套 SDK。官網介紹頁的說法是,端點就是一般的 REST,用 curl 或 Postman 就能打。
acp-sdk 我沒有裝過,openapi.yaml 的內容我也沒讀。下面的時間點出自這幾個地方:2026 年 10 月 8 日用 GitHub API 查到的 repo 資料、PyPI 的版本紀錄、IBM 團隊在 GitHub Discussions 貼的公告、現在的遷移指南;A2A 那邊的兩個日期另外取自 Google 開發者部落格和 Linux Foundation 的新聞稿。
公告說三月,repo 說四月
故事的起點,兩份紀錄就對不上。
2025 年 8 月 25 日那篇公告這樣交代起點:「IBM Research launched the Agent Communication Protocol (ACP) in March 2025 to power its BeeAI Platform, an open-source platform exploring agent interpretability.」接著說「Later that month, the BeeAI project—and with it, ACP—was donated to the Linux Foundation」。
GitHub 給的是另一個日期。i-am-bee/acp 建立於 2025 年 4 月 3 日 08:40(UTC),不到十一分鐘就有了第一筆 commit,訊息就一個字「init」。Releases 列表上最早的一筆是 4 月 14 日的 release 候選 v0.1.0rc5,正式的 v0.1.0 在 4 月 17 日。
PyPI 又是第三種樣子。0.0.5 上傳於 3 月 18 日,0.0.6 是 3 月 31 日,都落在三月,跟公告講的「March」不衝突;可是 0.0.1 早在 2 月 18 日就有了。三份紀錄我並排放著,不替它們圓。公告說的「推出」指的是哪個動作,原文沒交代。PyPI 比公開 repo 早一個多月,代表 ACP 在 repo 公開之前已經在別處開發,在哪裡,我手上的資料查不到。
四月:隔壁也開張了
把另一個協定放上同一條時間軸,四月就熱鬧了。
Google 的 A2A(Agent2Agent)repo 建立於 2025 年 3 月 25 日,比 ACP 的公開 repo 早 9 天;建立當下有沒有公開,我不知道。Google 在開發者部落格正式公布 A2A 是 4 月 9 日,距離 ACP 開 repo 只有 6 天。再過 8 天,ACP 發了 v0.1.0。
| 日期 | ACP | A2A |
|---|---|---|
| 2025-02-18 | acp-sdk 0.0.1 上 PyPI |
|
| 2025-03-25 | GitHub repo 建立 | |
| 2025-04-03 | GitHub repo 建立,第一筆 commit「init」 | |
| 2025-04-09 | Google 開發者部落格公布 | |
| 2025-04-17 | v0.1.0、v0.2.0 同日發布 | |
| 2025-05-21 | TypeScript SDK 第一個 release | |
| 2025-06-23 | GitHub Releases 頁的最後一批 | Linux Foundation 宣布成立 A2A 專案 |
| 2025-08-21 | acp-sdk 1.0.3 上 PyPI,最後一版 |
|
| 2025-08-25 | 公告併入 A2A,repo 最後一次推送 |
這一段最讓我意外的是 ACP 那邊的速度。v0.1.0 跟 v0.2.0 是同一天,v0.3.0 隔天就出來。4 月 24、25 兩天,版本從 v0.4.0 一路跳到 v0.7.1。4 月 29 日再補 v0.8.0 和 v0.8.1。整個 repo 一輩子 302 筆 commit,4 月一個月就佔了 154 筆,超過一半。
像兩家賣同一種東西的店,在同一條街上隔一週開張,晚開的那家開幕第一個月忙到幾天就換一次招牌。
公告回頭講這段時,用的句子很平靜:「When the Agent2Agent Protocol (A2A) came on the scene a month later, we immediately saw alignment in how our teams approached the challenge of enabling agents to communicate and began exploring how to bring the efforts together.」我會盯著「immediately」這個字。照這個說法,他們很早就開始研究怎麼把兩邊合在一起,可是版本號沒有停。
五月、六月:SDK 長齊了,A2A 進了 Linux Foundation
5 月 16 日 v0.9.0,19 日 v0.9.1。5 月 21 日,TypeScript SDK 發了第一個 release(typescript_v0.0.2 和 typescript_v0.1.0)。之後 Python 和 TypeScript 分開編號:5 月 28 日 python_v0.10.0,6 月 18、19、23 日兩套 SDK 各發一輪。commit 數也沒掉,五月 55 筆,六月 72 筆。
功能也在長。README 的 What’s New 列了 Trajectory Metadata、Distributed Sessions、Citation Metadata,還有用 Redis 或 PostgreSQL 做集中儲存的 High Availability 支援。照 README 的核心概念表,ACP 有六個概念:Agent Manifest、Run、Message、MessagePart、Await、Sessions。
6 月 23 日,Linux Foundation 在丹佛的 Open Source Summit North America 宣布成立 Agent2Agent Protocol 專案。同一天,ACP 發了 python_v0.12.2 和 typescript_v0.3.1,這是 GitHub Releases 頁上的最後一批。兩件事同一天,我手上的資料看不出它們有關,只是日期剛好疊在一起。
七月、八月:commit 掉到個位數
七月 14 筆,八月 7 筆,之後歸零。
最後幾筆功能提交很小:7 月 24 日「fix: Potential fix for issue 222 (#226)」,8 月 15 日「fix(python): caching on resource loader (#229)」,8 月 21 日把版本推到 1.0.3。GitHub 的 Releases 頁停在 6 月 23 日,PyPI 沒停,acp-sdk 一共累積了 46 個版本,最後一版 1.0.3 在 8 月 21 日上傳。
四天後,8 月 25 日 17:00(UTC),maintainer geneknit 在 i-am-bee 組織的 Discussions 貼出置頂公告,標題「ACP Joins Forces with A2A Under the Linux Foundation」。核心就兩句:「Today, we’re excited to share that ACP is officially merging with the A2A under the Linux Foundation (@thelinuxfoundation) umbrella.」以及「As part of this transition, the ACP team will be winding down active development and will begin contributing its technology and expertise directly to A2A.」
不到兩小時後,18:42,repo 收到 docs: A2A announcement (#230),README 加了 18 行,頂端掛上「ACP is now part of A2A under the Linux Foundation!」的橫幅,quickstart 和 welcome 兩份文件各加 8 行。這是 repo 的最後一次推送,距離開 repo 正好 144 天。
公告沒說為什麼,名單說了一部分
公告裡最接近「理由」的一句,出自 IBM Research 的 Kate Blair,原文職稱是「Director of Incubation for IBM Research who has overseen ACP’s development」:「By bringing the assets and expertise behind ACP into A2A, we can build a single, more powerful standard for how AI agents communicate and collaborate」。
至於 ACP 為什麼是被併的那一方,原文沒有交代。能查證的差距在別的地方。公告寫 Blair 會代表 IBM 進 A2A 的技術指導委員會,「alongside representatives from Google, Microsoft, AWS, Cisco, Salesforce, ServiceNow, and SAP」。兩邊授權都是 Apache-2.0。2026 年 10 月 8 日查,ACP 的 repo 有 1,018 顆星、26 位貢獻者,A2A 有 26,073 顆星,當天還有推送。
兩份規格誰設計得好,我兩份都沒讀,沒資格評。我的立場是這樣:挑 agent 之間要講的協定,我會先看治理名單和 repo 的 archived 欄位,最後才看規格寫得漂不漂亮。ACP 在 PyPI 累積了 46 個版本,功能一直在長,最後還是收掉,光看規格看不出這個結局。會讓我改想法的情況也很具體:哪天出現一個名單短、規格短的協定,單靠技術把名單長的那個擠下去。ACP 這次沒有。
照著公告走,第一步就斷了
公告裡說「Migration paths and documentation will be provided to help ACP users seamlessly move to A2A.」,附了一條遷移指南的連結,指向 beeai-platform repo 的 docs/community-and-support/acp-a2a-migration-guide.mdx。
這條連結現在點下去是 404。
第一層原因是 repo 改名了。用 GitHub API 查 i-am-bee/beeai-platform,回來的 full_name 已經是 i-am-bee/agentstack。指南搬到 docs/stable/community/acp-a2a-migration-guide.mdx,檔案的提交紀錄裡有一筆 2025 年 10 月 29 日的「chore: update naming for agentstack in docs (#1418)」,11 月 6 日又有一筆「docs: overhaul (#1478)」。現在的路徑跟公告裡那條比,repo 名稱和目錄兩層都不一樣。要找這份指南,拿檔名 acp-a2a-migration-guide.mdx 直接到 agentstack repo 搜,比點公告裡的連結快。
指南的標題是「ACP to A2A Migration Guide」,說明寫的是給 Agent Stack v0.3.x 以上。裡面的 checklist 有六項:acp_sdk 換成 agentstack_sdk;改 import 和函式簽名;Metadata 換成 AgentDetail;更新訊息處理;更新 trajectory 和 citation 的處理;改用 LLM service extension。範例的相依套件從 acp-sdk>=1.0.0 改成 agentstack-sdk>=0.4.0,型別改從 a2a.types 匯入 AgentSkill 和 Message。
六項裡只有第一項是改套件名。後面五項都得改你自己的程式碼。
現在
2026 年 10 月 8 日,i-am-bee/acp 是封存狀態,open issue 是 0,最後一次推送停在 2025 年 8 月 25 日,距今 409 天。
ACP 的 repo 封存了,旁邊的專案還在動。改名後的 agentstack 同一天還有推送;同一個 i-am-bee 組織下的 beeai-framework 沒封存,2026 年 7 月 24 日還發了 python_v0.1.82。公告也說,BeeAI 框架可以透過 A2AServer adapter 變成 A2A 相容,外部的 A2A agent 可以用 A2AAgent 接進來,「The BeeAI platform, previously powered by ACP, now uses A2A to support agents from any framework.」
我比較想知道的是 ACP 那幾個概念的下落。README 的六個核心概念裡,Await 的說明是「Let agents pause to request information from the client and resume」;官網還提到 agent 不在線的時候也能被找到。公告說,第一批要把 ACP 功能帶過去的 issue,已經開在 A2A 的 GitHub 上。那幾個 issue 後來合了哪些、被拒了哪些,我還沒去翻。
參考資料
- ACP repo(已封存):https://github.com/i-am-bee/acp
- 併入 A2A 的公告(i-am-bee Discussions #5):https://github.com/orgs/i-am-bee/discussions/5
acp-sdk在 PyPI:https://pypi.org/project/acp-sdk/- ACP 官網:https://agentcommunicationprotocol.dev
- A2A repo:https://github.com/a2aproject/A2A
- Google 開發者部落格〈A2A: A new era of agent interoperability〉:https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/
- Linux Foundation 新聞稿:https://www.linuxfoundation.org/press/linux-foundation-launches-the-agent2agent-protocol-project-to-enable-secure-intelligent-communication-between-ai-agents
- 遷移指南現行位置:https://github.com/i-am-bee/agentstack/blob/main/docs/stable/community/acp-a2a-migration-guide.mdx










