dsh-watch:为 DeepSeek Harness agent 增加后台流监听

前言

在 DeepSeek Harness(DSH)里,agent 通常可以等待一段命令或任务完成,但有些工作更适合持续监听:命令一直在输出,日志文件一直在增长,agent 需要在出现关键新行时被唤醒。

dshworks/dsh-watch 解决的是这类问题:它为 DSH agent 提供后台流监听,监听命令输出或文件新行,并以过滤、批量、字节受限的会话内通知唤醒 agent。插件还附带无人值守 daemon host,用于把 watch 挂到长期会话中。

这是什么

dshworks/dsh-watch 是 DSH 插件,包名为 @dshworks/dsh-watch,许可证为 MIT,要求 Node >= 20。

它的核心能力是:

  • 支持 commandfile 两种流源
  • 监听命令输出或文件新行
  • 新行以过滤、批量、字节受限的通知到达
  • 支持可选 JavaScript regex 过滤
  • 每个 watch 是一等 background job(kind watch
  • 可配合 job_listjob_outputjob_kill 使用
  • 支持 wake budget/token bucket 和 event budget(max_events
  • 支持 autoArm profile 配置和 @dshworks/dsh-watch/daemon 无人值守宿主

核心功能

两种流源

插件支持监听两类来源:

  • command:监听命令输出
  • file:监听文件新行

命令源通过 shell capability 启动,并继承会话的 sandbox policy 和环境。文件监听从当前末尾开始,不投递既有内容;文件被截断后会从头重启;尚不存在的文件会被持续观察。

过滤、批量与字节限制

新行不会逐行无限制地进入会话。插件支持可选的 JavaScript regex 过滤,只有匹配的行会进入通知。通知本身也是批量、字节受限的,用于控制进入 agent 会话的内容量。

插件还提供一组配置上限,包括每 owner 的 armed-watch cap、notice 字节上限、backlog 预算等。

作为 background job 管理

每个 watch 都是一等 background job,kindwatch。因此可以使用 DSH 标准的 job 管理接口:

  • job_list
  • job_output
  • job_kill

安装与启用

安装命令如下:

dsh plugin --profile web add @dshworks/dsh-watch

dsh plugin 会转发到 pnpm,因此 pnpm 必须位于 PATH。

典型用法

监听命令输出

下面的示例监听 npm run dev 的输出,并只关注包含 errorwarnReady 的行:

watch(source: "command", command: "npm run dev", pattern: "error|warn|Ready", label: "dev")

监听文件新行

下面的示例监听日志文件的新行,并只关注 ERRORFATAL

watch(source: "file", path: "/var/log/app.log", pattern: "ERROR|FATAL")

无人值守运行

插件支持在 profile config 中声明 wakeRefillMsautoArm 的 standing watches,并可使用 @dshworks/dsh-watch/daemon 作为无人值守宿主。

一个可用的运行方式是:

dsh plugin --profile watcher add @dshworks/dsh-watch
dsh --profile watcher | tee -a watcher.log

适用场景与注意

适合需要 agent 在命令输出或文件新行中出现关键信息时醒来的场景,例如开发服务器、日志、长期运行脚本等。

使用前需要注意:

  • 插件以当前 dsh 进程权限运行,命令源还会通过 shell capability 启动,并继承会话的 sandbox policy 和环境
  • 安装前应检查源码和 MIT 许可证
  • 要求 Node >= 20
  • dsh plugin 会转发到 pnpm,因此 pnpm 必须位于 PATH
  • 文件监听从当前末尾开始,不投递既有内容
  • 存在每 owner 的 armed-watch cap、notice 字节上限、backlog 预算等配置上限

链接

目录页:https://www.skillhub.cn/plugins/dshworks/dsh-watch

GitHub:https://github.com/dshworks/dsh-watch

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

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

小夜