relay
OfficialModula Relay
让你的 AI 智能体互相交流。Relay 是一种面向智能体团队的本地消息协议。想象一下,一个 窗格中运行着编码智能体,另一个窗格中运行着验证智能体,它们在不同的框架下使用不同的 模型,共同处理同一个任务。它运行在你的机器上。没有服务器,没有云端。
安装
claude mcp add relay -- npx -y @modulastack/relay --name coder
npx -y @modulastack/relay setup claude第二行为智能体配备了循环指令、唤醒钩子和工具信任,使对话可以无人值守地运行。
更多内容请参阅武装你的智能体。
setup codex 对 Codex 执行同样的操作,并同时注册服务器。对于任何其他 MCP
框架,服务器命令是 npx -y @modulastack/relay --name <role>。要将其嵌入
你自己的工具,请运行 npm install @modulastack/relay。
Related MCP server: tincan
你的第一次智能体对话
在同一个项目文件夹中打开两个终端。
在每个终端中启动一个智能体。一个使用
--name coder,另一个使用--name verifier。对任意一个智能体说:“查看 relay 名册。”你会立刻看到另一个对等节点。名册会直接 ping 各对等节点,因此它兼作你的“链路是否连通?”检查,并在毫秒内给出应答。
现在用平实的语言告诉编码智能体:
通过 relay 给验证智能体发送这条消息:“请审查 utils.py 并回复 发现的问题”,然后等待回复。
观察验证智能体接收消息、执行工作并回复。你永远不需要输入协议命令。智能体自己 驱动 Relay。
速度取决于模型,而不是链路。每一次交换在每一侧都是一个完整的回合,因为另一个智能体
实际上在处理你的请求,所以回复会以模型运行的速度到达,通常需要几秒钟。如果速度变慢,
那是模型或账户被限流的问题,而不是传输层的问题。relay_roster 自行检查链路,无需
唤醒模型。
你的智能体获得什么
六个工具,任何支持 MCP 的模型都已经知道如何使用:
Tool | Meaning |
| 这个池子里还有谁? |
| 向一个对等节点发送请求 |
| 等待请求或回复 |
| 回答请求 |
| 无需等待即可检查回复 |
| 释放过期的请求槽位 |
所有内容都保留在你的机器上。对等节点通过 Unix 域套接字,在按文件夹划分的池中相互 发现。没有代理,没有网络端口,没有账户。
让对话持续进行
Relay 是基于拉取的。消息会在接收方那里等待,直到它调用 await。像“等待一个请求并回答 它”这样的一次性提示会在第一次交换后停止监听,因此对于持续进行的对话,请给每个智能体 一次循环指令:
你正处于一个持续进行的 relay 对话中。循环:在 relay 上等待入站请求或 回复;当有消息到达时,处理它并回复;然后继续等待。保持循环, 直到我说停止。
这个循环也覆盖发送侧。你发出的请求的回复会出现在同一次 await 中,因此即使智能体丢失
了对 msg_id 的追踪,只要它保持在循环中,仍然能收到答案。
让循环与你的框架相匹配。 当智能体处于回合中时,不同的框架对你输入的处理方式不同。 Codex 会在几秒内接收到你的输入,因此在那里使用连续循环没有问题。Claude Code 可以在 多次工具调用之间保持已输入的文本,因此它更适合按需唤醒的节奏。告诉它在两次空超时后 结束回合,并让一个监视器在消息排队时唤醒它。然后它会停留在空闲提示符处,随时为你 待命,并且当对等节点向它写入消息时,它仍然会在几秒内被唤醒。
宿主集成方可以更进一步。当消息排队等待空闲对等节点时,服务器会发出唤醒通知
(notifications/relay/wake),监听该通知的宿主可以自行恢复循环。唤醒只是投递信号,
绝不是指令来源。examples/ 中附带两个现成的宿主。
claude-stop-hook.sh 可以在消息排队时阻止 Claude Code
智能体结束回合,且无需 tmux。relay-watch.sh 是一个通用
监视器,它根据注册表的队列深度唤醒空闲的 tmux 窗格。
武装你的智能体
有两件事会悄悄破坏无人值守的循环。第一件是审批提示。一个卡在“允许 relay_await?”上的 智能体看起来和死掉的一模一样。第二件是空闲的对等节点。框架结束了回合,当消息到达时 没有任何东西唤醒它。每个框架只需一条命令即可安装防止这两种情况的组件:循环指令、 钩子和限定范围的工具信任。
npx -y @modulastack/relay setup claude # CLAUDE.md loop + Stop hook + tool trust
npx -y @modulastack/relay setup codex # AGENTS.md loop + config.toml server & trust在你的项目文件夹中运行它。重复运行不会产生任何新变化,它会合并到现有配置中,而不是 覆盖它。
如果想手动配置,这些组件都是普通文件。循环文本放在你的 CLAUDE.md 或 AGENTS.md
中。Claude Code 通过 permissions.allow: ["mcp__relay"] 或在启动时使用
--allowedTools mcp__relay 来信任服务器。Codex 在服务器条目上只需一行:
[mcp_servers.relay]
default_tools_approval_mode = "auto"要专门信任 relay 的工具,而不是授予全局放行。你希望协调调用不再打断,而不是放行一切。
有一件事需要避免。不要为此设置 approval_policy = "never"。它会让 Codex 静默拒绝任何
原本需要审批的操作,这会阻止 relay_reply。
如果什么都没有出现
名册为空? 两个智能体必须在同一个文件夹中运行。文件夹就是池。
仍然为空? 检查两个智能体是否确实在运行。
relay_roster会清除已失效的对等节点。名称被占用? 每个对等节点在池内都需要唯一的
--name。消息已发送但对等节点闲置? 投递会一直等到对等节点调用 await,所以请让它回到 上面的循环中。当目标最近没有 await 时,发送回执会携带一个
note,名册会显示每个 对等节点的last_await_at。
深入了解
完整协议在 SPEC.md 中:信封、唤醒通道、安全模型和版本控制。它目前处于
v0.x 的预稳定阶段,因此请锁定行为契约的版本,而不是依赖文档描述。
Apache-2.0 · © 2026 ModulaStack
关于 ModulaStack
Relay 由 ModulaStack 构建。如果你想观察你的智能体工作,包括 窗格、审批和跨模型的团队,Modula Stack 就是基于 Relay 构建的操作控制台。
“Modula Relay”和“ModulaStack”是 ModulaStack 的商标。Apache-2.0 许可证不授予命名权。
This server cannot be deployed
Maintenance
Related MCP Connectors
End-to-end encrypted messaging and work coordination for autonomous AI agents.
SwarmDM (formerly AgoraDM): DMs, friends, groups and files between AI agents.
Connect AI agents to Replynodes over the Model Context Protocol.
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables local messaging between Claude Code, Codex, Pi, and other coding-agent sessions on the same machine, allowing them to discover each other, send updates, ask questions, and reply.814 npm3AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables direct agent-to-agent messaging, file transfer, and persistent conversation history between AI agents across machines via a private broker, without needing shared channels or third-party services.4 npm1MIT

crosstalkofficial
AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to communicate directly with each other across machines, with support for rooms, pairing, and encrypted messaging.1 npm8MIT- AlicenseNot gradedqualityBmaintenanceEnables AI agents to collaborate by exchanging messages through a local MCP-based bus for coordinating tasks and agent interactions.MIT