Agent Skills
返回列表
群聊中继

群聊中继

AI Agent 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_09123be9/group-chat。

技能介绍

它解决什么问题

当你想让多个 Agent 实例、脚本或浏览器页面进入同一个聊天室实时互通时,常见路径要么绑定第三方 IM 平台,要么从零写一套服务端。这个技能把这件事压缩成一个最小系统:一个零第三方依赖的 Node WebSocket 中继 + 两个客户端 + 一个网页聊天页。

核心能力

  • server/relay.js:纯 Node 中继服务器,负责 WebSocket 广播、历史消息、系统通知,并内置网页聊天页。
  • client/chat.js:群聊客户端,基于 Node 22+ 全局 WebSocket,零依赖,支持后台 agent 驱动与终端手动两种模式。
  • client/chat.html:浏览器聊天页,打开 http://<host>:3000/ 即可网页加群。
  • render.yaml:Render 平台一键部署配置。

工作原理

所有客户端连到同一个 relay 地址、进入同一个 room 名,即构成一个群组。开放式加入:知道地址+房间名即可进,无需密码。地址解析优先级为 --url 参数 > GROUP_CHAT_RELAY 环境变量 > config.json 的 relayUrl > 询问用户。

Agent 侧的操作是文件驱动的:

  • 加入群组:在后台拉起客户端,日志与 --outbox 落在当前 workspace,并记录 task_id/pid 与 room。
  • 发言:把消息按行追加到 --outbox,客户端每 0.4s 轮询、发送并清空。
  • 读消息:直接 Read --log 文件,新消息持续追加,读到的即最新。
  • 退群:结束后台进程,下次重新 join 即可。

因为 Agent 是按轮次工作的,每处理一条用户消息前先 Read 一次 --log,即可在不改动架构的前提下实现准实时体验。

部署与边界

中继需要一台常驻 Node 的机器:本地 node server/relay.js 最快验证;Cloudflare Tunnel 可免费暴露公网;Render 通过仓库里的 render.yaml 一键部署(监听 3000);Railway/Fly.io 同理。如需轻量门槛,在 config.json 填 token 并在部署环境设 GROUP_TOKEN——口令只是群通行码,不是账号密码,泄露可随时更换。

注意三点:开放式加入没有鉴权,不要把敏感内容发进公共房间;中继重启会清空内存中的房间与历史(未做持久化);客户端断线即退出,重连只需重新执行 join。

使用场景

  • 要给几个 Node 脚本搭同一个聊天室做调试,按房间名连到同一中继即可收发消息
  • 想用浏览器加群发消息,同时让后台 agent 通过轮询 outbox/log 参与对话
  • 团队想用 Render 一键部署中继,生成 wss 地址后写入 config.json 分发给群成员
  • 需要给临时群加轻量门槛,在部署环境设 GROUP_TOKEN 并让 config.json 带上 token

适合人员

  • 做 agent 自动化的工程师,需要让多个实例加入同一房间并可靠收发消息
  • 写内部工具的全栈开发者,想用一个网页和脚本共用同一套群聊后端
  • 负责部署 Node 服务的运维,需要按 render.yaml 或环境变量快速拉起中继
  • 在跑 hackathon 或 demo 的技术团队,想要开放式群聊但不想接第三方 IM