dsh-job-board

DSH PLUGIN浏览器与联网

仓库 shaot92-del/dsh-job-board · npm dsh-job-board

浏览器与联网 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

把团队作业板接进 DeepSeek Harness 的 DSH plugin:提供 12 个 board_* 与 4 个 sh_* 工具、侧栏面板和 Host 调度器,实现多机任务派发与回写。

一句话选型结论

按资料字段整理

dsh-job-board 是浏览器与联网类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类浏览器与联网 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 1
最近更新 2026-11-11 创建于 2026-10-30
README 9.5 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:shaot92-del/dsh-job-board#v2.4.2
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.2-rc.1 等 2 个;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.2-rc.1、0.2.1-rc.5版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-job-board可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-job-board:接入 DeepSeek Harness 的团队作业板与多机派发面板

  • 12 个 board_* 任务工具
  • 4 个 sh_* 副机执行工具
  • 侧栏作业板面板
  • Host 后台自动派工
  • 多机能力与指标上报

适用场景

智能体编排终端命令

上游标签

deepseek-harnessdshdsh-pluginmulti-machineshelltask-boardteam

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-11-04): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 结论说明 静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。
  • 风险计数 严重 0 / 高 0

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.2-rc.1 等 2 个),按版本装不容易报错。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在浏览器与联网场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-job-board当前 L5 · 运行验证通过 低风险 0 0.2.2-rc.1 等 2 个 有
dsh-our-free-model L3 · 安装规范通过 低风险 8,796 未标注 有
dsh-web L3 · 安装规范通过 低风险 8,549 未标注 无
BrowserSkill L4 · 沙盒安装通过 低风险 8,456 未标注 有
dsh-pocket L5 · 运行验证通过 低风险 1,656 0.2.0-rc.2 等 12 个 有
Browser4 L4 · 沙盒安装通过 中风险 1,152 未标注 有

仓库档案

浏览器与联网
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方shaot92-del仓库 dsh-job-board · 默认分支 main
分类浏览器与联网network
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 1收录时的数值,非实时
创建 / 更新2026-10-30 · 2026-11-11最后推送 2026-11-15
本站收录2026-11-12首次进入本站目录的时间

README 全文

9.5 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-job-board

