这篇指南聚焦“Muse agmsg”。下面把问题拆成容易跟做和复查的步骤。
01|先把看到的案例和能复现的工具分开
2026 年 10 月 1 日,@fujibee 分享了一个个人案例。他让云端的 Grok Bot 给 Muse 发问候,再让 Muse 回信。原帖说自己把 9 月 25 日的设置笔记交给了另一个代理,也提到轮询收件箱和网络限制。它能说明作者当时做出了这条路径,不能证明 Muse 已经内置 agmsg,也不能证明任何 Muse 账号都能照着同一套按钮完成。
agmsg 的公开仓库把自己定义为面向 CLI 代理的第三方文本传输工具。默认方案让两个代理读写同一个本地 SQLite 文件,不需要 MCP、网络服务或消息队列。仓库列出的现成代理模板包括 Claude Code、Codex、Gemini CLI、Copilot CLI、Antigravity 与 OpenCode等,没有 Muse 专用模板。
所以这篇先做一个可核对的最小试跑。两个你自己控制、已经被 agmsg 文档列出的 CLI 代理,只交换“HELLO”和“ACK”两条文本。跑通后再问 Muse 环境能否满足相同条件。缺少公开适配时,停在评估单,不让 Muse 猜安装命令。

02|把最小试跑限定在一台机器和两个自有会话
第一轮不要碰远程同步。选一台测试机、一个不含客户资料的练习目录,再开两个你自己的代理会话,例如 Claude Code 与 Codex。它们要看到同一个 ~/.agents/skills/agmsg/,尤其是同一份团队配置和 SQLite 数据库。Windows 还要固定使用 Git Bash;仓库明确说 PowerShell 没有对应的原生重写,误用 WSL 的 bash 会落到另一套 HOME 和数据库。
先检查 bash 与 sqlite3 是否可用,再决定要不要安装。官方最快入口是 npx agmsg,安装后要重启代理,让技能被重新发现。仓库也提醒 npm 包与插件按发布节奏更新,可能落后于 main;先记下 /agmsg version 或脚本返回的版本,方便两边对照。
这次不启动第三个代理,不用真实仓库,不连接陌生人的 endpoint。练习目录里放一张说明卡就够了。团队名是 handshake-lab,发送方是 sender,接收方是 receiver,最多两条消息,只回 ACK,不执行任何工作。
03|给两个会话不同名字,先查身份再发信
在第一个受支持的代理里运行它对应的入口。Claude Code 用 /agmsg,Codex 等用 $agmsg。首次使用会要求选择或创建团队,再填写代理名。第一个会话加入 handshake-lab,名字填 sender;第二个会话加入同一团队,名字填 receiver。
加入后先问“谁在团队里”,确认名单同时出现 sender 和 receiver。agmsg 用 (agent name, team) 作为身份,项目路径只是注册信息。不要让两个活跃会话都扮演同一个名字;actas 的排他锁就是为了阻止这种身份重叠。
为方便观察,第一轮把自动交付关掉或选手动检查。不同代理的实时模式实现并不一样,Codex 的 monitor 还依赖 bridge。最小试跑只需要你看得见什么时候检查收件箱,不需要拿“几秒收到”当成功标准。
04|复制这份两回合握手指令
先在 sender 会话里输入这段话。请通过 agmsg 向 handshake-lab 的 receiver 发送 HELLO handshake-001。只发送这条文本,不附带文件,不要求对方执行任务。发送后回报 from、to、team 和写入结果。 发送脚本要求 from 与 to 都已经注册,拼错名字应该报错,而不是默默留下没人能收的消息。
再去 receiver 会话输入这段话。请手动检查 agmsg 收件箱。只处理发给 receiver、编号 handshake-001 的消息;如果正文恰好是 HELLO handshake-001,就回复 sender,内容为 ACK handshake-001 | seen | no action taken。除此之外不运行命令、不读取文件、不继续追问。
最后回到 sender 手动检查一次收件箱。看到完全匹配的 ACK 就停止。agmsg 只负责传文本,不替两个代理决定轮次,也不会自动终止循环;官方建议把最大回合数或明确结束词写进提示。本例的结束词就是 ACK,消息总数固定为两条。
05|用历史记录验收,不用聊天气泡猜结果
在任一会话查看 agmsg history,找两条记录,分别是 sender → receiver | HELLO handshake-001 与 receiver → sender | ACK handshake-001 | seen | no action taken。同时核对团队名、双方名字、顺序和时间。SQLite 里的消息有递增记录,历史会在会话结束后保留。
成功标准只有四项。两个不同身份都在名单里;HELLO 只出现一次;ACK 只出现一次;ACK 后没有第三条消息。延迟长、自动提醒没弹出或界面样式不同,都不能单独判为传输失败,先以收件箱和历史为准。
若 receiver 看不到消息,按顺序检查团队名、代理名、项目实际注册路径、两边的 HOME 与数据库位置,再看交付模式。不要先重装,也不要加 --force 绕过未注册收件人;强行写入会让一个本来很清楚的身份错误更难查。
06|再判断 Muse 侧有没有真实可用的适配
本地握手成功,只证明 agmsg 和这两个受支持代理的路径可用。要把 Muse 加进来,先让当前 Muse 环境回答三件能外部核对的事。它能否运行 Bash 脚本,是否能使用 sqlite3,以及它能否访问同一安装目录,或使用项目文档里的远程同步方案。答案要来自实际工具列表、执行结果或维护者文档,不能只凭 Muse 在聊天里说“可以”。
仓库当前没有 Muse 类型模板,也没有名为 Muse 的原生连接器。@fujibee 的画面和文字属于维护者自己的跨云设置记录,公开内容没有给出一份适用于所有人的 Muse 安装步骤。若你的环境缺任一条件,就保留刚才的两条历史和适配问题清单,先不接 Muse。
如果团队自己写适配器,也先让它只支持 team、from、to、body 与只读 history,继续使用 handshake-001。别把项目文件、长期记忆或工具权限一并塞进第一次连接。agmsg 传的是短文本;大内容应放在你控制的文件里,只发路径或摘要。

