dsh-attention-beep

前言

在 DeepSeek Harness(DSH)的工作流中,长任务跑完后听不见提示、命令卡死时无法自动中断、模型反复生成低效代码导致长时间等待是常见痛点。dsh-attention-beep 插件旨在解决这些问题:通过宿主进程直接播放本机人声提醒,在命令卡死时自动中断并将恢复指引写回工具结果,以及在 spawn 之前拦截已知的性能陷阱写法。

核心功能

1. 任务结束与卡死提示

插件利用 Windows 的 .NET / WPF 框架和 Get-CimInstance Win32_Process,通过 DSH 宿主进程直接发声。这意味着即使浏览器标签页在后台、被静音或最小化,用户也能听到任务结束、命令卡死、整轮无进展或模型请求权限时的提示音。声音由宿主播放,不经过浏览器。

2. 自动脱困与恢复

当 pwsh 命令确认卡住时,插件会自动中断这一次工具调用。同时,它会把“发生了什么、shell 现在什么状态、怎么继续”的恢复指引写回工具结果,让模型在同一轮里能接上任务。默认配置下,中断只针对单次调用,不会取消整轮会话。

3. 命令守卫

插件在 spawn 命令之前拦截已知的性能陷阱写法(如 Get-ChildItem -Recurse -Include)。命中规则时,直接以工具错误返回并附上改法(约 0 ms),而不是等待执行几十秒。若确实需要使用原写法,可通过配置 run_in_background: true 绕过守卫。

4. 平台支持

该插件仅支持 Windows。三块核心能力(音频播放、进程探针、命令守卫针对 PowerShell 方言)均依赖 Windows 环境。

安装与启用

安装命令如下:

dsh plugin --profile web add github:kiterunner1/dsh-attention-beep

注意:安装前必须停止正在运行的 DSH 进程,否则 profiles/<name>/node_modules 可能会写入失败,导致 profile 无法正常工作。

安装完成后,需重启 DSH 才能生效。若需修改宿主代码(lib/*.js),同样需要重启。

配置说明

插件的配置在 loader 行的 config 中,默认值参考 cordis.patch.yml。用户层可在 $DSH_HOME/settings.yaml 中按 id 覆盖配置。

常用配置项包括:
* enabled: 是否启用插件。
* watchTools: 监控的工具列表,默认为 [pwsh]。
* warnMs / killMs: 卡死判定的预警和中断时间阈值。
* guardEnabled: 是否启用命令守卫。
* guardAllow: 命令子串放行列表,命中则跳过守卫检查。

声音配置支持 voice:<key>(内置人声)、系统预设或绝对路径的自定义音频文件。

典型用法

  • 修改提示音:编辑 $DSH_HOME/settings.yaml,配置 sound 项指向自定义文件。
  • 绕过守卫:在工具调用配置中添加 run_in_background: true,强制后台运行,跳过守卫拦截。
  • 防止思考时取消:设置 stallAutoResume: false,确保在模型调用 ask_user_question 等工具等待用户输入时,整轮不会被取消。

适用场景与注意

该插件适合在 Windows 环境下使用 DSH 进行自动化开发或调试的用户。安装和调试时请确保源码与许可证符合要求。

总结

dsh-attention-beep 通过本机音频反馈和自动化恢复机制,降低了 DSH 任务监控的门槛,提升了长任务和卡死场景下的调试效率。

GitHub 仓库 | 社区目录

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

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

小夜