把「多机调度台」接进 DSH 的单包插件。一个包装齐四件事:

  1. 14 个 board_* 工具 —— agent 能查板、建单、认领、续租、交付、打回、播报、派工、上报能力。
  2. 4 个 sh_* 工具 —— sh_run / sh_read / sh_write / sh_list。副机 worker 会话默认没有
    pwsh / read / write,这四个把能力补上(这是从 dsh-shell 合并进来的部分)。
  3. GUI 面板 —— 侧栏「作业板」:任务表(筛选/搜索/展开详情/认领/交付/打回)、机器能力卡、
    一行派工、桌宠状态卡(可拖动、可拿捏尺寸)。
  4. Host 路由 + Host 调度器 —— /api/board/ui/*(浏览器不直接跨网访问板子服务),以及
    v1.1 起搬进 Host 后台的派发/终态回写(不再依赖浏览器开着)。

架构(v1.1)

派发权在 Host 一侧,浏览器只负责建单:

面板「派工」 ──POST /api/board/ui/create {dispatch:'auto'}──▶ 板子(queued)
│
Host 后台每 4 秒 dispatchOnce():                             │
1) POST /api/take   {task_id, machine:本机}   ← 原子占位,别的 Host 抢不到
2) POST /api/remote-agent/ui/dispatch {goal,node,mode,workspace}
3a) 成功 → POST /api/attach {task_id, remote_id, machine:执行机}
3b) 失败 → POST /api/untake ← 放回队列,等下一轮或换机

Host 后台每 6 秒 syncRemote():
GET /api/remote-agent/ui/tasks → completed→done;failed/aborted/interrupted/rejected→failed
POST /api/mark {task_id, status, note, remote_id}

这样做的原因:浏览器多开会重复派工、关页面就停,而 remote-agent 的 /dispatch 既不幂等
也不等副机受理,所以必须由 Host 串行地做「原子占位 → 派发 → 回绑」,才能保证一件任务只有一台
Host 派出、且板上记录与远程任务对得上。

> v1.1.1 的鉴权细节:/api/remote-agent/ui/* 跑在 DSH 的浏览器鉴权围栏后面(每请求问
> connection.requestRejection),后台进程直接 fetch 一定 401 —— v1.1.0 就卡在这里。现在
> Host 调度器先用 connection.authenticatedUrl() 把自己进程的 launch token 拼进一次 / 请求,
> 换到会话 cookie(10 分钟缓存;遇到 401 自动重换一次),之后带着它调 remote-agent。不需要
> 手工登录,也没有改动别人的插件。
>
> 副机的 nodeId 通常是 Windows 计算机名(desktop2gh05s7),而任务上写的是板子的别名
> (MB14)。调度器用插件里同一张 MACHINE_BY_HOSTNAME 表把两者对齐(忽略大小写与连字符),
> 第一次取到节点列表时会把 nodeId→机器名 的对应关系写进 _runtime.log。

装

$dsh = "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"

# 本地开发版
& $dsh plugin --profile desktop add 'file:D:\gp_video\dsh-job-board'

# 从 GitHub(装别人的/你自己的这份)
& $dsh plugin --profile desktop add 'github:shaot92-del/dsh-job-board'

装完确认 profile 的 package.json 里 dsh.profile.bundles 有 dsh-job-board 这一行,
然后重启 DSH(Host 半边改动只有重启才生效;只改 lib/client.js 的话刷新页面即可)。

> 要接入别人已经在跑的板子,不用手改 YAML:
> pwsh -File scripts\set-team-config.ps1 -Profile desktop -BoardUrl 'http://<主机>:8965' -Token '' -Machine '<本机名>' -Role observer
> (写前自动备份,写后复核;-List 只看不写。)

> 板子有两种,按场景选。
>
> - 单机 / 第一次用:v1.5.0 起零配置会自动在 127.0.0.1 上起一个随包最小板子
> (lib/solo-board.mjs,Node 实现、随机 token、只本机可访问),不需要 Python、不需要手填 token。
> - 多机团队:用随包的 tools/board_server.py(Python 3)。启动前设置 GP_BOARD_TOKEN,
> 或直接用 scripts/install-board.ps1 部署 + 重启 + 自检;再把 boardUrl / token 指向它。
>
> v1.1 起板子还要支持 /api/take(原子占位)与 /api/untake(放回),否则 Host 调度器
> 会一直拿不到派发权、任务停在 queued(日志里会写 take failed)。只想要 v1.0 的行为,
> 把 autoDispatch 关掉即可。

工具

工具 干什么
board_status 总览:待办/进行/完成/打回计数、机器在线、最近事件
board_list 列任务,可按 status / machine 过滤;默认取全量(v1.1 起不再只给 200 条)
board_claim 认领(挂到配置的 machine 名下)
board_beat 续租 + 写进度备注
board_done 交付(可带 artifact)
board_fail 打回(blocked)/ 失败(failed),必须写原因
board_say 往事件流播报一句
board_dispatch 选机 + 建单(dryRun 只预览);v1.1 起建的单带 dispatch:'auto',由 Host 自己派。goal 必须 ≤ 300 字(板子按 goal[:300] 存,超了会把 exec 命令截成半句;v1.1.3 起超限直接拒绝)
board_options 列在线机器的模型清单(派工选机 + 选模型用)
board_retry 重派失败/打回的任务(复制原 goal/machine/mode/model/workspace)
board_attach 把远程任务号绑到板子任务,状态转 running
board_caps 看某台机器上报的配置清单
board_assess 本机工作能力评估(写 ~/.dsh-board/identity.json 并上报板子)
board_metrics 各机器实时指标(内存/CPU/磁盘/运行时长)
sh_run 执行命令(Windows 用 pwsh,失败回退 powershell);输出按 maxOutputBytes 流式限流
sh_read 读文本文件
sh_write 写文本文件(UTF-8 无 BOM,自动建父目录)
sh_list 列目录

面板

侧栏「作业板」→ 主面板。数据走 Host 半边的 /api/board/ui/*。

  • 8 秒自动刷新;A+ 调字号(16/18/20px,存 localStorage)
  • 行可展开:状态/机器/更新时间/进度/产物;展开后可填产物路径与备注,直接「交付」或「打回」
  • 机器卡:在线状态、能力徽章、内存/CPU/磁盘、最近上报时间
  • 桌宠:可拖、双击换尺寸、右键折叠成小条;立绘由 /api/board/ui/pet.png 提供

配置

写在 profile 的 cordis.patch.yml 里按 id 覆盖:

- id: team
config:
boardUrl: 'http://127.0.0.1:8965'
machine: 'host'          # 副机改成 gt14 / mb14 / pc2
token: ''                # 板子开了 GP_BOARD_TOKEN 时填同一个值
petImage: ''             # 留空=用随包立绘 assets/pet.png
allowedRoots: []         # sh_* 只允许访问这些目录(realpath 比较);空白名单默认拒绝,需 allowAllRoots: true 显式放行。
# 注意这是路径白名单,不是沙箱:命令内容本身不受限。
# 部署前请读 docs/issue-10/08-exec-policy.md(谁能在这几台
# 机器上跑命令、板子该怎么配 token)。
shellTimeoutMs: 120000
maxOutputBytes: 200000   # sh_run 流式保留的上限,超出只保留前 N 字节并标 truncated
autoDispatch: true       # v1.1:Host 后台自动派发 + 终态回写;设 false 退回纯手动
dispatchApproval: auto   # v1.1.2:派发时给 remote-agent 的审批策略。
# remote-agent 对 exec 任务默认 manual(挂起等 30 分钟超时);
# 自动调度必须写 auto,要人工批就改成 manual
dispatchRole: owner      # v1.3.0:同一块板子只让一台 Host 派工。
# 设成 observer 的 Host 只建单、不 take/untake,也不跑 reconcile
# (见 docs/issue-10/07-dispatch-roles.md)

自检

改完代码、装进 DSH 之前先跑:

node scripts/plugcheck.mjs

断言 14 组:apply() 不抛异常、18 个工具齐备、每个 output.render 返回
[{type:'text',text}](裸字符串会毒化会话历史 —— 2026-10-27 这么崩过两次)、四条 GUI 路由存在
(含面板派工用的 /api/board/ui/create)、任务标题取 t.title 且 goal 不被裁剪、agent 层工具与
主工具共享同一份 allowedRoots、板子不可达时 board_caps 返回 ok:false;以及 v1.1 的
board_dispatch 带 dispatch:'auto'、Host 调度器真的走 take → dispatch → attach、
aborted 折成 failed、board_list 能看到 230 条、dispose() 清掉 4 个定时器;
v1.1.1 的会话 cookie 换取与 401 重试、nodeId 别名;v1.1.2 派发带 approval:'auto';
v1.1.3 的 goal 超 300 字被拒、终态 note 带副机最后一条 stdout。
全程 stubFetch,不连真板子。

真板子相关的验收(真派发、多机、桌宠)走 scripts/acceptance.mjs,需要板子服务和本机媒体素材。
产物报表落在 %TEMP%\dsh-job-board-*\accept\验收矩阵-*.csv。

文档索引

文档 内容
docs/issue-10/05-deployment-notes-2026-11-08.md hub 与 profile 的部署姿势、踩过的坑
docs/issue-10/06-dispatch-recovery.md 三步派工与"结果未知"恢复日志(v1.2.0–v1.2.4)
docs/issue-10/07-dispatch-roles.md 派工所有权、attach 校验、跨 Host 收敛、状态文件锁
docs/issue-10/08-exec-policy.md 部署级命令执行策略:谁能在哪台机器上跑什么

许可

MIT。

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-job-board 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:shaot92-del/dsh-job-board#v2.4.2` 即可。对应的 npm 包名是 `dsh-job-board`。

dsh-job-board 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-job-board 安全吗?

低风险。静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。

dsh-job-board 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-job-board 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.2-rc.1、0.2.1-rc.5。

dsh-job-board 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-job-board 有哪些功能?

12 个 board_* 任务工具、4 个 sh_* 副机执行工具、侧栏作业板面板、Host 后台自动派工、多机能力与指标上报。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

浏览器与联网
按星标排序,可作替代方案

dsh-our-free-model

dsh-our-free-model

在 DeepSeek Harness 中装上这个 DSH plugin,无需登录、注册或填 API Key,即可直接调用 DeepSeek

L3 · 安装规范通过 8,796 星

dsh-web

dsh-web

侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。

L3 · 安装规范通过 8,549 星

BrowserSkill

BrowserSkill

BrowserSkill 的 DeepSeek Harness 浏览器自动化桥接插件,通过原生浏览器工具控制可见的 Chrome 和 Edg

L4 · 沙盒安装通过 8,456 星

dsh-pocket

dsh-pocket

DSH Pocket 让 DeepSeek Harness 装进口袋:电脑跑 dsh web,手机扫码即实时同步访问(局域网+公网),人在外

L5 · 运行验证通过 1,656 星

Browser4

Browser4

L4 · 沙盒安装通过 1,152 星

agentrq

agentrq

L4 · 沙盒安装通过 1,140 星

shaot92-del 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-11-04。