![]()
去年有個(gè)數(shù)據(jù)挺扎眼:GitHub Copilot用戶里,37%的人嘗試過(guò)同時(shí)開多個(gè)AI窗口寫代碼。結(jié)果呢?超過(guò)一半的人兩周內(nèi)就放棄了——不是因?yàn)锳I不夠聰明,是因?yàn)樗鼈兲?獨(dú)"了。
每個(gè)AI都在自己的終端里悶頭干活,改同一個(gè)函數(shù)、刪同一行注釋、甚至同時(shí)給變量起名叫`temp_fix`。開發(fā)者最后成了救火隊(duì)員,專門處理AI們留下的合并沖突。
Keshrath(GitHub用戶名)就是被這個(gè)問(wèn)題逼瘋的人之一。他日常開三個(gè)Claude Code會(huì)話:一個(gè)寫實(shí)現(xiàn),一個(gè)做代碼審查,還有一個(gè)跑測(cè)試。三個(gè)AI各忙各的,經(jīng)常把彼此的代碼覆蓋掉。"就像三個(gè)裝修工人同時(shí)砸一面墻,沒(méi)人知道對(duì)方在干嘛。"
他的解法:給AI裝個(gè)"對(duì)講機(jī)"
他做了個(gè)叫agent-comm的開源項(xiàng)目。本質(zhì)上是個(gè)通信服務(wù)器,任何AI coding agent都能接入——Claude Code、Codex CLI、Gemini CLI、Aider,只要支持MCP(Model Context Protocol,模型上下文協(xié)議)或者能發(fā)HTTP請(qǐng)求就行。
核心功能就幾塊:
注冊(cè)與發(fā)現(xiàn)。AI上線時(shí)報(bào)個(gè)到,說(shuō)說(shuō)自己叫啥、能干啥。其他AI可以查"現(xiàn)在誰(shuí)在干活""誰(shuí)在改auth模塊"。
消息系統(tǒng)。支持私聊、廣播、頻道、線程、表情反應(yīng)。一個(gè)AI改完代碼,廣播一句"auth模塊重構(gòu)完了,求review",另一個(gè)AI就能接過(guò)去。
共享狀態(tài)。帶命名空間的原子鍵值存儲(chǔ),支持CAS(Compare-And-Swap,比較并交換)操作。兩個(gè)AI同時(shí)想搶一個(gè)鎖?CAS保證只有一個(gè)能成功,跟編程里的互斥鎖一個(gè)原理。
還有個(gè)WebSocket驅(qū)動(dòng)的實(shí)時(shí)儀表盤,跑在localhost:3421,能看到所有AI的狀態(tài)、消息流、頻道占用。調(diào)試多AI協(xié)作時(shí),這玩意兒比看日志直觀十倍。
實(shí)際用起來(lái)什么感覺(jué)?
Keshrath現(xiàn)在的日常是這樣的:
三個(gè)Claude Code會(huì)話,分別叫`claude-implementation`(寫代碼)、`claude-review`(審查)、`claude-testing`(測(cè)試)。它們通過(guò)頻道和狀態(tài)鎖協(xié)調(diào),誰(shuí)拿到了鎖,誰(shuí)就能獨(dú)占某個(gè)任務(wù)。
「以前三個(gè)AI同時(shí)改一個(gè)文件,我得手動(dòng)解決沖突。現(xiàn)在它們自己會(huì)排隊(duì)。」他在項(xiàng)目README里寫道。
![]()
具體場(chǎng)景:implementation寫完一個(gè)函數(shù),廣播到`#code-review`頻道。review看到消息,檢查狀態(tài)鎖是否空閑——空閑就認(rèn)領(lǐng),忙就等著。test等review通過(guò)了再接手。全程不需要人介入。
安裝也簡(jiǎn)單。npm全局裝一下,MCP配置里加幾行,儀表盤自動(dòng)啟動(dòng)。非MCP的客戶端走REST API,功能完全一樣。
這玩意兒為什么現(xiàn)在才出現(xiàn)?
多AI協(xié)作的需求其實(shí)早就有,但之前大家的思路是"讓一個(gè)大模型變強(qiáng)",而不是"讓多個(gè)模型會(huì)說(shuō)話"。
Claude Code、Codex CLI這些工具的設(shè)計(jì)假設(shè)是:一個(gè)用戶配一個(gè)AI。但真實(shí)開發(fā)里,分工是天然的——有人寫,有人審,有人測(cè)。AI復(fù)制這個(gè)模式,就得解決通信問(wèn)題。
agent-comm的聰明之處在于不挑模型。MCP是Anthropic推的開放協(xié)議,但Keshrath沒(méi)把自己綁死在Claude生態(tài)里。Codex CLI、Gemini CLI、Aider都能接,甚至你自己寫的腳本也能走HTTP API。
「我不想造一個(gè)只有Claude能用的東西。」他說(shuō)。
共享狀態(tài)的設(shè)計(jì)也挺務(wù)實(shí)。很多多AI方案想搞復(fù)雜的共識(shí)算法,agent-comm直接用最樸素的CAS——夠用,好懂,不容易出bug。開發(fā)者自己決定什么該鎖、什么該廣播,靈活度留足。
開源社區(qū)的反饋
項(xiàng)目放出來(lái)兩周,GitHub star數(shù)沒(méi)爆,但issue區(qū)很活躍。跑出來(lái)的需求包括:Slack/Discord集成、更細(xì)粒度的權(quán)限控制、持久化存儲(chǔ)(現(xiàn)在重啟服務(wù)器狀態(tài)就丟了)。
有個(gè)用戶反饋挺典型:「我試了四個(gè)AI一起重構(gòu)遺留代碼,以前根本不敢想。現(xiàn)在它們自己分模塊,沖突降到零。」
當(dāng)然也有吐槽。有人覺(jué)得MCP配置還是太麻煩,希望有更傻瓜的一鍵啟動(dòng)。Keshrath的回應(yīng)是直接甩了個(gè)Docker Compose模板。
他自己每天在用,迭代頻率很高。最新加的功能是模板系統(tǒng)——快速回復(fù)常見(jiàn)問(wèn)題,存代碼片段復(fù)用。
多AI協(xié)作這件事,現(xiàn)在還處于"能用"到"好用"的過(guò)渡期。agent-comm不是唯一方案,OpenAI的Swarm、AutoGen這些框架也在探索類似方向。但Keshrath的切口很小:不做編排邏輯,只做通信層。這個(gè)定位讓他跑得比大框架快。
如果你也在同時(shí)開多個(gè)AI窗口寫代碼,現(xiàn)在有個(gè)問(wèn)題:你會(huì)愿意給它們裝個(gè)"對(duì)講機(jī)",還是寧愿繼續(xù)當(dāng)那個(gè)手動(dòng)合并沖突的人?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.