前言¶
在 DSH 上做智能體開發時,常會遇到一個問題:改了提示詞、換了模型或工具之後,想知道這次會話到底花了多久,某一輪卡在哪個環節。系統日誌雖然有事件記錄,但沒有現成的視圖把會話耗時和每輪耗時擺出來;靠外部計時工具或手工翻日誌都比較麻煩。
dsh-session-timing 就是一個補齊這塊的客戶端插件,維護者爲 Neverwocao(GitHub 作者 wzp168),MIT 協議。它給 DeepSeek Harness Web UI 加了三層耗時統計:每個會話的總耗時、每一輪的耗時,以及按時間段的彙總。
這是什麼¶
一句話定位:DSH Web UI 的會話牆鍾耗時插件,把會話日誌裏的輪次事件摺疊成可讀的耗時數字。
解決什麼問題:在界面上直接看到「這個會話用了多久」「這一輪用了多久」「今天 / 近 7 天 / 近 30 天一共用了多少」,不依賴額外的日誌分析工具。
核心功能¶
下面三點對應插件的三處觀測位置。數據全部來自會話日誌的 turn/start 與 turn/end 兩種事件。
1、每個會話的總耗時:打開會話時標題欄右側顯示 ⏱ 累計 12m 10s 膠囊;側邊欄「會話耗時」面板裏每個會話一行。
2、每一輪的耗時:Chat 中每一輪結束後、操作行上方顯示 本輪 2 · 3m · 08:52:30 → 08:55:30。
3、一段時間內的總耗時:側邊欄「會話耗時」面板提供 今天 / 近 7 天 / 近 30 天 / 全部 四個檔位。
因爲數據來自會話日誌,翻頁、壓縮上下文、重啓 Harness 都不會讓數字變化;正在進行的輪次不計入總量,只在標題欄膠囊裏實時累加。
安裝與啓用¶
安裝前確認三件事:Node.js ≥ 20;pnpm 在 DSH 進程的 PATH 上(DSH 用它安裝插件);本機有帶 dsh plugin 命令的 DSH。桌面版通常把命令裏的 web 換成你的 profile 名(一般是 desktop)。
一行安裝:
dsh plugin --profile web add github:Neverwocao/dsh-session-timing#v1.0.0
也可以不依賴 GitHub tag,改用發佈包或本地目錄:
# 從 tag 的 tar 包安裝
dsh plugin --profile web add https://github.com/Neverwocao/dsh-session-timing/archive/refs/tags/v1.0.0.tar.gz
# 本地開發:直接鏈接一份 checkout
dsh plugin --profile web add link:/絕對路徑/dsh-session-timing
裝完重啓 dsh web(插件行、客戶端 bundle 都是啓動時掃描的),再打開「插件」面板確認「會話耗時」已啓用。用 link: 裝本地代碼時,改完 Client 只需重啓 dsh web 或刷新頁面即可加載新 bundle。
卸載:
dsh plugin --profile web remove dsh-session-timing
典型用法¶
安裝啓用後不需要額外配置,直接在界面上讀數即可。
1、打開某個會話,先看標題欄右側的累計膠囊,判斷這個會話到現在用了多久。
2、做完一輪後看操作行上方的本輪耗時,用來定位起慢的輪次。若想進一步看模型時間與工具時間,改用 DSH 自帶的 sessionStats 統計條。
3、點側邊欄「會話耗時」面板圖標,切到 今天 / 近 7 天 / 近 30 天 / 全部,對比不同時間段的總耗時。面板不做自動刷新,切時間段或點「刷新」纔會重算。
計時口徑¶
插件對幾個名詞的定義如下,和直覺不完全一致,使用前先對齊。
| 名稱 | 含義 |
|---|---|
| 輪次耗時 | turn/end 時間減 turn/start 時間,包含工具執行與等待 |
| 會話總耗時(活躍時長) | 所有已結束輪次之和 |
| 時間跨度 | 第一輪開始到最後輪結束;會話中間閒置時它大於活躍時長 |
| 時間段總耗時 | 所選時間段內各會話活躍時長之和 |
另外兩條規則:會話按最後活動日歸檔,所以「今天」指今天有過活動的會話;某一輪沒有落 turn/end(崩潰、強殺)時,用下一輪的 turn/start 作爲它的結束時間,歷史保持單調。
適用場景與注意¶
適合誰:在 DSH Web UI 裏日常跑會話、需要按會話或輪次復盤耗時的開發者和使用者;想把會話耗時納入統計時也可使用。
注意事項,安裝前先看清:
1、插件以當前 dsh 進程的權限運行,能訪問該進程能看到的會話日誌;安裝前先閱讀源碼和許可證。README 標註 MIT,© 2026 wzp168。
2、只摺疊輪次邊界,不細分每一步(step)的耗時;模型時間與工具時間請用 DSH 自帶的 sessionStats 統計條。
3、面板單次最多讀取 120 個會話,超出會在頁面底部提示。
4、兼容性方面,README 說明在 DSH 0.2.1-rc.5 上驗證,engines.dsh 限定 >=0.2.1-rc.1 <0.3.0-0。
小結¶
這個插件的價值在於把原本要翻日誌才能算的耗時直接放進 Web UI,省去手工統計。安裝維護步驟不多,但能力限定在輪次粒度,需要 step 級數據時仍要回退到 DSH 自帶的統計。
目錄頁:https://www.skillhub.cn/plugins/Neverwocao/dsh-session-timing
GitHub:https://github.com/Neverwocao/dsh-session-timing
補充一句生態背景:DSH 的理念是「一切皆插件」,上面鏈接的社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。