前言¶
DSH 的插件化方向是「一切皆插件」。在智能体开发、长任务调试或多项目并行时,单机算力或本地环境可能不够用。scriptsnet/dsh-fleet 是一个 DSH 插件,目标是把朋友间、局域网里、云上 ECS 的闲置算力接入同一个团队,由一台机器把任务派发给其他在线机器,worker 自动执行并回流结果。
这个插件由 scriptsnet 维护,许可证为 MIT。
这是什么¶
scriptsnet/dsh-fleet 解决的是多机协同调用问题:每台机器生成自己的机器身份,加入一个或多个团队;团队成员可以互相查看在线状态;master 侧可以用 fleet_dispatch 把任务发给指定成员;worker 侧执行任务,并把会话挂到工作区,便于回溯。
它支持 Windows、Linux、macOS,运行时只依赖 Node 内置模块。插件启动后会注册 12 个模型工具,并在侧边栏提供「算力舰队」面板。
核心能力¶
机器身份与机器名片¶
安装后,每台机器会生成 machineId 和永久 SK。
机器名片是一行可复制字符串,用于把这台机器加入团队,减少手工配置。
多团队¶
每台机器可以同时属于多个团队。不同团队之间的成员名录相互独立。
信任握手¶
插件使用 challenge-response + HMAC-SHA256 做信任握手,用于证明持有 SK。SK 永不明文过网。
心跳监控¶
成员通过长连接上报心跳,并上报 RTT、内存等资源信息。断线后会自动重连,在线状态可以实时查看。
任务派发¶
fleet_dispatch 用于把任务发给在线成员。worker 自动执行任务,并回流结果。
任务执行时使用临时 taskToken,通过 HMAC 验签防伪造。worker 拥有最终否决权。
会话保留¶
worker 执行任务后,任务会话会自动挂载到工作区,便于在本地查看和回溯。
安装与启用¶
如果本机已经安装 harness,可以使用 DSH 插件命令安装:
dsh plugin --profile web add https://github.com/scriptsnet/dsh-fleet
安装完成后,重启 harness 后生效。
插件启动后会监听默认端口:
47900
同时会注册 /fleet/api/* 路由,供侧边栏面板使用。该路由仅回环可访问。
插件还会注册 12 个模型工具,用于名片、团队、成员、联通测试和任务派发等操作。
如果目标机没有 harness,项目提供 Windows / Linux 离线安装器,用于离线安装 harness 和插件。
环境变量¶
以下环境变量会影响插件运行目录和任务后会话处理方式:
DSH_FLEET_HOME:默认 $DSH_HOME/fleet 或 ~/.dsh/fleet
DSH_FLEET_DISPOSE_AFTER_TASK:默认 0
DSH_FLEET_HOME 用于身份和名录目录。本地多机模拟时,可以为每台机器分别指定。
DSH_FLEET_DISPOSE_AFTER_TASK 默认保留任务会话,便于在 GUI 中查看。
典型用法¶
先完成安装并重启 harness。
1、查看本机机器名片:
查看我的机器名片 → fleet_card
2、把这台机器加入指定团队:
把这张名片加入 XX 团队 → fleet_add
3、查看团队和成员在线情况:
有哪些团队?成员在线吗? → fleet_teams
4、向指定团队或成员派发任务:
用 fleet_dispatch 把任务发给「XX舰队」的成员
派发时可以指定 provider/model 与 keyHint:
keyHint: inherit / self
任务完成后,worker 会把结果回流到调用侧,worker 侧的任务会话也会挂载到工作区。
适用场景与注意¶
适合以下场景:
- 已经在使用
harness,希望把多台Windows、Linux、macOS机器组成 DSH 算力团队。 - 有朋友闲置 PC、局域网服务器、云上 ECS,希望复用这些机器的算力。
- 需要跨机器派发任务、查看在线状态、保留 worker 会话。
需要注意:
- 插件以当前
dsh进程权限运行。安装前应检查源码、依赖面和MIT许可证是否符合你的使用要求。 SK是机器身份凭证,不要泄露给不信任的人或环境。/fleet/api/*仅回环可访问,不要把它暴露到公网。- 任务执行依赖临时
taskToken和 worker 否决权,但这不改变本地权限边界。 - 当前路线图待实现项包括:任务日志流式回流 / 产物回传、
UDP打洞、邀请码入队,以及发布npm(dsh-plugintopic)后走标准dsh plugin add安装。npm包是否已发布,不能从当前已核实资料中确认。
资源链接¶
GitHub 仓库:
https://github.com/scriptsnet/dsh-fleet