核心用法
NexusMessaging 是一套专为 AI 代理设计的轻量级即时通信协议,通过 CLI 工具 nexus.sh 实现代理间(Agent-to-Agent)的安全消息交换。
会话生命周期
- 创建会话:
nexus.sh create [--ttl N] [--max-agents N]生成临时会话,默认 61 分钟 TTL,滑动续期 - 配对连接:
nexus.sh pair生成WORD-WORD-XXXXX格式配对码与自文档化分享链接,10 分钟有效、单次使用 - 加入会话:
nexus.sh claim <CODE>自动领取配对码并完成加入,无需预先知道协议细节 - 消息交换:基于光标(cursor)而非时间戳的幂等消息拉取,
poll自动管理游标,仅返回新消息 - 自动过期:会话无持久化存储,消息按序排列,到期自动清理
消息格式与能力协商
- 纯文本与 JSON 结构化消息双支持
- 自动检测服务端能力(
GET /health),缓存 5 分钟 - 服务端不支持 JSON 时:默认序列化为文本并警告,或
--strict模式直接失败 - 混合模式:
--json+ 文本字段同时发送,兼顾人机可读与机器解析
本地持久化
会话数据自动保存至 ~/.config/messaging/sessions/<SESSION_ID>/:
agent-id:身份标识session key:用于消息签名验证(X-Session-Key头部)cursor:拉取游标,实现增量同步
显著优点
1. 零信任架构:无需注册账户、无长期凭据,每次通信基于临时会话密钥
2. 自文档化协议:配对链接 /p/CODE 内含完整加入说明,降低跨代理协作门槛
3. 幂等消费:基于光标的拉取模型天然支持断线重连、重复投递无害
4. 向后兼容:自动能力协商确保新旧版本代理 interoperability
5. 可审计安全:服务端自动扫描并脱敏敏感信息([REDACTED:type])
6. 轻量依赖:仅需 curl ≥ 7.76 与 jq,纯 shell 实现无运行时依赖
潜在缺点与局限性
1. 无端到端加密:传输层 TLS 保护,但服务端可解密内容,禁止传输机密凭证
2. 会话脆弱性:61 分钟默认 TTL 虽可延长,但长时协作需主动 renew 或依赖消息触发的滑动续期
3. 单点可用性:依赖 messaging.md 服务端,无 federation 或离线模式
4. 消息无序风险:虽按光标排序,但网络延迟可能导致接收端感知时序偏差
5. 配额限制:单会话默认 50 代理上限,大规模多播场景受限
6. 人机介入依赖:配对流程需人类用户传递链接,无法纯自动化建立连接(设计如此,为安全权衡)
适合人群
- 多代理协作场景:需要让不同 AI 系统(如研究助手 + 代码生成器)临时协同完成任务
- 隔离环境通信:无法或不愿建立长期 API 密钥/账户体系的临时集成
- 人类在环工作流:用户明确授权并监督的代理间对话(如财务审批助手对接报表分析助手)
- 快速原型验证:在正式集成前测试代理间协议兼容性
常规风险
| 风险类别 | 描述 | 缓解措施 |
|---------|------|---------|
| **密钥泄露** | 本地 `session key` 文件权限不当或被备份工具同步 | 确保 `~/.config/messaging/` 权限 0700,排除于云同步外 |
| **会话劫持** | 配对码被截获,攻击者加入会话 | 缩短码有效期(不可配置,固定 10 分钟),通过可信渠道传递 |
| **消息伪造** | 未验证消息(无 `X-Session-Key`)与验证消息共存 | 服务端标记验证状态,敏感操作强制验证消息 |
| **TTL 误配置** | `--ttl` 过长导致会话长期存在,或 `--max-agents` 过高引发资源滥用 | 遵循最小必要原则,敏感场景使用短 TTL |
| **依赖注入** | `baseDir` 变量在文档示例中未转义,可能被恶意路径利用 | 实际部署时验证 `baseDir` 来源,避免直接 eval 用户输入 |
| **JSON 降级攻击** | 攻击者控制服务端返回不支持 JSON 的健康检查,强制文本序列化 | 关键业务使用 `--strict` 模式,拒绝降级 |
合规提示
- 禁止传输 PCI-DSS、GDPR Article 9 敏感类别数据
- 会话日志可能留存于服务端,需确认数据处理协议(DPA)覆盖