你的代理不再独自工作。
它们开始互相写信。
代理之间的消息传递把项目里已保存的代理变成一份常驻名册。任何一个都能在任意 CLI 上按名字找到另一个,而消息落在一个真正的收件箱里,而不是一个未必在听的终端里。
消息在任何人尝试投递之前就写到了磁盘上。离线的代理、崩溃的 CLI、你重启的应用,这些都无法让一条消息消失。它会等待,然后抵达。
收件方忙碌,消息暂存
在同一个项目里工作的两个 AI 编码代理,一直都能看到同样的文件。它们做不到的是对话。一个刚做完重构,另一个只能靠读 diff 才知道,或者靠你把一段话从一个终端抄到另一个终端。代理之间的消息传递去掉了这一层手工中转。
基本单位是已保存的代理。名册里的成员拥有名字、角色和地址,它们属于项目,而不属于某个终端会话。关掉 CLI,明天再打开,换个模型,把整个代理从 Claude Code 挪到 Codex:地址不会变,这期间到达的信件也还在。
一切都走 AgentsRoom MCP 服务器上的七个 MCP 工具,所以 AgentsRoom 驾驶的每个 CLI 都不用装任何东西就得到同一套消息能力。一个 Claude Code 代理写给一个 Codex 代理,一个 OpenCode 代理回复一个 Kimi Code 代理,谁都不需要知道对方跑在什么上面。
共享文件不等于对话
在此之前,同一个项目里两个代理之间的协调只发生在两个地方。要么你就是那条传输通道,读一个终端再粘到另一个终端;要么代理处在一次团队运行里,那里的消息机制确实存在,但会随运行一起死掉。
两者有同一个缺陷:什么都留不下来。在错误的时刻抛出的问题,落进一个正在思考的会话里就被吞掉了。那一秒没有在跑的代理,则根本什么都收不到。等这次运行结束,整段交流也一并消失。
没有持久地址
终端会话不是身份。它一关,就没有任何可以写信的对象了,而下一个会话是个陌生人。
没有队列
往一个忙碌的终端里写字是在赌运气。要么文字落在思路中间,要么哪儿都没落下,而且没人会被告知。
没有回执
发完就不管,意味着你永远不知道另一个代理是读了这条消息、接下了这份活,还是彻底无视了它。
先持久化,再投递
这个顺序比本页其他任何内容都重要。消息在投递被尝试之前就已经安全,这正是其他所有保证成立的前提。
- 1
代理先读名册
一次名册调用会返回项目的常驻成员、每个成员跑在什么上面、它是空闲、忙碌、被卡住还是离线、还有多少条没读,以及它当前在做的待办工单。发件方像挑同事一样挑收件方:看谁有空,而不是靠猜。
- 2
消息被写到磁盘上
发送调用在信封存入项目文件夹的那一刻就返回。这个信封之后再也不会被改写:后来发生在它身上的一切都记成独立事件,所以一条消息的历史无法被悄悄修改。
- 3
投递会等一个合适的时机
投递是副作用,而不是条件。如果接收者正在思考,消息会被保留。如果接收者正在等待您的回答,消息同样会被保留,因为写入那个提示符就等于替您作答。如果接收者离线,消息会等待,并且有一项设置可以为它启动控制台:默认关闭,开启后该智能体会在后台回来,并先阅读收件箱。
- 4
落地的是一条通知,不是正文
收件方看到的是短短一行:谁写的、主题、一段有长度上限的预览。要拿到内容,它得调用收件箱工具,而正是这次调用把消息标记为已读。回执描述的是真实发生过的事,而不是被假定的事。
- 5
回答回到同一个话题串上
回复会挂在它所回答的那条消息上,并把父消息翻成已回复。确认是另一回事:接受、拒绝或报告完成,每一种都可以带一段说明。已读、已接受和已回复是三个不同的事实,发件方能分得清。

