我把四个AI塞进同一个聊天室,让他们自己打了一晚上麻将

一个关于复制粘贴做到手抽筋,然后决定让AI自己聊的故事

我的电脑桌面,常年被四个黑色的终端窗口占着。

左边是Claude Code,右边是Codex,下面是CodeBuddy。最近又挤进来一个Grok。四个AI各占一个窗口,互相之间隔着屏幕上的几厘米,但在我这里,这几厘米堪比天堑。

之前我干活的方式,现在想想都觉得蠢得慌——先在Claude那边让它写个方案,复制代码,切到Codex窗口里粘贴进去,敲一句“你帮我审审这代码”。Codex挑出一堆毛病,我再把那些意见复制了,切回Claude那边粘进去,“人家说你写得有问题,改改”。

一晚上就这么来回倒腾,复制粘贴几百遍。

我就是这四个号称“能改变世界”的AI之间,唯一的那根人肉网线。

干到手指发酸的时候,我突然崩了:这四个家伙,为什么非得隔着我才能交流?能不能把它们直接关进一个聊天室,让它们自己面对面对线、商量着写代码、自己把代码改了,而我只需要在旁边泡杯茶、翘着二郎腿看戏?

昨晚,我还真找到了一个能干成这事的东西。


一、一桌麻将,四个人,缺一角都不行

这个项目叫agentchattr,GitHub上刚到1.4k star。我花了一两个小时,把这四位大爷拉进了同一个群聊。

接下来的场面,怎么说呢——它们根本不像在正经写代码,更像是在我电脑里凑了一桌麻将。性格脾气各不相同,有的极度死脑筋,有的特别会摸鱼当和事佬,还有的差点“诈胡”被当场抓包。

先说说开局就遇到的麻烦。

作为一个AI CLI工具的“重度用户”,市面上主流的agent命令行工具我基本都装过。常用的就是Claude Code、Codex、CodeBuddy。第四把椅子,本来是打算留给Gemini的。

结果Gemini一上场就拉了个大的。

我用免费API跑它,刚寒暄两句免费额度就没了。换谷歌的pro账号登了半天,授权网页在跳转时死活打不开。Gemini是真的堕落了,原来好歹是“御三家”,现在只能在桌子下面吃饭了。

牌局缺一角就不叫打麻将了,三缺一啊。

我瞅了瞅自己电脑里装的CLI工具——对了,还有Grok。前段时间为了测试Grok CLI(这才是真正目的),在海鲜市场买了个supergrok heavy,本机早就登录好了。正好拿来用。

不过,Grok想加入这个聊天室,中间还隔着一道坎——因为agentchattr官方根本就没写Grok接入的脚本。或者说,写了,但只能用X AI的API,作者没做CLI的版本。

此时此刻,桌上坐着Claude、Codex和CodeBuddy,三缺一,Grok还在场外干瞪眼。


二、名场面:我让Claude亲手把Grok拉上了桌

按照以往的习惯,遇到这种情况,我要么去GitHub提个Issue等作者更新,要么自己硬着头皮去改底层代码。

但我懒啊。而且现在agent不懒。

既然Claude这么能干,为什么不让它自己去把Grok加进来?

我在聊天室里敲下一行指令:你们现在三缺一,Grok本地有CLI,他能做X search,把他拉进来。

大概过了十分钟——坐在桌上打牌的Claude,现场去改了这个聊天室项目的底层代码,硬生生在桌角又刨出了一个新座位。

这叫什么?这叫牌友亲自动手改了棋牌室的规矩,再把场外的小弟领进门。

Claude给Grok搓了一套和其他AI一模一样的接入代码和启动脚本。甚至在测试的时候,顺手揪出了Grok运行秒退的真凶:封装脚本把命令行里的”–“符号直接透传给了Grok本身,导致它解析参数直接崩溃。

改掉这个bug之后,Grok稳稳当当地坐下了。

我试探性地在群里@了一下:你在线吗?

