你开着好几个终端:一个智能体在制定计划,另一个在执行。你像个极有耐心的中层经理一样在它们之间来回切换标签页。你把 CI 里的报错复制出来粘到 Claude;又把 Codex 的反馈粘到 OpenCode。你按下回车表示同意:好吧,就这一次,让 claude 跑一下 find . -type f -name "*.ts" -print0 | xargs -0 grep -Hn "any" 也完全没问题。你的研究智能体发现了有意思的东西,把它写进一个 SUPER_DETAILED_RESEARCH.md 文档里。你的规划智能体需要它,但你把那段 Markdown 粘进规划智能体后,它又发现还有别的点需要上下文。于是你找到另一个终端,把 Markdown 又复制回研究提示词里。然后你微调计划。然后你调整正在跑计划的 codex 终端。然后你审阅输出。然后因为还不太对,你又从头再来一遍。唉,又要压缩上下文?!天哪……我累坏了。写软件本来挺好玩!你知道什么不好玩吗?给一堆 LLM 当“高级消息总线”。
今天我很兴奋想给你展示一种更好的方式——你不再是瓶颈。
与其让你夹在中间当胶水……要是它们能直接互相“聊起来”,会怎样?
The Agent Relay SDK
Relay 为多智能体系统提供了一个确定性的基础:
-
实时推送通信
-
启动与释放智能体
-
频道、表情回应、已读回执——基本就是 slack,但面向无界面(headless)场景,并且是为智能体打造的
Relay 不是一套定制的 harness,因此你可以按自己喜欢的方式带上配置。你的 skills 和配置应该开箱即用。
想象一下,让两个智能体下井字棋。用 relay SDK 做这件事很简单:
import { AgentRelay, Models } from "@agent-relay/sdk";
const relay = new AgentRelay();
relay.onMessageReceived = (msg) =>
console.log(`[${msg.from} → ${msg.to}]: ${msg.text}`);
const channel = ["tic-tac-toe"];
const x = await relay.claude.spawn({
name: "PlayerX",
model: Models.Claude.SONNET,
channels: channel,
task: "Play tic-tac-toe as X against PlayerO. You go first.",
});
const o = await relay.codex.spawn({
name: "PlayerO",
model: Models.Codex.GPT_5_3_CODEX_SPARK,
channels: channel,
task: "Play tic-tac-toe as O against PlayerX.",
});
await Promise.all([
relay.waitForAgentReady("PlayerX"),
relay.waitForAgentReady("PlayerO"),
]);
relay.system().sendMessage({ to: "PlayerX", text: "Start." });
await AgentRelay.waitForAny([x, o], 5 * 60 * 1000);
await relay.shutdown();
没有 Relay 的话:
-
你得在智能体之间手动拷贝棋盘状态。
-
你得负责判断轮到谁走。
-
你会无聊又痛苦地看着平局在慢动作里发生
同样的原语也能扩展到更复杂的任务。当你有长时间运行的工作流时,在工作进行过程中就能获得反馈会非常有价值;规划者、执行者和研究者都可以向前讨论并评估计划,无需等人类说一句“k”。
当然,你需要的时候也可以旁观并随时插手,但智能体在没有你的情况下把事情推进下去的能力,往往好得出乎意料。
我们不是已经有子智能体了吗?
虽然这在直觉上感觉像子智能体,但它们其实差别很大,而且是互补的。
-
子智能体是分层的。(即 Parent → child → result)这对于“做这个子任务”很好用,但在系统级或长时间运行的工作上就不灵了。当你需要实时调整或反馈时怎么办?有了 relay,你仍然可以利用子智能体(而且应该!)来完成子任务。有了 relay,你可以让同级智能体来回对话,直到形成结论。这通常能带来更有创意、更具涌现性的方案。
-
子智能体无法跨 provider 工作。你会希望针对当前任务从多个提供商中选用最合适的模型,并且让它能与其他 agent.s 无缝协作。
开源,也欢迎贡献
如果你曾觉得自己像在管理一支速度很快、却非常健忘的工程团队……这就是为你准备的。去(或者更可能是把链接丢给你的智能体)https://github.com/AgentWorkforce/relay 试一试。
做点不需要你亲自当运行时的东西。
链接:http://x.com/i/article/2027535041564225536