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。

它的核心能力是:

  • 支持 command 和 file 兩種流源
  • 監聽命令輸出或文件新行
  • 新行以過濾、批量、字節受限的通知到達
  • 支持可選 JavaScript regex 過濾
  • 每個 watch 是一等 background job(kind watch)
  • 可配合 job_list、job_output、job_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,kind 爲 watch。因此可以使用 DSH 標準的 job 管理接口:

  • job_list
  • job_output
  • job_kill

安裝與啓用

安裝命令如下:

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

dsh plugin 會轉發到 pnpm,因此 pnpm 必須位於 PATH。

典型用法

監聽命令輸出

下面的示例監聽 npm run dev 的輸出,並只關注包含 error、warn 或 Ready 的行:

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

監聽文件新行

下面的示例監聽日誌文件的新行,並只關注 ERROR 或 FATAL:

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

無人值守運行

插件支持在 profile config 中聲明 wakeRefillMs 和 autoArm 的 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

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

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

小夜