07|跨机器是另一项工程,别混进第一次试跑
两台机器不能共享本地 SQLite 时,agmsg 文档提供自托管参考服务器。两边不需要直接互连,但都要能访问同一个服务器 URL。现有团队先 connect,另一台机器 pull,再用不同身份 join。这个路径需要 Docker、PostgreSQL、可达的 HTTPS 地址和网络边界配置,远远超过一次两消息握手。
安全边界也不同。官方远程教程明确写着基础流程使用明文同步,--e2ee 才启用端到端加密;密钥包要通过服务器之外的可信渠道交接并核对摘要。即使用了 E2EE,服务器仍能看到谁在什么时候给谁发送了多少数据,协议也不替你证明某个密钥对应哪一个真实的人。
参考服务器没有身份认证,文档要求把它放在自己控制的网络边界内;不在本机时使用 HTTPS。第一次试跑没有理由暴露它到公网。等本地握手、成员身份、停止条件和清理方法都验过,再单独立项评估远程同步。
08|收尾时留下记录,再清掉测试身份
保存一张小验收单,写上 agmsg 版本、测试日期、团队与两个身份、HELLO 和 ACK 的历史截图、有没有重复、Muse 适配尚缺什么证据。不要保存访问令牌、远程 endpoint 中的私密路径或 E2EE 私钥。本文展示的社区截图里没有可复用密钥,也没有拿它当配置来源。
如果只想清理当前练习目录的注册,用 /agmsg reset;它移除当前项目的注册,不会删掉团队里的历史。真正离开团队、删除团队或清除消息是更大的动作,要先看名单和保留要求。卸载脚本也会询问数据是否保留,不要为了收尾顺手用无确认参数。
需要给 Muse Code 接外部工具时,继续看Muse Code MCP 配置教程;MCP 管工具调用,agmsg 管代理之间的短文本,两者不是同一层。需要复查连接后留下的信息,再看Muse 权限与隐私入门。
参考来源
以下资料用于核对本文中的产品信息。Musevip 为独立中文指南,与 Meta 无隶属关系。
- [1] agmsg | README at the reviewed commit
- [2] agmsg | Team operations at the reviewed commit
- [3] agmsg | Remote setup at the reviewed commit
- [4] agmsg | Remote-sync security properties at the reviewed commit
- [5] agmsg | Design and identity model at the reviewed commit
- [6] agmsg | MIT license at the reviewed commit
- [7] Meta | Muse