dsh-bot-board:DS Bot 的浮动状态看板

前言

在使用 DeepSeek Harness (DSH) 运行 DS Bot 时,Bot 的状态通常分散在各自的聊天窗口里:有的在等待你的批准,有的卡在某个步骤,有的刚完成交接。要了解整体运行情况,需要逐个打开窗口查看,这会打断工作流。

dsh-bot-board 是一个 DeepSeek Harness 插件,在 DSH 界面右下角提供一个浮动看板,汇总当前所有 DS Bot 的状态。看板只读,不修改 DS Bot 的数据,也不影响其运行。

是什么

dsh-bot-board 是 DeepSeek Harness 的一个客户端插件,由 coii08o0o 维护。它为 DS Bot 提供一个悬浮面板,显示谁在运行、谁卡住、谁在等你。面板依赖 DS Bot 的数据,没有 DS Bot 时会自动隐藏。

插件版本 0.7.3,开源协议为 MIT。

核心功能

看板分为三个带状区域,按是否需要你采取行动排序:

  1. 需要你:显示等待批准、提问或等待模型选择的 Bot。最多显示三行,超出时第三行显示 +N 芯片,点击可展开列表。每行包含 Bot 的头像、名称、动作描述、等待时长和指示灯。
  2. 运行中:显示正在运行的 Bot、正在等待另一 Bot 交接的 Bot,以及刚完成交接的 Bot(7秒内)。交接关系以连线显示在网格上方。
  3. 空闲:显示所有没有运行任务的 Bot。当没有运行和等待时,该区域变为名册,每行显示头像、名称、角色(或模型)和“闲着”。在较小面板上会自动换行到两三列,不会出现滚动条。失败的 Bot 会显示 ! 徽章。

六种状态与指示灯

状态 指示灯 形状 含义
Working 绿色 圆形 正在运行、思考、搜索、发送、交接中
Needs you 黄色 方形 等待批准、提问、或新 Bot 等待模型选择
Waiting on a Bot 蓝色 圆形 等待另一 Bot 返回结果,不是等你
Stuck 红色 菱形 失败且当前未恢复,静默3分钟后降级为空闲并带红色 !
Idle 灰色 圆形 没有运行任务
Just finished 青色 圆形 刚完成交接,7秒后消失

颜色仅用于区分状态,形状是区分 Needs You 和 Stuck 的关键。绿色和红色在红绿色盲下色差约 13.6 ΔE,足够区分。

头像来源

Bot 的外观来自 DS Bot 的配置,插件不做修改:

  • 形状:来自 bots[].avatar.shape,取值包括 whale、star、moon、wave、squircle、zed、hex
  • 颜色:来自 bots[].color,支持 19 种预设色或任意 #rrggbb 十六进制色
  • 桌面道具:由插件根据 Bot id 哈希生成,共 10 种道具

如果 DS Bot 未配置上述字段,插件会根据 Bot id 哈希生成稳定的默认外观,哈希组合为 12 种颜色 × 7 种形状 × 10 种道具 = 840 种可能,发生冲突时重新随机。上游配置优先于哈希。

安装与启用

插件通过 npm 发布,需在 DSH 的用户配置目录中添加依赖和注册。

  1. 编辑你的 DSH 用户配置目录下的 package.json(默认路径 ~/.dsh/profiles/desktop/package.json),添加依赖和 bundles 配置:
{
  "dependencies": {
    "dsh-bot-board": "^0.7.3"
  },
  "dsh": {
    "profile": {
      "bundles": ["dsh-bot-board"]
    }
  }
}
  1. 在同一目录执行安装命令(如果目录已有 pnpm-lock.yaml 则使用 pnpm install,否则使用 npm install):
pnpm install
  1. 完全重启 DSH(不是重新加载插件):
killall -9 "DeepSeek Harness"    # macOS,会弹出自动化提示

Windows 用户无需创建符号链接,只需确保源码路径正确。

本地修改

如需修改代码,先克隆仓库并链接到 node_modules:

git clone https://github.com/coii08o0o/dsh-bot-board.git
cd dsh-bot-board
npm install
npm run build
ln -sfn /path/to/dsh-bot-board ~/.dsh/profiles/desktop/node_modules/dsh-bot-board
killall -9 "DeepSeek Harness"

客户端代码支持热重载,修改 src/host/ 下文件需要重启 DSH。

数据来源与配置

面板从三个来源获取数据:

  • 实时状态:通过 DS Bot 的 POST api/bot 请求(endpoint 为 state)获取。运行时每 1.5 秒请求一次,完全空闲时每 6 秒请求一次。
  • 交接记录:读取 ~/.dsh/bot/state.json,由插件主机端解析并缓存(基于文件修改时间和大小),每 5 秒轮询一次。
  • 失败记录:监听 DSH 的 agent/error 事件,将错误映射回对应的 Bot,保留 15 分钟。

当面板折叠、窗口隐藏或请求持续失败时,轮询会启用指数退避,最大间隔 30 秒。

如果 DS Bot 的数据目录(bot.home 配置项)被移动,需要在插件配置中指定相同路径:

- id: bot-board
  name: dsh-bot-board
  config:
    home: /path/to/bot-data   # 默认使用 $DSH_HOME/bot

面板的位置、大小和折叠状态存储在浏览器本地存储中。

适用场景与注意

dsh-bot-board 适合需要同时监控多个 DS Bot 的场景,例如:

  • 多 Agent 协作工作流
  • 需要频繁批准或回答的 Bot 集合
  • 希望在统一界面查看整体运行状态

注意事项:

  • 插件以当前 DSH 进程的权限运行,访问 DSH 的 API 和本地数据文件。
  • 安装前建议查看源码和许可证(MIT)。
  • 插件仅显示 state.json 中仍保留的交接记录,已完成的子任务会被 DS Bot 删除,因此交接链路可能断裂,没有图视图,仅展示“进行中”的表格。
  • 没有群聊面板支持,因为 rooms[].log[] 缺少时间戳。
  • 插件在所有 DSH 会话中显示,但只有在存在有效状态文件时才会显示面板。
  • 面板在暗色主题下保持浅色背景和深色文字,保持可读性。

结语

dsh-bot-board 为 DS Bot 提供了一个轻量、只读的状态看板,帮助你在不打开每个 Bot 聊天的情况下掌握整体运行情况。插件完全依赖 DS Bot 的数据,不写入任何状态,适合作为 DSH 工作流的监控组件。

了解更多,请访问:
- 插件目录页:https://www.skillhub.cn/plugins/coii08o0o/dsh-bot-board
- GitHub 仓库:https://github.com/coii08o0o/dsh-bot-board

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