前言¶
在 DSH Web GUI 裏跑智能體任務時,一次會話可能包含多輪對話、多次工具調用和多次模型調用。輪數、步數、token 用量、緩存命中、LLM/工具耗時這些信息分散在會話日誌裏,逐條打開歷史會話不容易覈對。
dsh-conversation-stats 面向這個問題:在 DSH Web GUI 頂部新增「會話統計」tab,把會話數據從 ~/.dsh/sessions 下的會話日誌中解析出來,以總覽和明細兩種視圖展示。下面介紹它的能力、安裝方式和需要注意的點。
這是什麼¶
dsh-conversation-stats 是 DeepSeek Harness(DSH)Web GUI 的會話統計插件,由 wellcover 維護,許可證爲 MIT。
它會在頂部「對話」「軌跡」之後註冊 conversation.view tab,排在「對話」「軌跡」及用量插件的 tab 之後。頁面列出每個對話的輪數、步數、模型調用次數、token 用量(輸入 / 輸出 / 緩存),並彙總 LLM/工具耗時、模型分佈、結束原因;點擊會話可展開逐條模型調用明細與工具調用統計。
它不依賴常駐監聽,直接解析 ~/.dsh/sessions/**/session.jsonl.zstd,因此歷史對話與當前對話同樣可見。
核心功能¶
會話總覽¶
- 會話總覽表包含:標題/片段、輪數、步數、調用、輸出 tok、輸入 tok、緩存 tok、緩存命中率、最後活躍。
- 默認按最後活躍倒序。
- 跨工作區會話一併列出,每行標註
cwd。 - 彙總 chips 顯示:會話數、總輪數、總步數、總模型調用、總 token。
緩存命中率¶
v1.0.6 引入緩存命中率列:
命中率 = 緩存讀 /(輸入 + 緩存讀)
分子分母都爲 0 時顯示「—」。
會話明細¶
點擊某個會話後,可查看:
- 會話信息卡
- 工具調用表:次數、總耗時、失敗數
- 逐條模型調用明細表:時間、模型、結束原因、輸入、輸出、緩存、工具
刷新與刪除¶
- 頁面顯示掃描時間。
- 支持手動「刷新」,頁面 60 秒自動刷新。
- 列表結果緩存 30 秒,
?refresh=1可強制重掃。 - v1.0.2 起,總覽表最右側有「刪除」列;點擊紅色確認彈層後,刪除對應會話目錄
~/.dsh/sessions/…/<sessionId>,其中包括session.jsonl.zstd。
加載歸檔會話¶
v1.0.3 起,總覽表有「加載」列。對已歸檔會話顯示綠色「恢復」按鈕,點擊後會話 id 從 DSH storages/workspace.json 的 global.archivedSessionIds 移除,使該會話重新出現在 DSH 對話列表。該操作需要重啓 DSH Web 後生效。
安裝與啓用¶
環境要求¶
- Node 引擎要求:
>=22 - 插件會讀取當前
dsh進程可訪問的會話目錄;安裝前應檢查源碼和 MIT 許可證。
從 GitHub 安裝¶
dsh plugin --profile web add github:wellcover/dsh-conversation-stats
如需鎖定穩定版本 tag:
dsh plugin --profile web add github:wellcover/dsh-conversation-stats#v1.0.6
從源碼打包安裝¶
cd dsh-conversation-stats
npm pack
dsh plugin --profile web add dsh-conversation-stats-1.0.6.tgz
重啓¶
裝完重啓 dsh web,或重新打開桌面應用。
手動安裝¶
如果沒有 pnpm,可以按下面步驟手動安裝:
1、把包裝拷到 ~/.dsh/profiles/web/node_modules/dsh-conversation-stats
2、在 profile package.json 的 dsh.profile.bundles 追加 "dsh-conversation-stats"
3、在 cordis.patch.yml 追加:
- insert:
- id: conversation-stats
name: 'dsh-conversation-stats'
inject:
- fs
- webServer
4、重啓 dsh web
典型用法¶
1、打開 DSH Web GUI 頂部「會話統計」tab。
2、查看總覽表、彙總 chips 和會話明細。
3、需要重新掃描時,點擊「刷新」,或等待 60 秒自動刷新。
4、對已歸檔會話點擊「恢復」,然後重啓 DSH Web。
5、確認要刪除某段會話時,在總覽表最右側「刪除」列操作,並等待確認彈層。
數據口徑¶
- 會話掃描路徑:
$DSH_HOME/sessions,默認是~/.dsh/sessions。 - 數據文件:
.jsonl.zstd會話日誌,直接解析,不做常駐監聽。 - token 字段:
inputTokens、outputTokens、cacheReadTokens、cacheWriteTokens;不同提供方可能缺少某些字段,缺省按 0 計。 - 緩存命中率:緩存讀 /(輸入 + 緩存讀)。
- 列表緩存 30 秒;
?refresh=1強制重掃;頁面 60 秒自動刷新。
適用場景與注意¶
適合這類需求:
- 需要在 Web GUI 裏快速覈對多段 DSH 會話的輪數、步數和 token 用量。
- 需要查看工具調用耗時、失敗數、模型調用明細和結束原因。
- 需要管理歷史會話,包括刪除會話或恢復已歸檔會話。
注意:
- 插件以當前
dsh進程權限運行,會讀取並可能刪除會話目錄;安裝前建議先閱讀源碼,確認許可證爲 MIT。 - 若
DSH_HOME指向別處或~/.dsh/sessions爲空,列表可能爲空。 - 若頂部沒有「會話統計」tab,先確認 profile bundles 包含本包,並重啓。
- 若提示會話統計加載失敗,檢查
cordis.patch.yml中是否存在本插件行,且inject包含fs和webServer,然後重啓。 - 刪除會話會刪除對應目錄,不是僅從界面隱藏。
- 恢復歸檔會話必須重啓 DSH Web 後生效。
鏈接¶
GitHub: https://github.com/wellcover/dsh-conversation-stats