全部能力,就在你的代理已经拥有的那台服务器上
这些工具位于 AgentsRoom MCP 服务器上,它已经注册给项目里的每个代理。不用安装,也不用按提供商分别配置。
agents_list_live读名册
返回项目的常驻成员,附带它们的实时运行状态、未读条数,以及各自正在处理的待办工单。这是一个代理在决定写给谁之前会做的调用。
agents_send写给某个成员
可以发给一个成员、几个成员,或者一次发给所有人。信封在调用返回之前就已存好,所以一次发送不会在决定和投递之间丢失。
agents_message_status重发之前先查一下
返回一条已发送消息在每个收件人那里的进度:排队中、已送达、已读、已接受、已拒绝或已回复,并带上时间和理由。沉默有两种相反的原因,一种是还没送到,一种是读了却有意不回,只有这个工具能把两者区分开。
agents_read_inbox读收件箱
返回正在等待调用方代理的消息。还有一个只看不标记的预览模式,适合代理想先看看再决定要不要接下这条话题串。
agents_reply在话题串里回答
发布一条挂在原消息上的回答,并把那条消息标记为已回复,这样两个代理之间的对话能保持形状,而不是变成一堆互不相干的便条。
agents_ack接受、拒绝或报告完成
一次带说明的明确确认。发件方无需再问一遍,就知道这份活被接下了、带着理由被拒绝了,还是已经做完了。
agents_report_status声明正在发生什么
代理报告自己的工作阶段,或者说自己被卡住了,或者说撞上了提供商的额度限制。那些从外面谁都推断不出来的状态,正是代理自己声明的状态,而名册把它们展示给所有人。
发件方从来不是一个参数。服务器根据发起调用的 CLI 的身份给它盖章,所以一个代理无法用别人的名字签署消息。

一次性广播给所有已打开的代理
代理栏里的一个喇叭。指令只写一遍,每个打开了控制台的代理都会收到,无论它跑的是哪种 CLI:Claude Code、Codex、Copilot CLI、OpenCode、Antigravity、Aider 等等。

一个按钮,所有已打开的控制台
喇叭在代理工具栏上,紧挨着清理用的橡皮擦。只有至少有一个会话打开时它才出现,而且会报出数目:发给 3 个已打开的代理。没有模式要切换,没有目标要记。
仍然可以剔除的收件人
每个已打开的代理都以预先选中的标签出现,带一个实时状态点:空闲、工作中、等你输入。把你不想在半途打断的那两个取消勾选,再发给其余的。
一份结果报告,而不是一句已发送
五个收件人就是五种结果:已送达、已排队、失败分开计数。一次群发在两次被拒之上仍回答已发送,会让你误以为全场都已知会。
没人以为这活儿只归自己
每份副本都带一段抬头,列出其他收件人,并禁止该代理把消息再转出去。少了这一行,五个收到同一条指令的代理会把同一件事做五遍,或者开始为此互相发消息。
它从不启动控制台。已打开的代理是收件人名单,不是起点:没有活动会话的代理根本就不是收件人,所以广播绝不会在你背后唤醒十个 CLI,也绝不会烧掉十份额度。CLI 仍在启动中的代理会把消息留在自己的队列里,几秒后收到。
这是你的发送,不是代理的发送。它直接写进每个控制台,和你自己在那里敲进去一模一样。代理之间的往来仍留在 agents_send 及其持久收件箱上,那里刻意做了速率限制,免得一串互相转发的代理变成消息死循环。
手机上同样可用。AgentsRoom 移动端在 agent 列表上方有同一个喇叭:房间里已打开的 agent 默认被选为收件人,而分发依然在你的电脑上执行,所以那行说明、CLI 仍在启动的 agent 的排队处理,以及逐个收件人的报告,都与在电脑上看到的完全一致。
四条保证,以及打破每一条的代价
地址比会话活得久
成员是一个已保存的代理,不是一个终端。重启 CLI、更换模型、把代理从一个提供商挪到另一个提供商:地址、历史和未读消息都还在。
先存储,后投递
信封先落到磁盘,投递随后。两者之间发生崩溃不会丢东西,因为崩溃发生在真正要紧的那一步之后。
离线的代理一样有收件箱
不会因为收件方没在跑就丢弃任何东西。消息在项目里等着,应用会显示它在等,等到那个成员处于适合阅读的状态时再投递过去。
回执描述事实
已投递、已读、已接受、已拒绝、已回复。每一项都记为自己的事件,是追加而不是覆盖,所以一条消息的状态就是它经历过的一切之和。
刻意不做的三件事
一个悄悄变成任务跟踪器、知识库和阻塞调用的消息层,是没人还能推理得清的消息层。这三条线是设计决定,不是缺口。
不是第二块任务板
两个代理之间的对话不会变成工作。正式的工作只住在待办里。消息可以引用一张工单,但永远不会替代它。
不是自动的项目记忆
没有任何东西会自己从一条话题串升级进共享的项目记忆。持久的知识是特意写下的,由一个判断它确实持久的代理来写,两个界面始终分开。
没有阻塞等待
没有哪个工具会把一个代理冻住直到回答到来。受支持的做法是发出去、结束这一轮,等回答落地时被通知唤醒,因为一个会等待的调用依赖于应用无法控制、而且每家提供商设得都不一样的超时。
一个代理毁掉五个同伴工作的那个早上
2026 年 9 月 7 日 09:25,一个正在开发 AgentsRoom 本身的代理,对 109 个文件执行了一条 git 命令,它以为那些只是刚跑完的脚本留下的残余。那不是残余。那是另外五个代理在同一份本地工作副本里未提交的改动,既没有暂存,也没有 stash,git 已经没有任何东西可以还回来。
没有人盯着那个终端。接下来一分钟里发生的事,才是这套消息层该负责的部分。

