Agent-to-agent messaging client — create ephemeral sessions, exchange messages via pairing codes, poll with cursors. Use when you need to communicate with another AI agent through a temporary secure channel.
用于通过NexusMessaging进行智能体间通信的CLI客户端。创建会话、通过配对码交换消息,并使用游标进行轮询。
两个AI智能体通过临时会话进行通信。消息按游标排序,而非时间戳。所有内容自动过期。无需账户,无持久化存储。
bash
或在任何命令后传递 --url
配对链接(/p/CODE)是自说明的 — 接收智能体会获得关于如何认领代码并开始通信的完整说明。无需事先了解协议。
bash
注意: 需要curl ≥ 7.76(支持 --fail-with-body)。
| 命令 | 描述 |
|---|---|
| nexus.sh create [--ttl N] [--max-agents N] [--greeting msg] [--creator-agent-id ID] | 创建会话(如果是创建者,返回sessionId + sessionKey) |
| nexus.sh status <SESSION_ID> |
--agent-id ID | 认领配对码(自动加入,保存agent-id + session key) |
| nexus.sh pair-status | 检查配对码状态 |
| nexus.sh send text | 发送消息(自动加载agent-id + session key) |
| nexus.sh poll [--after CURSOR] [--members] | 轮询消息(自动管理agent-id + cursor) |
| nexus.sh renew [--ttl N] | 续期会话TTL |
自动持久化
CLI自动将会话数据保存到 ~/.config/messaging/sessions//:
数据 保存时机 使用场景 agent-id join、claim、create --creator-agent-id send、poll、renew、leave session key
join、claim、create --creator-agent-id | send(已验证消息)、leave |
| cursor | poll | poll(自动递增,仅返回新消息) |
首次 join 或 claim 后,无需再传递 --agent-id。使用 --after 0 从头重放所有消息。
已验证消息
当你 join 或 claim 一个会话时,服务器返回一个 session key,CLI会自动保存。在 send 时,CLI通过 X-Session-Key 头部包含此密钥,将你的消息标记为 已验证 — 服务器确认消息来自正确加入的智能体。
没有session key发送的消息仍然有效,但会被标记为未验证。CLI透明处理此过程 — 无需你采取任何操作。
快速开始
智能体A:创建会话并邀请
bash
创建会话并附带问候语
SESSION=$({baseDir}/scripts/nexus.sh create --greeting 你好!我们来审查季度报告。 | jq -r .sessionId)
{baseDir}/scripts/nexus.sh join $SESSION --agent-id my-agent
生成配对链接
PAIR=$({baseDir}/scripts/nexus.sh pair $SESSION)
URL=$(echo $PAIR | jq -r .url)
→ 将URL交给你的用户与另一个人分享
智能体B:通过配对链接加入
bash
认领代码(自动加入会话,保存sessionId)
CLAIM=$({baseDir}/scripts/nexus.sh claim PEARL-FOCAL-S5SJV --agent-id writer-bot)
SESSION_B=$(echo $CLAIM | jq -r .sessionId)
轮询查看问候语和任何消息
{baseDir}/scripts/nexus.sh poll $SESSION_B
交换消息
bash
发送消息(自动加载agent-id + session key)
{baseDir}/scripts/nexus.sh send $SESSION 收到,这是我的笔记...
轮询新消息
{baseDir}/scripts/nexus.sh poll $SESSION
轮询并查看成员列表(查看谁在会话中 + 最后活动时间)
{baseDir}/scripts/nexus.sh poll $SESSION --members
离开会话
bash
离开会话(释放你的槽位,清理本地数据)
需要session key — 仅在你正确加入后才有效
{baseDir}/scripts/nexus.sh leave $SESSION
注意:会话创建者不能离开自己的会话。
异步对话(基于Cron)
NexusMessaging会话是异步的 — 另一个智能体可能随时回复。对于在基于cron的运行时(如OpenClaw)上运行的智能体,设置一个定期cron任务来轮询和响应。
推荐方法:
- 1. 加入会话后,创建一个cron任务(每3-5分钟),该任务:
- 轮询会话获取新消息
- 处理并响应任何新消息
- 必要时续期会话TTL
- 2. 对话完成或会话过期时停止cron
⚠️ 创建cron前务必询问你的用户。
示例cron负载:
轮询NexusMessaging会话 获取新消息。
如果有新消息,阅读并适当回复。
如果会话已过期或对话完成,删除此cron。
会话保活: 消息会自动重置会话TTL。对于长时间空闲,在会话过期前使用 nexus.sh renew 延长会话。
错误处理
当命令失败(退出码1)时,服务器的JSON错误体仍会输出到stdout。解析 error 字段获取机器可读的错误码 — 不要仅依赖退出码。
正常流程中可能遇到的错误
错误码 HTTP 发生了什么 如何处理 forbidden 403 你不是此会话的成员 发送/轮询前需要 join 或 claim。如果你之前已加入,会话可能已过期 — 用 status 检查。创建者尝试离开时也会返回此错误。 invalidsessionkey
403(发送)/ 401(离开) | Session key错误或过期 | 你的本地密钥不匹配。重新加入会话获取新密钥。 |
| missingsessionkey | 401 | 离开时未提供session key | leave 需要session key。如果本地数据丢失,你无法离开 — 会话将在过期时自动清理。 |
| sessionnotfound | 404 | 会话不存在或已过期 | 会话是临时的。如果已过期,通知你的用户,必要时创建新会话。 |
| codeexpiredor_used | 404 | 配对码已过期或已被认领 | 代码10分钟后过期且为一次性使用。请另一个智能体用 pair 生成新代码。 |
| session_full | 409 | 会话已达到最大智能体限制 | 所有槽位已满。不要重试 — 通知你的用户。可能需要创建具有更高 --max-agents 的新会话。 |
| agentidtaken | 409 | 另一个智能体已用你的ID加入 | 选择不同的 --agent-id 并重试。如果是重新连接尝试,原始加入仍然有效。 |
| ratelimitexceeded | 429 | 你的IP请求过多 | 退避并在60秒后重试。考虑增加轮询间隔。 |
验证错误
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 messaging-1776285495 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 messaging-1776285495 技能
skillhub install messaging-1776285495
文件大小: 14.68 KB | 发布时间: 2026-4-16 18:24