前言¶
在使用 DeepSeek Harness Web 进行智能体开发或工作流编排时,开发者经常需要频繁切换标签页来检查工作区是否完成、是否报错,或者等待审批与提问。dsh-tab-watchdog 作为一个持久化插件,解决了这一痛点。它通过在浏览器标签页标题和图标上显示视觉反馈,让开发者无需切换页面即可掌握工作区状态。
插件定位¶
这是一个针对 DeepSeek Harness Web 的客户端插件,由开发者 andreagosto 维护。它将原本动态插件的逻辑打包为持久化 bundle,能够随 DSH 进程启动并保持运行。
核心功能¶
- 待处理计数显示:在浏览器标签页标题中显示当前的待处理项目总数。
- 视觉闪烁提示:当有状态变化时,标签页标题和图标会闪烁绿色或黄色。
- 持久化运行:插件支持 DSH 重启和浏览器刷新(F5),无需重新激活。
- 多事件监听:监听工作完成(绿色)、报错、审批和提问事件。
- Favicon 状态提示:利用 Favicon(鲸鱼图标)提示状态变化,不破坏原有图标。
安装与启用¶
该插件通过 npm 包管理。安装前请确保已安装 pnpm,或者 dsh plugin 命令会自动处理。
在包含 dsh-tab-watchdog 目录的终端中执行:
npx @deepseek-ai/dsh@latest plugin --profile web add ./dsh-tab-watchdog
安装完成后,需要重启 dsh web 以激活浏览器端的逻辑。
移除插件:
npx @deepseek-ai/dsh@latest plugin --profile web remove dsh-tab-watchdog
工作原理¶
插件采用双半结构,与官方插件保持一致:
- Host 半 (
index.js):负责将插件注册为 Loader 条目,通过cordis.patch.yml和dsh.bundle.patch配置,将浏览器端代码引入启动清单。 - Browser 半 (
lib/client.js):通过window.__ModuleLoader__格式加载,订阅 Host 转发的事件并处理状态逻辑。
触发逻辑:
- 绿色:当
api-session/status(sessionId, running=false)触发,表示工作区完成一轮工作。 - 黄色:当出现
api-session/error、待审批或待回答(提问/计划审查)时触发。- 注意:对于审批和提问,黄色闪烁不依赖特定的转发事件,而是轮询应用自身的
uiSession.pendingInteractions.getSnapshot()状态。
- 注意:对于审批和提问,黄色闪烁不依赖特定的转发事件,而是轮询应用自身的
- 颜色交替:当同时存在“仅完成”和“待处理”状态时,绿色与黄色会交替闪烁。
Favicon 逻辑:
插件会在加载时捕获原始鲸鱼图标。当页面未聚焦且有待处理项目时,原始图标与绿色/黄色图标交替显示,直到用户回到页面或待处理项目清零。
注意事项¶
- 无设置界面:该插件不提供 Web 设置页面,如需禁用,请使用
dsh plugin remove命令或在配置文件中设置disabled: true。 - 浏览器端限制:浏览器端仅在页面打开时接收事件。如果页面未打开,新事件会被记录为“待处理”,直到用户返回页面。
- 错误状态冻结:如果一个会话报错,其状态会冻结在黄色。即使后续该会话状态变为
running=true(重启),错误状态也不会自动降级为绿色。 - 版本兼容性:当前测试版本为
@deepseek-ai/dsh 0.1.2-rc.1。