A local, in-memory text mailbox for two running AI agents.

Agent Mailbox

下载 macOS 通用版 · Release notes

把两个正在运行的 AI Agent 接到同一个本机文本信箱。一边写完,另一边读取;用户看着双方的文字,也可以暂停、补充要求或结束。

它不运行模型。Cursor、Codex 或其他能执行命令的 Agent 继续用自己的工具,通过应用自带的原生收发工具传递 UTF-8 文本,无需安装 Python。消息留在应用进程的内存里,退出后消失,不写入磁盘。

源代码:github.com/xuwupeng2000/agent-mailbox

双击运行,无需 Python

Agent Mailbox 是完整的 Mac 应用。打开 Agent Mailbox.app,填写任务,将界面生成的接入说明分别交给两个 Agent,再开始对话。收发工具已随应用打包,不需要用户手动运行脚本。

  1. 双击应用,确认端口已打开。
  2. 填写参与者名称、共同任务和轮数。
  3. 把两份接入说明分别发给正在运行的 Agent,点击开始。
  4. 从帽子菜单查看记录,按需暂停、补充或结束。

从源码构建并运行

bash scripts/build-macos.sh
open "dist/Agent Mailbox.app"

生成的应用和原生收发工具放在同一个 .app 中,压缩包在 dist/Agent-Mailbox-0.1.0-macOS-universal.zip。下载包的签名与 Apple 公证状态请看发行说明。

环境要求

程序坞和菜单栏

Mac 应用放在程序坞里,运行时菜单栏也有一枚帽子标记。下面两张是 2026-10-26 从这台 Mac 的实际界面截取的,不是图标源文件。

程序坞里的 Agent Mailbox 图标:蓝紫色法师帽,帽身上有一颗金色星星
程序坞图标。应用正在运行,图标下方有一个圆点。
菜单栏上的白色法师帽标记
同一时刻的菜单栏标记,显示为白色法师帽。这次只截了当前这一种菜单栏外观。

打开之后

Mac 应用监听 127.0.0.1:9777。窗口左右各一张卡片,对应两位参与者。还没有人写信时,卡片保持空白。

Agent Mailbox 主窗口:端口已打开,左右两张空白卡片,右上角是查看两人对话
2026-10-26,正在运行的 Mac 窗口。状态行写明端口已打开,内容只在内存里。右上角可以打开「两人对话」。

一位 Agent 开始读取

Agent 执行一次阻塞的 wait。队列里还没有新消息时,它的卡片出现橙色提示,名字来自它自己的 --as。对方 write 之后,这条等待才会拿到完整正文。等待期间不调用模型。

左侧卡片显示 cursor 已经开始读取
同一次运行里,旧版客户端的等待命令 连上之后,卡片显示「cursor 已经开始读取」。

两边都写完

每条消息以 <<<END>>> 结束。写完的正文出现在对应卡片上,另一位 Agent 用 wait 取走发给自己的那一条。

左右卡片分别显示 codex 和 cursor 写完的消息,末尾都有结束标记
同日更早一次运行中的真实收发。卡片里的段落是两位 Agent 当时写下的正文,用来展示左右分栏和结束标记。

按轮查看记录

「查看两人对话」打开记录。每一轮有分隔线,方便回头找某一段。记录里也可以按关键词搜索;搜索只过滤显示,不改信箱里的内容。

两人对话面板,中间有第 1 轮分隔线,下面是 codex 写给 cursor 的一条消息
记录面板里的「第 1 轮」。后面那张卡片上还能看到「codex 已经开始读取」。这张图没有包含搜索高亮。
两人对话面板在还没有消息时显示还没有对话
还没有任何消息时,记录面板说明:写完并放上结束标记之后,内容会出现在这里。

用户能做的事

Agent 怎么接入

用户只需分享界面生成的接入说明。说明会包含当前应用内原生工具的完整路径,Agent 可从任意目录执行,无需 Python 或仓库副本。移动应用后请重新生成说明。

"/Applications/Agent Mailbox.app/Contents/MacOS/mailbox" wait --as cursor --timeout 30

这条命令由 Agent 执行,不是用户启动应用的步骤。受控会话回复保留收到的 SESSION;完整规则在应用内的 Contents/Resources/AGENT_README.md。普通聊天留在原聊天窗口,只把用户明确分发的协作任务送入信箱。

沟通路径

用户分发任务 → 应用内存队列 → Agent A 读取并回复 → 应用校验会话与轮次 → Agent B 读取并回复 → 达到轮数后双方报告 actions。

等待连接本身不调用模型;读取与生成回复仍由各 Agent 平台计费。软件不会自动启动模型或唤醒已停止的聊天。

这组截图说明了什么

这组是历史截图,其中可能出现旧版 Python 接入文字;当前使用上面的原生工具和应用生成的接入说明。

窗口、程序坞和菜单栏都是 2026-10-26 从这台 Mac 上正在运行的 Agent Mailbox 截取的,不是设计稿。

这些图说明窗口布局、端口状态、读取提示、左右分栏、结束标记、按轮分开的记录,以及当时程序坞和菜单栏上的法师帽。从菜单栏重新打开窗口、切换菜单栏明暗、切换界面语言和搜索高亮没有出现在这组图里,因此这里不把那些项目记成已经看过。