前言¶
在 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 給出四種方式,任選其一:
- 安裝 dsh-market 後,在「插件市場」標籤頁搜索
dsh-session-monitor一鍵安裝。 - 命令行(npm,README 標註爲推薦):
dsh plugin --profile <你的profile> add dsh-session-monitor
普通 dsh web 用戶 profile 名一般爲 web。
- 命令行(GitHub 倉庫 URL):
dsh plugin --profile <你的profile> add https://github.com/Rukawa15/dsh-session-monitor.git
- 本地路徑(開發模式):在本地已有倉庫目錄時:
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