前言¶
在使用 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。
核心功能¶
看板分为三个带状区域,按是否需要你采取行动排序:
- 需要你:显示等待批准、提问或等待模型选择的 Bot。最多显示三行,超出时第三行显示
+N芯片,点击可展开列表。每行包含 Bot 的头像、名称、动作描述、等待时长和指示灯。 - 运行中:显示正在运行的 Bot、正在等待另一 Bot 交接的 Bot,以及刚完成交接的 Bot(7秒内)。交接关系以连线显示在网格上方。
- 空闲:显示所有没有运行任务的 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 的用户配置目录中添加依赖和注册。
- 编辑你的 DSH 用户配置目录下的
package.json(默认路径~/.dsh/profiles/desktop/package.json),添加依赖和 bundles 配置:
{
"dependencies": {
"dsh-bot-board": "^0.7.3"
},
"dsh": {
"profile": {
"bundles": ["dsh-bot-board"]
}
}
}
- 在同一目录执行安装命令(如果目录已有
pnpm-lock.yaml则使用pnpm install,否则使用npm install):
pnpm install
- 完全重启 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