dsh-session-monitor:本機 DSH 會話的只讀監視與看板

前言

在 DeepSeek Harness(DSH)裏同時開多個工作區、多個會話時,很難一眼知道「別的窗口在跑什麼、卡在哪一步、有沒有已經跑完」。去每個 GUI 裏點一遍既慢,也不適合在 IM 或腳本里做自動化跟進。社區插件 dsh-session-monitor(倉庫 Rukawa15/dsh-session-monitor)面向本機當前用戶的會話事件流做只讀聚合:狀態總覽、固定格式看板、按會話 tail / wait / 導出,並可配合 dsh-im 把結果推到微信、QQ、飛書等。維護者爲 Rukawa15;當前插件包版本 0.6.0,許可證 MIT。

這是什麼

DSH 會話監視器是一類 DSH 插件:不修改、不干預任何會話,只讀取本機 ~/.dsh/sessions/ 下按工作區分組的 session.v4.jsonl.zstd(多幀 zstd 壓縮的 JSONL 事件流),以秒級新鮮度反映各會話是否在跑、輪次與最新動作。可選 IM 推送依賴獨立插件 dsh-im。

核心功能

README 將能力歸納爲若干固定指令(均可通過 python scripts/monitor.py 調用;任意時刻 python scripts/monitor.py help 可得到與文檔一致的固定格式指南,help <指令名> 可看單條詳情):

功能 指令 說明
會話狀態總覽 status 全部會話的 RUNNING / STALLED / IDLE / ABORTED、輪次/步驟、最新動作
任務看板 board 三段式:活躍中 / 疑似中斷 / 已完成 TopN(IM 查詢首選)
深入某任務 tail <短ID> 某會話最近 N 條事件(用戶消息 / AI 消息 / 工具調用)
等待回覆 wait <短ID> 阻塞等到該會話本輪結束並打印 AI 回覆;--notify 可自動推送到 IM
主動推送 notify --text "..." 經 dsh-im 發到 IM(--to 選目標)
導出對話 dump <短ID> -o 文件.md 完整對話導出爲 Markdown

所有指令支持 --cwd 路徑 限定工作區;status / board / wait 支持 --json 機器可讀輸出。會話短 ID 一般取會話 ID 前 8 位左右即可。

插件還註冊兩個技能,供 DSH 內 AI 助手自動調用(無需手敲命令):

  • dsh-session-monitor:詢問「其他會話在幹什麼 / 任務進度 / 現在在跑什麼」時,助手會調用 board / tail / status,並按約定原樣回覆看板輸出。
  • dsh-session-relay(跨會話信使):需要「去某會話發話 / 代問並帶回回覆 / 讓某任務繼續」時,經 GUI 代爲發送,wait 阻塞等待對方回覆後再轉發。

狀態與看板怎麼讀

  • [RUNNING]:正在運行(默認 15 分鐘內有寫入且本輪未結束;閾值可在配置中調整)。
  • [STALLED]:疑似中斷(本輪未結束但超過活躍判定時間無寫入)。
  • [IDLE]:空閒(本輪已正常結束)。
  • [ABORTED]:最後一次輪次被手動中止。

看板「活躍中 / 疑似中斷」各最多顯示 board_max_running 條;超過 zombie_hours(默認 24 小時)無更新的會話不再展示;「已完成」按更新時間取前 board_top 條(默認 5)。

安裝與啓用

依賴:核心功能僅需 Python 3 與 zstandard(缺失時 pip install zstandard)。IM 相關命令需另裝 dsh-im;未安裝時相關命令會給出安裝/配置引導,其餘功能不受影響。

裝完需重啓 DSH 生效。官方 README 給出四種方式,任選其一:

  1. 安裝 dsh-market 後,在「插件市場」標籤頁搜索 dsh-session-monitor 一鍵安裝。
  2. 命令行(npm,README 標註爲推薦):
dsh plugin --profile <你的profile> add dsh-session-monitor

普通 dsh web 用戶 profile 名一般爲 web。

  1. 命令行(GitHub 倉庫 URL):
dsh plugin --profile <你的profile> add https://github.com/Rukawa15/dsh-session-monitor.git
  1. 本地路徑(開發模式):在本地已有倉庫目錄時:
dsh plugin --profile <你的profile> add <倉庫路徑>

不安裝插件包也可以:將本倉庫放入 ~/.agents/skills/(或作爲技能目錄),助手同樣能調用 scripts/monitor.py 的全部指令,只是沒有 DSH 設置頁。

典型用法

下面示例來自 README(Windows 路徑用反斜槓;Linux/macOS 可改爲 scripts/monitor.py):

# 現在在跑什麼任務?
python scripts\monitor.py board

# 某個任務進展如何?(短 ID 看板裏有)
python scripts\monitor.py tail 0a29d310 -n 20

# 等某會話出結果,出來後推送到飛書
python scripts\monitor.py wait 0a29d310 --timeout 600 --notify

# 主動發一條消息到 IM
python scripts\monitor.py notify --text "構建完成" --to feishu

# 導出某會話完整對話
python scripts\monitor.py dump 0a29d310 -o 會話導出.md

# 完整使用指南(固定格式)
python scripts\monitor.py help

設置與配置

在 DSH 設置 → 「DSH 會話監視器」 可調整輪詢間隔、活躍判定閾值、殭屍隱藏閾值、看板條數;頂部「依賴插件檢測」會顯示 dsh-im 連接情況(未安裝則引導到插件市場;已連接無目標則引導到 設置 → IM 機器人 新建目標)。

配置優先級:命令行參數 > 配置文件 > 默認值。設置頁與 ~/.dsh/dsh-session-monitor.json 爲同一份數據;手改 JSON 後對之後運行的命令立即生效。命令行參數如 board --top 10、wait --poll 5 僅對當次生效。

可調項(README 默認值):poll_interval_sec(10)、running_threshold_sec(900)、zombie_hours(24)、board_top(5)、board_max_running(10)、delivery(IM 投遞迴退;正式目標由 dsh-im 統一管理)。

適用場景與注意

適合在本機跑多個 DSH 會話、需要統一看板或腳本化「等某會話跑完再通知」的開發者;經 IM 接入 DSH 時,board 固定輸出也便於助手原樣回傳進度。

務必知曉:

  • 數據只讀本機當前用戶的會話目錄,不上傳、不修改會話內容;插件以當前 DSH 進程權限運行,安裝前建議瀏覽倉庫源碼並確認 MIT 許可證與行爲是否符合預期。
  • IM 推送爲可選能力,依賴 dsh-im 及其目標配置。
  • 社區目錄頁 skillhub.cn 上的條目與 GitHub 倉庫由社區維護,與 DeepSeek / 幻方無官方從屬關係;DSH 生態遵循「一切皆插件」,安裝來源以 README 與目錄頁爲準。

結尾

dsh-session-monitor 把分散在各工作區的 DSH 會話收成可讀的 status / board,並支持 tail、阻塞 wait、Markdown 導出與可選 IM 通知,且全程只讀。若要安裝或查最新說明,可看社區目錄頁與 GitHub README:

  • 目錄頁:https://www.skillhub.cn/plugins/Rukawa15/dsh-session-monitor
  • GitHub:https://github.com/Rukawa15/dsh-session-monitor
羽毛球分组比赛记分
小程序二维码

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

小夜