前言¶
在多台机器上各跑一套 DSH 时,常见做法是逐台 SSH 或远程桌面,把需求口头或复制粘贴过去,等子机做完再把结果搬回来。模型、工具链、审批策略都留在各自环境里,但指挥链路是断的;聊天里若直接把子机原文当用户消息塞进来,还会污染上级对话上下文。
DSH Mesh(@fishboy/dsh-mesh)是社区维护的工作流类插件,面向同一局域网内的多台 DSH:由一方充当上级派任务,子级在本地会话与工作区执行,成果进入上级 Mesh 收件箱,敏感操作可把 approval 转到上级处理。下面按定位、能力、安装与典型步骤说明用法与边界。
这是什么¶
- 名称与包名:npm 包
@fishboy/dsh-mesh,仓库 Fishexploi/dsh-mesh,维护者 Fishexploi。 - 当前版本:
0.3.2(MIT 许可证);要求宿主 DSH^0.2.2-rc.1,支持 Windows、macOS、Linux。 - 一句话:让局域网里多台 DSH 以「上级—子级」关系互联——拨号方是上级,接受方是子级;同一节点可同时是别人的子级、又是另一台的上级。
- 生态说明:DSH 奉行「一切皆插件」;SkillHub 等目录为社区站点,与 DeepSeek、幻方无官方从属关系。插件在当前 DSH 进程权限下运行,安装前宜浏览源码与许可证。
核心功能¶
资料中列出的能力摘要如下,便于对照是否满足你的编排需求。
| 能力 | 说明 |
|---|---|
| 发现与连接 | 同网段自动发现;也可手动填 IP、端口、6 位配对码;配对后令牌自动重连 |
| 角色 | 一个插件两种角色;支持纯上级模式(关闭本机监听,仅出站连接) |
| 授权 | 子级默认不授予上级权限;可选仅查看、工作区内修改、完全权限 |
| 任务 | 子级为每个任务建独立 DSH 会话与工作区;支持续聊(同一会话追问) |
| 聊天派发 | 连上的子级自动短名(服务器 A/B/C);输入 @ 选节点,由上级 agent 理解后调用 mesh_task |
| 审批 | 子级 approval 转发到上级 Mesh 审批;超时默认 10 分钟;0.3.2 起父级会话会即时提示 |
| 结果 | 文本与文件进上级收件箱;全文落盘,模型默认读摘要;mesh_inbox 可按需读全文 |
| 运维 | 面板检查 GitHub 新版本并一键更新;双向在线状态;断线补投(发送失败重试 5 次) |
传输为局域网 HTTP + NDJSON 长连接,默认 TCP 45900;UDP 45901 仅用于局域网发现。文档明确:无 TLS,仅建议在可信局域网使用,勿把端口暴露到公网。
安装与启用¶
环境准备¶
- 每台机器安装 DSH 且能正常对话,版本尽量一致,且满足
^0.2.2-rc.1。 - 机器在同一局域网;子级放行 TCP
45900(可在设置中修改端口)。
安装插件¶
推荐从 npm 安装(装完可随更新通道走):
dsh plugin --profile <profile> add @fishboy/dsh-mesh
也可按 README 从 GitHub 获取源码后,在 DSH 设置 → 插件 → 从本地安装 选择插件目录。安装后重载或重启 DSH,左侧栏会出现 Mesh 入口。
典型用法¶
首次组网:配对与授权¶
- 子级(B):打开 Mesh,记下顶部 6 位配对码;防火墙允许 DSH 监听
45900。 - 上级(A):在 Mesh 中通过「局域网发现」点「配对连接」并输入配对码;若广播被拦,在「手动连接」填 B 的 IP、
45900与配对码。 - 子级授权:在 B 的 Mesh → 我的上级 将「授予上级的权限」设为所需档位;默认为不授予,上级连上后无任何权限,任务权限不能超过该档位。
- 派任务:在 A 的 我的下级 选 B →「派任务」→ 填写任务并选权限 → 发送。B 会创建标题为
Mesh · 任务名的独立会话,工作区位于设置里配置的根目录下。
在聊天里 @ 派任务¶
连上后子级在上级本地显示为 服务器A、服务器B 等短名。在任意聊天输入 @,在 服务器 分组中选择节点,继续输入任务内容并发送,例如:
@服务器A 检查一下登录模块,把发现的问题列出来
插件不会把这句话原样转发;上级 agent 应先理解需求,再通过 mesh_task 下发完整任务说明。结果进入 Mesh 收件箱,而非作为用户消息插入聊天。默认任务权限为「工作区内修改」;若子级只授予「仅可查看」,会自动降为只读。若 agent 未调用 mesh_task,可明确要求「把这个任务派给服务器A」。
审批与结果¶
子级触发 approval 时,请求出现在上级 Mesh → 审批;上级可选择「允许一次」或「拒绝」,亦可通过 mesh_approve { decision: allowed-once | rejected } 处理。任务结束后,子级回传文本与文件;上级侧 agent 宜调用 mesh_inbox 读取说明,详细全文在 <stateDir>/results/<taskId>.md。任务卡片支持 继续追问 或 mesh_reply,追问进入子级原任务会话(双方需 DSH 0.2.0 及以上)。
权限模型要点¶
- 子级是权限源头;上级所选档位不能超过子级授予的上限。
- 「仅可查看」「工作区内修改」下,越界或敏感操作仍可能上报审批;「完全权限」由子级本地承担风险,不做审批拦截。
- 上级派给 B 的任务,不能由 B 再转派给 C;A 要指挥 C 须自己连 C。
适用场景与注意¶
适合:开发或办公局域网内多台专用机(GPU 机、构建机、内网服务机)各自保留环境与审批策略,由一台「指挥台」DSH 统一派活、收结果、集中审批。
务必注意:
- 明文 HTTP + 配对令牌,无加密传输;仅可信内网。
- 一个子级当前只能有一个上级;可多下级。
- 单任务回传文件上限:16 个文件,单文件 1.5 MB,总计 8 MB(README 限制表)。
- 节点重启或插件重载时,进行中任务会标记失败并尝试把失败结果补投给上级。
ask_user_question类交互尚未转发,目前主要转发 approval。
安装与启用意味着在本机 DSH 中加载第三方代码;请自行审阅 仓库 与 MIT 许可后再用于生产环境。
结尾¶
DSH Mesh 把「多机各管各的环境」和「上级统一派任务、收成果、批敏感操作」接在同一张局域网拓扑上:发现与配对成本低,权限默认收紧,结果与令牌策略避免把子级长文塞进上级聊天。若要查看分类与简介,可打开社区目录页 Fishexploi/dsh-mesh;安装与细节以 GitHub README 为准:https://github.com/Fishexploi/dsh-mesh。