READMESource: main@3dd67bb3
群发(dsh-broadcast)
给 DSH 加一个左侧栏页面:把一条指令一次发给自己选中的多个会话,像群发,但只发给 DSH 内部会话。
不是微信/飞书机器人,不接外部 IM。
能做什么
- 按分组发送:自己建分组,把会话加进去;选一个组,整组一起发。
- 真附件:正文之外可以带文件,目标会话直接拿到附件,不是路径引用。
- 两种收法:默认收集每个目标的回答;也可以只发不收。
- 临时子代理:一次发送可以额外拉起 0–8 个临时子代理,统一选一个模型;它们不写回原会话,结果只汇总在群发面板。
- 结果汇总:每个目标一张卡,显示等待 / 发送中 / 等回答 / 完成 / 失败,以及回答正文。
安装
在 DSH 里打开 设置 → 插件管理器,安装:
github:Yyhy110421/dsh-broadcast
或本地开发时安装目录:
file:<本仓库绝对路径>
装完重启 DSH。左侧栏会出现「群发」。
用法
- 左侧栏点「群发」。
- 点右上角「+」建一个分组,比如「写作组」。
- 点「编辑成员」,勾选要一起发的会话,保存。
- 选中这个分组,写正文;需要就加附件。
- 需要临时子代理就填数量,可选统一模型。
- 点「发给 N 个」。结果在下方逐条出现。
一次发送以分组为单位。 附件只属于这一次发送;换组再发可以换附件。不同组不会共用同一批附件。
行为说明
- 目标会话必须是已经存在的 DSH 会话;不会凭空建新会话。
- 发送用
followup投递,目标忙时排队,不打断它当前这轮。 - 临时子代理挂在组里第一个可用会话下,
maxDepth: 0,用完即释放。 - 需要带 Web UI 的 DSH(桌面版或 dsh web);插件依赖左侧栏和宿主 webServer 路由。
- 分组数据存在
$DSH_HOME/data/dsh-broadcast.json。 - 运行记录只在内存里,DSH 重启后清空;分组会保留。
开发
node --check lib/index.js
node --check client.js
node test/manual.mjs
宿主半身是普通 ESM 插件,客户端是 window.__ModuleLoader__ 包装的 React 组件。改完源码后,file: 安装需要卸载再装(实体拷贝)。
已知限制
- 不做定时群发、不做失败自动重试。
- 不做“每个目标不同附件”;当前模型是“一次发送 = 一个组 + 一批内容”。
- 子代理回答只进面板,不自动写回父会话。
- 面板只列手动加入分组的会话,不自动扫描全部历史会话。
License
MIT © 2026 Yyhy110421
No comments yet. Be the first to write one.