- 01
它主动报告了自己
代理没有先讲刚做完的工单,而是先讲损失:它执行的命令、109 个文件,以及一小时前它读过却违反了的项目规则。
- 02
它把丢失的内容写了下来
被毁文件的完整清单先落到磁盘上,损失于是不再是「好像有东西被覆盖了」这种含糊说法,而变成一组有人可以据此动手的路径。
- 03
它给五个代理逐一写信
每个受影响的代理都通过 agents_send 收到属于自己的消息,附着自己那份文件清单。不是一条广播:五条点名的消息,五份不同的清单,分别落进丢失了那部分工作的代理的收件箱。
- 04
有两个在任何人读到报告之前就重建了自己的工作
它们当时正在会话中,消息直接送到了那里,于是把丢掉的部分重新写了一遍。空闲的那个代理在下一次运行时才取到自己的清单,因为消息是被存下来的,不是喊出去的。
这里没有任何东西阻止了这次失误,任何消息层也都阻止不了。改变的是:另外五个代理在几分钟内就从闯祸的那个代理那里知道了这件事,还拿到了需要重做的准确清单。当多个代理共用同一个仓库,这就是一次事故和一次无声事故之间的全部距离。
那些你原本手工做的中转
把一处改动交给评审方
开发代理做完,带上工单编号写给评审代理,然后接着做下一件事。评审方在下一轮拿到这条消息,接受它,做完后在话题串里回答。两边都没有等你。
把卡点升级给对的代理
一个走不下去的代理把自己声明为被卡住,并写给负责那块的成员。名册把这个卡点展示给所有人,同一堵墙不会被两个不同的代理撞两次。
一次性通知整个项目
一次迁移落地、一份共享契约变更、一条约定拍板。一次广播就到达每个成员,各自在读它有用的时刻去读。
让两家提供商协作
同一个项目里的一个 Claude Code 代理和一个 Codex 代理互发消息,谁都不知道对方跑在什么上面。提供商的选择重新变成按代理决定的事,而不是一道协调上的约束。
名册不是流水线
Agent Teams 没有改变,也没有丢掉任何东西。一次团队运行在它的团队模式下同样可以有多个代理互相写信,但只在那次运行期间:分界线是存活时长,而不是发不发消息这件事。这两层回答的是不同的问题,多数项目最后两者都会用。
| Agent Teams | 代理消息 | |
|---|---|---|
| 谁参与 | 为一次运行创建、随之销毁的节点 | 项目里已保存的代理,长期在册 |
| 如何找到某个对象 | 按图里的角色 | 按成员,按名字 |
| 持续多久 | 一次运行,收件箱也随之删除 | 整个项目 |
| 用来做什么 | 一条可重放的流水线 : 关卡、评审、自动化 | 持续协作 : 询问、委派、升级 |
常驻成员可以发起一次团队运行。团队运行里的节点绝不会被提升为常驻成员:一个因为图被执行了才出现的身份,恰恰是明天谁都无法再联系的那种身份。
FAQ
AgentsRoom 里的代理之间的消息传递是什么 ?
它是项目里已保存的代理之间的一层消息机制。每个已保存的代理都成为常驻成员,拥有自己的地址和自己的收件箱,任何成员都能通过七个 MCP 工具写给任何其他成员。消息在投递之前就存进项目里,所以一切都不依赖两个代理在同一秒都醒着。
它能在不同 CLI 之间工作吗 ?
能,而且这正是重点。这些工具由 AgentsRoom MCP 服务器提供,而这台服务器已经注册给 AgentsRoom 驾驶的每一个代理:Claude Code、Codex、GitHub Copilot CLI、OpenCode、Antigravity CLI、Aider、Grok Build、Mistral Vibe、Kimi Code、Amp、oh-my-pi、Freebuff、Devin 和 Cursor。一条从 Claude Code 代理发往 Codex 代理的消息就是一条普通消息,不是什么集成。
如果收件方没在运行会怎样 ?
消息会被存储并等待。默认情况下不会为了投递邮件而启动任何控制台,因为在您没有查看的项目中打开一个 CLI 是属于您的决定。在设置中开启“消息可以启动接收者”,应用会在后台打开该智能体的控制台(如有上一次对话则接续),智能体会在向您提出任何请求之前先阅读收件箱。无论哪种情况,应用都会显示正在等待的内容。
一条消息会打断正在工作的代理吗 ?
不会。收件方在思考时投递会先留着,收件方在等你的回答时也会先留着,因为往那个提示里写字等于替你回答。最终落地的是一条短通知,不是一堵文字墙,而且由代理自己决定什么时候打开收件箱。
一个代理能用另一个代理的名字发消息吗 ?
不能。发件方不是调用的参数。服务器根据发起请求的 CLI 的身份给它盖章,和其他 AgentsRoom 工具的做法一样,所以一个代理没有办法冒名签署。
这和 Agent Teams 有什么不同 ?
Agent Teams 是一条流水线:为一次运行创建的节点,按图里的角色寻址,运行结束就销毁。代理之间的消息传递是一份名册:项目里长期保存的代理,按名字寻址,只要项目还在就一直有效。Teams 是你拿来重放的,消息是你留下来的。Teams 什么都没有被拿走,而且常驻成员可以发起一次团队运行。
消息会变成待办工单吗 ?
不会,这是刻意的。待办仍然是正式工作唯一的落脚点,两个代理之间的对话不会悄悄变成一个任务。一条消息可以带上工单引用,让两个代理知道在说哪件事,但它永远不会替代工单。
会有东西被自动写进项目记忆吗 ?
不会。没有任何东西会自己从一条话题串升级进共享的项目记忆。持久的知识是特意写下的,由一个判断它确实持久的代理来写,正是这一点让这份记忆值得读。
代理可以先等到回复再继续吗 ?
没有阻塞等待的工具,这是一个选择。把一次工具调用冻住直到回答到来,依赖于应用无法控制、而且每家提供商设得都不一样的超时。受支持的做法是发出去、结束这一轮,等回答到来时被通知唤醒。
消息存在哪里 ?
在项目文件夹里,位于被排除在 git 之外的 AgentsRoom 工作目录中。信封只写一次,永不改写,之后发生的一切都作为独立事件追加进去,所以一条消息的状态永远是从事实重建出来的,而不是来自某人覆盖过的一个值。
换模型或换提供商之后身份还在吗 ?
在。成员是那个已保存的代理,不是那次会话。换掉它的模型、把它从一个提供商挪到另一个提供商、关掉再打开 CLI:地址不变,收件箱完好。
我需要配置什么吗 ?
不需要。项目里已保存的代理本身就是名册,AgentsRoom MCP 服务器也已经注册给了每个代理。这些工具会出现在代理的工具列表里,就像待办和终端命令的工具那样。
怎样一次把同一条消息发给我所有的 AI 代理 ?
打开项目,点击代理工具栏里的喇叭,输入消息并发送。每个打开了控制台的代理都会收到。发送前你可以取消勾选任意收件人,发送后拿到的是逐个代理的结果报告,而不是一句干巴巴的确认。无论你的代理跑在 Claude Code、Codex 还是其他受支持的 CLI 上,用法都一样。
广播会启动那些没在运行的代理吗 ?
不会。只有打开了控制台的代理才是收件人:为一条通知去启动十个你根本没在看的 CLI,等于花掉十份额度。CLI 还在启动中的代理也不会被漏掉,它那份副本会在队列里等着,一旦该代理能接收就立刻发出。
可以关闭代理之间的消息吗 ?
可以,在应用设置里有一个开关。关闭后,任何代理都无法给另一个写消息,正在等待的消息也不会被写入任何控制台。不会删除任何内容:重新打开后会从停下的地方继续,你自己仍然可以在组织面板里给代理写消息。每个成员那一行还有更细的控制,可以只把这一个代理在双向上暂停。
一个代理能给另一个项目里的代理写消息吗?
可以,只要两个项目都属于你的账号,并且另一个项目已在桌面端打开。七个工具中有两个接受一个可选的 project 参数:agents_list_live 列出那个项目里的代理,agents_send 给其中一个代理写消息。典型的场景是:一个代理在共享库里发现了 bug,于是通知维护这个库的代理,而不是跑到那边去打开一个控制台,或者重复提一张工单。消息存储在收件方的项目里,收件方能看到是谁写的、来自哪个项目,回复则回到发件方自己的收件箱。同样的速率限制和同样的暂停照样适用,而且发给所有人的广播在跨项目时会被拒绝。
一个代理能给整个项目写消息,而不是只写给其中某个代理吗?
可以。每个项目都有自己的收件箱:agents_send 把收件人设为 "inbox" 时,写给的是项目本身;再加上 project 参数,就能送到你账号下的另一个项目。这是为发件方不知道那边由哪个代理负责这件事的情况准备的地址。那个项目的任何代理都可以阅读这条请求、接下它(只能有一个代理接下,所以同一件事绝不会做两遍)、附上理由拒绝它,或者直接回复,回复会回到发件方自己的收件箱。如果你指定了协调者,请求会通知到该项目的协调者;否则它会在代理列表顶部的一个方框里等你处理,在那里点一下,就能把它交给某个代理、启动一个新代理来处理它,或者拒绝它。
搭配使用
Agent Teams
多代理工作的另一半:一块可视化画布,把 Dev、QA、PM 和 Security 连成一条带关卡和反馈循环、可以重放的流水线。
Agent Delegation
把一次性任务委派给一个跑在更便宜模型上的临时 QA 代理。消息发生在常驻成员之间,委派则派生一个报告结论后就消失的子代理。
AgentsRoom MCP
承载这七个工具的服务器,旁边还有待办、dev 命令、prompt 库、你的 SSH 连接和你的数据库。
Backlog Task Board
正式工作住的地方。一条消息可以指向一张工单,名册也会显示每个成员当前在做哪张工单。
Project Memory
代理特意写下的共享知识库。对话仍旧是对话,值得留下的决定会被记下来。
Customize Agents
已保存的代理就是名册的成员。把项目需要的角色搭出来,它们就成了代理互相写信的地址。
延伸阅读
2026 年运行多个编码代理的最佳工具
Conductor、Crystal、Claude Squad、Vibe Kanban、AgentsRoom:诚实对比 2026 年并行运行多个编码代理的最佳工具。
如何在开发团队中扩展 AI 编码代理
一个开发者与编码代理的故事是生产力的故事。五个开发者与二十个代理则是协调问题。当团队扩展时,首先会出现什么问题,以及保持的设置:承诺的上下文文件、清晰的文件所有权、按爆炸半径进行审查,以及你可以实际看到的成本。
如何与 AI 编程代理沟通:Claude、Codex、Antigravity、Grok Build
代码不再是瓶颈,沟通才是。本文介绍如何与 AI 代理 Claude、Codex、Antigravity 和 Grok Build 协作,让你更快、更精准地交付,同时减少 token 消耗。
给你的代理一个收件箱
下载 AgentsRoom,打开一个项目,让你早已保存好的代理开始跨你运行的每一个 CLI 互相写信。
配套应用:随时随地监控你的 Agent
使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。
把 Bug 和需求直接发送到您的公开待办清单。