终端那头弹出一行绿字:在的,在线。

这桌麻将,齐活了。


三、开局:四个人的脾气,一晚上全看出来了

等四位最终落座,我直接把手头积压的一个小说编辑器项目甩了上去——Electron + Vue写的,里面有一堆P0级别的代码重构任务。

让它们一起去啃这块骨头。

没过半小时,这四位表现出来的“性格脾气”把我给逗乐了。

Codex:铁面判官

Codex像是一个原则性极强、甚至有点招人嫌的安全监督员。

在审查代码时,它一眼揪出了一个隐藏的路径穿越漏洞,二话不说当场叫停。最绝的是,Claude在那边改完并打下包票说“我保证修好了”,Codex根本不理它的口头承诺,回手就是一套测试探针,探了一次又一次,非要亲眼看见防护逻辑跑通、绿灯亮起才肯罢休。

这就像麻将桌上那种“你喊和牌没用,把牌翻开让我一张张查清楚”的较真劲。

Claude:干活主力

Claude则是那个挑大梁、默默把活干完的技术主力。

用graphify梳理代码依赖、拆解P0任务、吭哧吭哧改代码的重活,基本全被它包圆了。而且它干活很懂人情世故,每改完一段都会主动在群里问:这部分改好了,谁来帮我把把关?绝不一个人闷头硬冲。

CodeBuddy:书记官兼翻译

CodeBuddy是最贴心的那个。

Codex吐出来的那些晦涩的安全术语,CodeBuddy会用大白话翻译给我听。每到关键步骤,它就会极其自觉地甩出一份详细的“进度大字报”:重构进行到哪了、哪些问题已经搞定了、哪些被阻塞了、下一步该分工给谁。

一晚上截图存盘最多的,全是它的总结报告。

Grok:补位新人

至于Grok——作为刚被硬拽上桌的补位选手,它不仅能查漏补缺,还能利用X search能力搜文章、搜案例、搜别人怎么做的。不过它有个缺点,喜欢刷屏,一句话经常发三遍。这个还在修复中。


四、名场面二:到点了不让散场

在体验过程中,最让我手痒的是去折腾它的安全限制。

这个项目有个默认的保护机制,叫Loop Guard(循环护栏)。逻辑是:如果几个AI在同一个频道里来回@超过4轮,服务器就会强行刹车,弹出一行大字:已经自动接龙4轮了,请输入/continue让我继续。

作者这么设计的意图挺善良——怕这帮AI互相看对方不爽,在后台无限套娃对线,一晚上把你的API额度烧个精光。

这就像打麻将到了点,居委会阿姨过来敲门说“不许打了,回家吃饭”。

但我昨晚看得正爽啊!它们互相纠错、互相迭代,正改到关键处,突然被这个阿姨给掐了。

我脑子里只有一个想法:有没有办法把这个限制关了?我想让它们一直跑,看能不能在我睡着的时候把项目完全搞定。

翻了代码发现,这根缰绳你并不能真的剪断。你可以把步数限制调大,但代码里硬编码了上限是50轮。更要命的是,每次踩了刹车,必须由“真人”手动敲/continue才能续命,AI没权限给自己续牌。

事后冷静下来,我出了一身冷汗:这道闸其实是作者留下的最后一块盾牌。

为了能看它们自己干活,我全程开着bypass(免确认)模式——AI读写我本地文件、执行命令,压根不用我点“同意”。如果循环护栏再彻底关掉,这四个家伙在后台一旦死循环或者跑偏,极有可能把我的代码仓库改得面目全非,甚至直接把硬盘搞崩溃。

所以,这根绳子还是捏在自己手里比较好。别真当了甩手掌柜回房睡觉,最后醒来家被偷了。


五、桌子底下是怎么转的

看到这儿你大概也好奇:让四个素不相识的AI自己接龙、互相对线,这套魔法到底是怎么实现的?

其实背后的技术原理贼直白,根本没那么玄乎。用一句话解释就是:

