Skip to content

Coordinator 远程控制

概念

Coordinator 是一个 WebSocket 服务器,扩展作为 client 连它。连上后 Coordinator 可以远程派发工具步或者驱动整个 chat session。

opt-in 场景

  • 从服务器批量控制多台浏览器(跨机器采集)
  • Claude Code 通过本地 MCP server → 本地 Coordinator → 浏览器扩展(见 MCP Bridge
  • 远程测试你的工具库

协议

Coordinator ↔ 扩展间是自定义 WS 消息,定义在 packages/shared/src/protocol/messages.ts(zod schemas):

消息类型方向用途
HELLOclient → server握手 + token 认证
EXECserver → client派发单个工具 step
EXEC_RESULTclient → server步执行结果
START_CHAT_SESSIONserver → client远程启动整个 chat session(需要用户在扩展里勾"允许")
CHAT_EVENTclient → server流式回传会话事件

本地 smoke

仓库带一个参考实现 packages/coordinator/,也带一个 mini smoke 脚本:

bash
node docs/superpowers/scripts/mini-coordinator.mjs

启动一个本地 WS server。注意 @attson/atwebpilot-mcp 走的是配对流程,端口惰性分配、不再固定 8787;这里说的是自建 coordinator 的场景。

扩展设置里 Coordinator 页填该 URL + 任意 token → 连接。连接成功后 Coordinator 里可以 REPL 派发 EXEC 命令。

远程驱动 chat session

默认关闭。在扩展 Coordinator 设置里勾「允许 coordinator 远程驱动 chat session」后,server 端可发 START_CHAT_SESSION,扩展会跑一个跟本地对话完全一样的 runChatSession(走真实 LLM),并流式回传 CHAT_EVENT

也可以在 START_CHAT_SESSION 里塞一段 mock_llm: { rounds: LlmStreamEvent[][] } —— 让 server 端喂固定的 LLM 响应,用于确定性回归测试

生产部署

参考实现 packages/coordinator/ 是 Node + ws 库;你可以:

  • 直接跑,或者
  • 抄协议在别的 stack 里实现

只要 WS 兼容 zod schema 即可。

MIT License