Frost-Reed/blocker-notify:DSH 阻塞提醒插件

前言

在 DeepSeek Harness(DSH)中运行 Agent 时,经常会遇到需要用户介入的状态:请求审批、等待回答提问、等待计划审阅。如果当时网页端没有聚焦,或者你暂时离开屏幕,这些状态很容易错过,只能不断切回页面检查。

Frost-Reed/blocker-notify 针对这个场景:当 Agent 在工作中被卡住、需要用户介入时,在网页端实时提醒,让你不用一直盯着屏幕等待操作。

这是什么

Frost-Reed/blocker-notify 是 DSH 的一个插件,仓库由 Frost-Reed 维护,许可证为 MIT,package.json 版本为 0.3.0

它主要处理“可操作阻塞”:当 Agent 需要审批、提问或计划审阅等用户介入时,在网页端给出提醒;对于沙箱拒绝 FS_SANDBOX_DENIED,只记录到 Host 日志,不打扰用户。

核心功能

下面介绍它已核实的主要能力。

全局横幅

当存在被阻塞会话时,网页端会出现全局横幅,列出被阻塞会话。点击条目会跳转会话,并移除该条提醒。

工作区条目闪烁

工作区会话条目上会出现黄色状态点闪烁,用于提示该会话需要关注。阻塞解决后,闪烁自动停止。

提示音

新增可操作阻塞出现时,页面会播放 Web Audio 短提示音。提示音不依赖音频文件;如果浏览器未解锁自动播放,或当前环境不支持,会静默降级。

操作系统级通知

新增可操作阻塞出现时,插件会通过 Notification API 弹出操作系统级通知。点击通知可聚焦 DSH 页面。

系统通知依赖浏览器 Notification API 权限。权限未开启或被拒绝时,横幅会提供开启或修复操作。

Host 半行为

Host 半会捕获审批请求、工具结果,并维护进程内告警日志。

对于沙箱拒绝 FS_SANDBOX_DENIED,插件只在 Host 日志中记录,不触发横幅、提示音或系统通知。

安装与启用

插件支持动态插件方式快速启用,也支持正式 bundle 安装持久生效。

动态启用

动态方式适合先试用。步骤如下:

  1. 获取源码:
git clone https://github.com/Frost-Reed/blocker-notify
  1. 在会话中让 Agent 读取 dynamic/host.jsdynamic/client.js,调用 cordis_definecordis_run,并在网页端批准 Client 半运行请求。

动态插件是进程内存态。DSH 重启后需要重新启用。

正式安装

正式安装命令如下:

dsh plugin --profile web add github:Frost-Reed/blocker-notify

如果从本地源码安装,可以使用:

dsh plugin --profile web add file:<本地克隆路径>

安装后重启:

dsh web

正式安装后,如果新增依赖或层,需要重启 dsh web

如果 dsh 不在 PATH 中,可以将命令中的 dsh 换成 pnpm dshnpx @deepseek-ai/dsh

从 git 安装时可能运行 prepare 构建脚本。如果当前环境使用 pnpm,可能需要一次性在 allowBuilds 中授权;也可以使用 npm 包或 pnpm pack tarball 安装预构建产物。

典型用法

安装或动态启用后,可以用下面几个场景自测。

自测提问

让 Agent 调用一次 ask_user_question

预期结果:横幅、提示音、系统通知出现。

自测审批

把审批策略设为 ask,沙箱设为 read-only,让 Agent 尝试带 sandbox_permissions 的写入。

预期结果:出现可操作审批阻塞提醒。

自测沙箱拒绝

让 Agent 不带提权参数写入被拒文件。

预期结果:静默,不触发横幅、提示音或系统通知。

适用场景与注意

这个插件适合以下场景:

  • 在 DSH 网页端运行 Agent;
  • 经常遇到审批、提问或计划审阅等需要用户介入的事件;
  • 希望页面不聚焦或短暂离开时也能收到提醒;
  • 希望将“可操作事件”和“已完结的沙箱拒绝”区分开。

使用前需要注意:

  • 插件以当前 dsh 进程权限运行。安装前应检查源码、许可证和依赖关系。
  • 插件只提醒审批、提问、计划审阅等可操作事件;沙箱拒绝保持静默。
  • 提示音使用 Web Audio。浏览器未解锁自动播放或环境不支持时,会静默降级。
  • 操作系统级通知依赖 Notification API 权限。未开启或被拒绝时,横幅提供开启或修复操作。
  • 动态插件是进程内存态,DSH 重启后需要重新启用。
  • 正式安装后,新增依赖或层需要重启 dsh web
  • package.json 声明的 peerDependencies 包括 @deepseek-ai/cordis@deepseek-ai/dsh-client-runtimereact

链接

社区目录页:

https://www.skillhub.cn/plugins/Frost-Reed/blocker-notify

GitHub 仓库:

https://github.com/Frost-Reed/blocker-notify

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

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

小夜