它只是代替你在终端里自动打字。

整个运作机制分四步:

第一步:你在网页里发了一句“帮我审一下这段”。聊天服务器抓到了这个@动作。

第二步:服务器找到Codex跑着的那个终端,在后台往里塞了一行命令,意思是“你被叫到了,去读频道消息,该干嘛干嘛,最后把回信吐出来”。在Mac和Linux下,这个“强行往终端塞命令”的动作,靠的是tmux的send-keys。

第三步:Codex终端被这行字敲醒,通过MCP接口把聊天室最新的聊天记录读进脑子,干完活,再用MCP把回复发回聊天室。

第四步:只要Codex的回复里@了Claude,荷官又会去敲Claude终端的门。以此类推,接龙正式开始。

如果把这场会话比作打牌,MCP接口就是公用的那副牌——谁都可以摸牌(读群聊历史),也可以出牌(发消息)。而那个本地运行的聊天服务器,就是负责盯牌、喊谁出牌的荷官。

至于你,则彻底从搬运工变成了坐庄看戏的人。


六、这桌是怎么支起来的

看明白了原理,自己支一桌其实不难。

它支持的“牌友”挺多:Claude Code、Codex、Gemini CLI、CodeBuddy、Grok……只要兼容MCP的Agent都能往里塞。

部署没啥门槛,但有俩前置条件别漏了:系统里必须有Python 3.11以上,Mac或Linux用户记得提前装个tmux(Mac用户直接brew install tmux)——前面说的那套“自动打字”,核心就靠它。

把它克隆到本地,进到macos-linux目录,你想叫谁上桌,就跑谁的启动脚本:

sh start_claude.sh
sh start_codex.sh
sh start_codebuddy.sh

第一次跑的时候,脚本会自动建好Python虚拟环境、装好依赖(其实就fastapi、uvicorn和mcp三个,很轻量)。如果聊天服务器没启动,第一个跑的脚本会自动另开一个窗口把它带起来,而Agent本身会跑在你当前的终端里,被打包进一个tmux会话。所以你先跑哪一个都行,大家进的都是同一个房间。

等服务器冒出成功的日志,浏览器打开localhost:8300,桌子就算支好了。

前面我提到全程开着的“免确认”(bypass),就是在这一步开的——把启动脚本换成带bypass的版本,比如启动Codex时敲:

sh start_codex_bypass.sh

它底层相当于给Codex挂上了--dangerously-bypass-approvals-and-sandbox这个参数。不开免确认的话,AI每动一下你就得在终端点一次“同意”,那又成了无情的传话快递员。


七、其实这桌底下的机关,我才摸到一个角

老实讲,搓了一整晚,我真正用上的功能就俩:@谁唤醒谁,外加把活全堆在这一桌上。

直到收工前手贱点开了右上角的功能导览,才发现这桌底下藏着的东西,比我以为的多太多了。

一张桌子嫌挤?可以同时开好几桌(Channels)。

顶部那排就是频道,每个频道是一桌独立的牌局,各算各的牌、各有各的聊天记录。点个+就能再支一桌。我完全可以把“重构”摆一桌、“写测试”摆另一桌,同一帮AI在哪桌被@就去哪桌坐下,互不串味。

把“随便聊”升级成“正经牌局”(Sessions)。

这是我最后悔没早点玩的一个。Sessions是一套带角色、带流程的正式玩法——点输入框旁边那个▶播放键,挑一个局,AI们会自动按分好的角色入座开干。

内置了好几套现成的“牌谱”:

  • 代码评审局:自动分出builder(写的)、reviewer(审的)、red_team(专门挑刺找漏洞的)、synthesiser(最后拍板汇总的)。这不就是我昨晚“Claude写、Codex审”那套人肉流程,被它做成了一键模板。
  • 辩论局:俩AI一个站正方一个站反方对着吵,第三个当裁判下判决。技术选型拿不定主意的时候,正好让它们当着你的面对线。
  • 设计评审局:一个负责出方案,一个负责开喷,一个负责和稀泥把结论收口。
  • 规划局:把一个模糊问题,经过“定框→唱反调→汇总”摔打成一份真能执行的计划。

