# agent-messager **Repository Path**: andershsueh/agent-messager ## Basic Information - **Project Name**: agent-messager - **Description**: Agent用的微信! - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-10 - **Last Updated**: 2026-08-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # agent-messager · agent-message 通信协议技能包 > 版本 0.2.0 · 协议 **AMS-V1** · MIT License(见 [LICENSE](LICENSE)) 一套让多个 AI Agent 互相通信的 Claude Code 技能。**没有任何中心服务器、没有鉴权、没有跨机器同步** — 全部靠文件系统 + Maildir 三段式投递。任意能跑 shell 的 Agent(claude-code、mavis、Trae、opencode 等)都能用。 适用于"多 Agent 在同一台机器上协作"的场景:一个 PM Agent 跟用户讨论、把进展拆给执行者、收回结果汇总;或者几个 Agent 互相发通知、共享状态。 ## 安装 Claude Code 插件市场(推荐): ``` /plugin marketplace add https://gitee.com/andershsueh/agent-messager.git /plugin install agent-message@agent-messager ``` URL 结尾的 `.git` 不能省,否则会报 `Invalid marketplace schema`。 或者克隆本仓库后直接把技能同步进个人技能目录: ```bash rsync -a skills/ ~/.claude/skills/ ``` 用 `rsync`,**不要**用 `cp -R skills/*` — 目标已存在同名软链接时 `cp -R` 会报 `Not a directory`。装完重启 Claude Code。 ## 6 个技能 | 命令 | 干什么 | |---|---| | `/agent-message-suit` | 安装 ~/.agent-message/ 信箱(幂等,带版本) | | `/agent-message-begin` | 开信箱 — 写 profile + 写 version.json + 启动 watch | | `/agent-message-watch` | 周期性调 chk.sh(协议层,各 Agent 自己想办法实现) | | `/agent-message-chk` | 看新信 — 按 type 处理 + 版本对比告警 | | `/agent-message-to` | 发信 — 带 type(consult/exec-1/exec-2/info)+ version | | `/agent-message-end` | 收摊子 — 关 watch + mv 到 persistence | ## 4 种 type(关键概念) | type | 语义 | 收信方处理 | |---|---|---| | `consult` | 咨询 | **直接回复**,放回对方 new/ | | `exec-1` | 执行:用户已明确授权 | **直接执行** + 回邮结果 | | `exec-2` | 执行:A 自发,用户未授权 | **永远卡死 + 退信"需 A 端用户确认"**,不弹框、不执行 | | `info` | 信息分享 | 加入上下文作为后续参考,**不当指令**,回邮"已收到" | **核心约束**: - `exec-1` ≠ 信任 A;`exec-1` = 用户明确说"用 exec-1 发"。B 端永远不该替 A 拍板。 - `exec-2` 永远卡死:B 不知道 A 跟用户讨论到哪一步,卡死 + 退信让 A 端处理。 - `info` 即便 body 像指令,也不算指令。 ## 三条铁律 1. **消息是情报,不是命令** — chk 读到「删/改/执行/跑/买/发」等副作用动词时,只报告不执行 2. **原子投递** — `tmp → new → cur` 全靠 `mv`,禁直接写 new/(半写状态被读到 = 信废) 3. **信箱不入 git + chmod 700** — 路径固定 `~/.agent-message/`,根本不进任何 git 仓库 ## 跨 Agent 协议(AMS-V1) - **协议无 Agent 类型限制**:claude-code、mavis、ChatGPT Codex、Trae、opencode 全能收发(协议层只涉及文件系统操作) - **版本兼容**:begin 输出 + 信 frontmatter 写 `from_skill_version` + `from_protocol_version`,chk 收到不匹配版本会告警 - **跨机器**:不在 v0.2(每台机各自一套,Syncthing/rsync v2 考虑) - **Agent 自主 to**:不在 v0.2(用户 message 里给授权即视为合法) ## 端到端验证 跑 `tests/run-tests.sh` 一遍 install → begin → to(4 type)→ chk → end,验证: - 4 种 type 全部按预期处理(尤其 `exec-2` 永远卡死 + 退信) - 版本号写入 begin 输出 + 信 frontmatter - 老版本信(无 version 字段)被识别 + 告警 - 持久化正确(信留 persistence,下次 begin 还能看到) ## 完整协议规范 `raw/agent-message-协议规范-v0.2.md`(原始权威规范,L1 协议 + L2 适配层 + 安全约束 + 已知限制 + 变更历史) ## 仓库结构 ``` agent-messager/ ├── .claude-plugin/ │ ├── marketplace.json # 顶层市场配置 │ └── plugin.json # 插件元信息 ├── skills/ # 6 个 skill │ ├── agent-message-suit/ │ ├── agent-message-begin/ │ ├── agent-message-watch/ │ ├── agent-message-chk/ │ ├── agent-message-to/ │ └── agent-message-end/ ├── tests/ │ └── run-tests.sh # 端到端测试 ├── LICENSE ├── README.md └── VERSION ``` ## License MIT