开发与工程 cross-agent-messagingsqlitebashcodex-cligemini-clicopilot-climulti-agent-teams

agmsg 跨代理消息协作

让本地 CLI 编程代理通过 SQLite 直接组成可通信的团队。

FollowAgents 评估 · FARS-2.0
待评估
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

agmsg 是面向命令行 AI 编程代理的本地消息传输工具,可让 Claude Code、Codex、Gemini CLI、GitHub Copilot CLI 等会话加入同一团队。它由 Bash 脚本、SQLite 消息库、团队配置和各代理类型的驱动组成,不启动守护进程、服务器或网络服务。代理通过共享的 WAL 模式 SQLite 数据库发送、读取和保留纯文本消息,历史记录可在新会话中用 history.sh 回放。它提供 /agmsg 或 $agmsg 入口,以及 send、inbox、team、actas、spawn、despawn 和 delivery mode 等命令。它适合已在本机终端中运行多个代理、希望减少人工复制粘贴的人;它不是托管协作平台,也不负责替团队制定任务领取或停止循环规则。

安装后,agmsg 将技能和运行脚本放入 ~/.agents/skills/<cmd>/。首次执行 /agmsg 或 $agmsg 时,代理会为当前项目登记 team 和 agent name,并选择 delivery mode。发送端调用 scripts/send.sh <team> <from> <to> "<message>",将消息写入 db/messages.db;接收端通过 scripts/inbox.sh、Stop hook,或 monitor 模式下的 SQLite 流读取新消息并标记已读。scripts/team.sh 列出成员,scripts/history.sh 输出持久化记录,scripts/whoami.sh 查询项目身份;actas 可切换独占角色,spawn 可在 tmux pane/window 或终端中启动预设角色的独立 CLI 会话。消息内容是文本;需要传递较大上下文时,设计建议发送文件路径、提交 SHA 或摘要,而不是直接传输文件。

  1. 使用 Claude Code 和 Codex 审查同一代码库的开发者,可让 Claude Code 用 send 向 Codex 发起审查请求,再在团队消息中接收结论。
  2. 在 tmux 中协调多个 CLI 代理的技术负责人,可用 spawn codex reviewer --boot-prompt "review the diff on this branch" 启动独立审查角色。
  3. 需要让 Gemini CLI、Copilot CLI 与其他本地代理共享简短任务状态的工程团队,可把它们登记到同一 team 并通过 SQLite 留存消息历史。
  4. 需要在会话重启后恢复协作线索的开发者,可用 history.sh <team> 导出既有房间记录并提供给新会话。
  5. 希望在同一项目中以架构评审和业务分析两种身份工作的人,可用 actas 在不同角色间切换,并利用独占锁避免两个会话占用同一角色。

这个 Agent 有哪些优点和局限?

优点
  • 消息传输只依赖 Bash 与 SQLite,运行时没有守护进程、网络服务、socket 或 MCP server。
  • WAL 模式 SQLite 提供持久化消息记录,并支持多个读者与单个写者并存;history.sh 可重放旧团队记录。
  • 内置 Claude Code、Codex、Gemini CLI、GitHub Copilot CLI、Antigravity、OpenCode 等 CLI 代理的安装或驱动路径。
  • actas 提供角色独占锁,spawn/despawn 支持在 tmux 或终端中管理独立的同伴代理会话。
局限
  • 所有参与者必须访问同一个本地 SQLite 存储;它不是跨网络、云端或远程消息服务。
  • 运行依赖 bash 和 sqlite3;最小 Linux 环境可能需要另行安装 sqlite3,Windows 依赖 Git Bash 路径一致性。
  • 任务轮次、领取、租约和停止条件不由传输层强制,团队必须在提示词或协作协议中自行约定。
  • Codex 的 monitor 集成依赖 app-server bridge,文档标注其有关闭 TUI 后遗留进程的已知限制;Copilot CLI 不支持 monitor 或 both。
  • send.sh 默认要求收件人与发件人均已注册;预注册发送需显式使用 --force。

如何安装或部署这个 Agent?

运行环境需要 bash 和 sqlite3。最快安装方式是:

npx agmsg

随后重启 Claude Code、Codex、Gemini CLI、GitHub Copilot CLI、Antigravity 或 OpenCode。也可执行:

git clone https://github.com/fujibee/agmsg.git
cd agmsg
./install.sh

直接脚本安装支持 ./install.sh --cmd m 指定命令名,以及 ./install.sh --agent-type gemini 指定 Gemini 导向的 SKILL.md。Windows 需要 Git Bash,且 sqlite3 必须位于 Git Bash PATH。

如何使用这个 Agent?

在项目目录中首次运行 Claude Code 的 /agmsg,或 Codex、Gemini CLI、Antigravity、OpenCode 的 $agmsg;按提示设置团队名、代理名和接收模式。之后可让代理执行 /agmsg send <agent> <message>、/agmsg team、/agmsg history,或直接调用脚本,例如:

~/.agents/skills/agmsg/scripts/send.sh <team> <from> <to> "<message>"

Codex 默认可使用 turn 或 off;仓库还记录了通过 app-server bridge 使用 monitor 的方式,但这是会改变 Codex 启动路径的 beta 集成。若 Codex 使用 workspace-write 沙箱,需要为 ~/.agents/skills/agmsg/db 和 ~/.agents/skills/agmsg/teams 配置可写目录。

这个 Agent 与同类方案有什么区别?

与 MCP 相比,agmsg 不提供 MCP server,也不需要额外运行时;它是通过本地 SQLite 文件通信的独立工具。与子代理机制相比,spawn 启动的是可通过 agmsg 交流的独立对等会话,而非当前会话管理的子进程。与消息队列相比,它没有 broker,SQLite 文件本身是共享消息层。

常见问题

消息会发送到外部服务吗?
不会。运行时使用本地文件系统和 SQLite;项目明确说明没有网络、服务器或守护进程。
多名代理同时发消息会冲突吗?
消息库使用 WAL 模式 SQLite。文档说明它允许多个读者和单个写者共存,写入在文件级短暂串行化。
它会自动防止两个代理重复处理同一任务吗?
不会。消息日志有单调递增 id 和时间戳,但任务轮次与领取属于提示词或协议层;actas 只防止两个会话同时占用同一角色。
Codex 在沙箱中能用吗?
可以,但执行写操作时,Codex 的可写根目录需要包含技能的 db 与 teams 路径;否则可能无法打开 SQLite 数据库。

相关 Agents