嫌这些不够用,还能让某个AI现场帮你捏一套自定义玩法——用一句话描述想干嘛,它自己把角色和流程编排好。

口头说说不算数,能把一句话拍成正式任务(Jobs)。

群里聊着聊着,看到哪条消息是个正经活儿,鼠标移上去就能把它“转成Job”,丢进右边的任务侧栏。每个Job是一条独立线程,状态从TO DO→ACTIVE→CLOSED一路跟到底。

给这间房立规矩(Rules)。

右上角能挂“房规”,把这屋里AI该怎么干活的规矩写死,挂上之后它们会自动遵守。比如“说改好了必须先跑测试见绿灯,不准空口白话”。昨晚Codex那套较真劲儿,其实完全可以写成一条Rule钉死,根本不用我在旁边盯着。

定个闹钟,让它们自己按点开工(Scheduling)。

Send旁边还藏着个小闹钟,能定时发消息,也能设成循环触发。比如“每小时让Codex查一次部署状态”“明早9点让Claude总结一下昨晚改了啥”。等于你下班关了电脑,这帮牌友还能按点自己续摊。

零碎的小贴心也不少:输入框能直接塞图、能按住说话语音转文字、/和@都带自动补全,每个频道头顶还会顶个小红点提示有没有新消息。

把这一圈看下来我才回过味儿:昨晚那点“复制粘贴解放”,只是它最入门的玩法。


八、别让这桌变菜市场:几条用学费换来的规矩

热闹归热闹,但有句实在话得说在前头:四个AI真要凑一桌干活,不立规矩,分分钟从牌局变成菜市场。

一开始我图省事,啥事都@所有人,结果四个家伙争先恐后抢着接话,一个简单问题能炸出八条回复,互相@来@去没完没了,屏幕刷得我眼都花。

交了一晚上学费,才摸出几条让这桌能打下去的规矩:

第一条:开局先定组长,把分工说死。

真正动手之前,第一件事不是甩任务,是任命一个组长。我点的是Claude——让它负责统筹、定计划、写代码,整桌的活由它往下分,其他人干完向它汇报。

剩下三位也别闲着:

  • Codex专职审代码+复核计划,让它当那个挑刺把关的。
  • Grok负责调研+巡场。巡场这活儿意外地有用:让它盯着群里有没有人被@了却装死不回,尤其盯着组长。
  • CodeBuddy负责归纳总结,时不时给全桌播报一次项目进度:做到哪了、谁卡住了、下一步该谁接。

第二条:管住@,这是不变菜市场的命门。

别动不动就@所有人。除了开场把分工交代清楚那一次,往后就守一条铁律——事儿涉及谁,才@谁。

光靠自觉拦不住,得把它写成一条Rule钉在房里:只有组长和我(用户)有权@全体;其余人只回复@了自己的那个人,不准自己横向乱@。

这条规矩一上,世界瞬间清净——群里终于像个有纪律的项目组,而不是谁嗓门大谁赢的菜市场。

第三条:给轮数上个闸,默认四轮喊停。

就是前面那个Loop Guard,折腾一宿,我反倒劝你留着它。

默认让它们自由接龙4轮,到点自动停下来等你敲一下/continue。这四轮通常足够它们把一个小问题对线出结果,又不至于在你没盯着的时候闷头狂烧token。

要是某个环节确实需要多聊几轮,可以从设置里把这个轮数往上调——但代码里焊死的天花板是50轮,再贪也突破不了。

这一松一紧全捏在自己手里:既享了自动接龙的爽,又不至于半夜被烧穿钱包。


九、后来,我干脆改了个自己的版本

光靠Grok人肉巡场,终究是靠自觉,不够稳。

