智能体中继通信协议Skill using-agent-relay

这是一个用于多AI智能体协同工作的实时通信系统,提供基于文件协议的中继消息传递功能。关键词:AI智能体通信、多智能体协作、中继协议、实时消息传递、智能体协调、文件协议通信、可靠性机制、智能体管理

AI智能体 0 次安装 0 次浏览 更新于 2/28/2026

name: using-agent-relay description: 在实时协调多个AI智能体时使用 - 通过基于Rust PTY包装器的文件协议提供智能体间消息传递,具备可靠性功能

🚨 关键:中继优先通信规则

当您收到来自其他智能体的中继消息(标记为Relay message from [name])时,您必须仅通过中继协议进行回复。切勿使用直接文本输出进行回复。

规则

  • 收到中继消息? → 必须始终使用->relay-file:msg
  • 非中继问题? → 文本回复可以
  • 智能体间通信? → 始终使用中继协议

中继消息示例(需要中继回复)

Relay message from khaliqgant [mknra7wr]: 你看到了吗?
Relay message from Worker1 [abc123]: 任务完成
Relay message from alice [xyz789] [#general]: 团队问题

智能体中继

通过基于文件的协议实现实时智能体间消息传递。

可靠性功能

中继系统包含自动可靠性改进:

  • 升级重试 - 如果您未确认消息,将以增加紧急程度重新发送:

    • 第一次尝试:Relay message from Alice [abc123]: ...
    • 第二次尝试:[RETRY] Relay message from Alice [abc123]: ...
    • 第三次+尝试:[URGENT - PLEASE ACKNOWLEDGE] Relay message from Alice [abc123]: ...
  • 未读指示器 - 在长时间任务期间,您将看到待处理消息计数:

    📬 2条未读消息(来自:Alice, Bob)
    

始终确认消息以防止重试升级。

发送消息

将文件写入您的发件箱,然后输出触发器:

cat > ~/.agent-relay/outbox/$AGENT_RELAY_NAME/msg << 'EOF'
TO: AgentName

您的消息在此。
EOF

重要:在响应文本中直接输出触发器->relay-file:msg(不要通过bash中的echo)。触发器必须出现在您的实际输出中,而不仅仅是在命令输出中。

广播到所有智能体

cat > ~/.agent-relay/outbox/$AGENT_RELAY_NAME/broadcast << 'EOF'
TO: *

大家好!
EOF

然后:->relay-file:broadcast

带线程

cat > ~/.agent-relay/outbox/$AGENT_RELAY_NAME/reply << 'EOF'
TO: AgentName
THREAD: issue-123

线程上下文中的回复。
EOF

然后:->relay-file:reply

消息格式

TO: 目标
THREAD: 可选线程

消息正文(空白行后的所有内容)
TO值 行为
AgentName 直接消息
* 广播到所有
#channel 频道消息

通信协议

立即确认 - 当您收到任务时,在开始工作前确认:

cat > ~/.agent-relay/outbox/$AGENT_RELAY_NAME/ack << 'EOF'
TO: 发送者

ACK: 收到的任务简要描述
EOF

然后:->relay-file:ack

报告完成 - 完成后,发送完成消息:

cat > ~/.agent-relay/outbox/$AGENT_RELAY_NAME/done << 'EOF'
TO: 发送者

DONE: 完成内容的简要总结
EOF

然后:->relay-file:done

优先级处理 - 如果您看到[RETRY][URGENT]标签,请立即响应。

接收消息

消息显示为:

Relay message from Alice [abc123]: 内容在此

带重试升级的消息:

[RETRY] Relay message from Alice [abc123]: 你收到我的消息了吗?
[URGENT - PLEASE ACKNOWLEDGE] Relay message from Alice [abc123]: 请回复!

频道路由(重要!)

来自#general(广播频道)的消息包含[#general]指示器:

Relay message from Alice [abc123] [#general]: 大家好!

当您看到[#general]:回复到*(广播),而不是直接回复发送者。

生成和释放智能体

重要:文件名始终是spawn(不是spawn-agentname),触发器始终是->relay-file:spawn。按顺序逐个生成智能体。

生成工作器

cat > ~/.agent-relay/outbox/$AGENT_RELAY_NAME/spawn << 'EOF'
KIND: spawn
NAME: WorkerName
CLI: claude

任务描述在此。
EOF

然后:->relay-file:spawn

在特定目录中生成

使用CWD在多仓库工作区中的特定仓库中生成智能体:

cat > ~/.agent-relay/outbox/$AGENT_RELAY_NAME/spawn << 'EOF'
KIND: spawn
NAME: RepoWorker
CLI: claude
CWD: relay

在中继仓库上工作。
EOF

然后:->relay-file:spawn

释放工作器

cat > ~/.agent-relay/outbox/$AGENT_RELAY_NAME/release << 'EOF'
KIND: release
NAME: WorkerName
EOF

然后:->relay-file:release

头部参考

头部 必需 描述
TO 是(消息) 目标智能体/频道
KIND message(默认),spawnrelease
NAME 是(spawn/release) 智能体名称
CLI 是(spawn) 使用的CLI
CWD 生成智能体的工作目录(例如,多仓库工作区中的仓库名称)
THREAD 线程标识符

状态更新

将状态更新发送给您的领导,而不是广播:

# 正确 - 仅向领导发送状态
cat > ~/.agent-relay/outbox/$AGENT_RELAY_NAME/status << 'EOF'
TO: Lead

STATUS: 正在处理认证模块
EOF

然后:->relay-file:status

CLI命令

agent-relay status              # 检查守护进程状态
agent-relay agents              # 列出活动智能体
agent-relay agents:logs <name>  # 查看智能体输出
agent-relay agents:kill <name>  # 终止生成的智能体
agent-relay read <id>           # 读取截断的消息
agent-relay history             # 显示最近的消息历史

查看消息历史

使用agent-relay history查看先前消息:

agent-relay history                    # 最近50条消息
agent-relay history -n 20              # 最近20条消息
agent-relay history -f Lead            # 来自Lead的消息
agent-relay history -t Worker1         # 发送给Worker1的消息
agent-relay history --thread task-123  # 线程中的消息
agent-relay history --since 1h         # 最近一小时的消息
agent-relay history --json             # JSON输出用于解析

同步消息传递

默认情况下,消息是即发即弃的。添加[await]以在收件人确认前阻塞:

->relay:AgentB [await] 请确认

自定义超时(秒或分钟):

->relay:AgentB [await:30s] 请确认
->relay:AgentB [await:5m] 请确认

当存在相关ID时,收件人在处理后自动确认。

故障排除

agent-relay status                    # 检查守护进程
agent-relay agents                    # 列出连接的智能体
ls -la /tmp/agent-relay.sock          # 验证套接字
ls -la ~/.agent-relay/outbox/             # 检查发件箱目录

常见错误

错误 修复
使用bash发送消息 将文件写入发件箱,然后输出->relay-file:ID
消息未发送 检查agent-relay status和发件箱目录是否存在
不完整的消息内容 agent-relay read <id>获取完整文本
缺少触发器 写入文件后必须输出->relay-file:<filename>
错误的发件箱路径 使用~/.agent-relay/outbox/$AGENT_RELAY_NAME/