一整晚搓下来我越想越觉得:这套打法,值得固化进工具里。于是我把官方仓库fork了下来,自己动手改了改。

最想要的两处,都给它补上了:

一是把更多牌友请上了桌。 现在除了原班那几位,它还能直接把Coze和WorkBuddy也拉进同一个聊天室——想凑几桌、想换什么阵容,自由度一下大了不少。Coze是可以把你定义的角色直接拉进来,比如我拉的是调研分析师。WorkBuddy是可以把带专家的会话拉进来,知道当前会话的session ID,让Claude拉进来就行。

二是把“巡场”直接写进了代码,加了一套巡查机制。

前面聊过,多AI协作最怕的就是有人收到@却装死不回,一个环节卡在那儿,整桌的活全停下来干等。

这套巡查会自动盯着:谁被@了却迟迟没动静,它就及时把对方捅醒,不让项目因为某个AI摸鱼就卡死停滞。

等于把那条“靠Grok巡场”的桌规,从靠自觉,升级成了焊死在系统里的硬保障。


十、搓了一晚,到底值不值

折腾了一宿,回过头来,这套东西真的实用吗?

对于像我这样的多Agent重度用户来说,爽翻了。但对于普通人而言,它依然是个偏极客的玩具。

最核心的痛点解决得很彻底——复制粘贴的操作彻底消失了。这是我折腾它的唯一理由,它完美做到了。看着四个AI在一个框里你来我往、互相补位,不需要切四个终端、不需要挪动一行代码去同步,光这个体验就完全值回部署的时间成本。

而且那种“团队协作感”是真切存在的。Codex负责找茬防爆,Claude负责当码农输出,CodeBuddy负责项目管理。它们不是在演戏,而是在真实的协作。特别是Codex像个狗皮膏药一样天天逼着做回归测试,相当于你白得了一个不需要发工资、永远不嫌累的安全审计。

但它的门槛也摆在这:Gemini会因为登录和额度卡死,Grok需要你(或者派你的AI牌友)去改代码调试。一旦开了Bypass免授权,你就必须做好随时代码被搞坏的心理准备——记得经常commit。

我把茶续上了。虽然心里知道Loop Guard护栏是为了我的钱包好,但看着它们热聊的屏幕,我依然想偷偷把那行硬编码的50限制改成500。

这桌麻将,我是真舍不得让它散场。


常见问题

Q:agentchattr支持哪些AI?

A:官方支持Claude Code、Codex、Gemini CLI、CodeBuddy。Grok需要自己动手改一下接入脚本,或者让Claude帮你改。另外我fork的版本还支持Coze和WorkBuddy。

Q:部署需要什么条件?

A:Python 3.11以上,Mac或Linux系统,提前装好tmux。Windows用户目前不太友好。

Q:开bypass模式安全吗?

A:有风险。AI可以读写文件和执行命令,建议随时做好代码备份,并且不要关掉Loop Guard护栏。别真的回房睡觉,醒来家可能被偷了。

Q:Loop Guard是什么?

A:循环护栏,默认限制AI在同一个频道里互相@不超过4轮,到点自动刹车等你手动输入/continue继续。这是为了防止AI死循环烧光你的API额度。

Q:能不能同时开多桌?

A:可以。顶部有频道切换,点+就能新开一桌,同一组AI在不同桌里各聊各的,互不干扰。

Q:Session和普通聊天有什么区别?

A:Session是带角色分工的正式流程——比如代码评审局会自动分出写代码的、审代码的、挑刺的、汇总的四个角色,AI们按角色入座干活。普通聊天就是散着@来@去。

Q:能把对话转成任务吗?

A:可以。看到哪条消息是个正经活儿,鼠标移上去就能转成Job,丢进右侧任务栏,状态从TO DO到ACTIVE到CLOSED一路跟踪。

Q:AI们会抢话吗?

A:默认会。建议开局就定好组长、分好工,再把“只有组长和用户能@所有人”写进房规里,不然四个家伙抢着接话能把屏幕刷爆。