前言¶
用 DSH 跑了一段時間智能體任務後,本地會話會越積越多:列表裏新舊會話混在一起,想找最近那一次對話要往下翻很久;哪些會話佔了多少磁盤,也得手動去看記錄目錄。這些問題不涉及智能體本身的能力,但對日常使用影響不小。
下面介紹的 dsh-archived-sessions 插件,就是針對這件事:它在 DSH Web 左側欄加一個「歸檔會話」入口,把舊會話收起來,同時提供搜索、批量操作、詳情查看和刪除本地記錄的能力。
這是什麼¶
dsh-archived-sessions 是一個 DSH Web 插件,作者爲 lwklbb,採用 MIT 許可證,package.json 中的版本爲 0.2.1,engines 要求 Node >= 20。
它解決的問題是:在 DSH Web 內集中管理已歸檔和未歸檔的本地會話,支持歸檔、移出歸檔、搜索、批量操作、查看詳情、打開記錄文件夾和刪除本地記錄。安裝後不需要跳轉頁面,所有操作都在 DSH Web 界面內完成。
核心功能¶
左側欄入口與統計¶
安裝後,DSH Web 左側欄會多一個「歸檔會話」按鈕,按鈕右側顯示已歸檔會話數量。點擊後在中間區域打開管理面板,面板右上角提供「刷新」和「關閉」。
面板頂部有「歸檔會話」和「全部會話」兩個標籤頁,統計區顯示三項內容:已歸檔數量、未歸檔數量、已歸檔會話佔用的記錄空間。
列表、搜索與分組¶
列表中每個會話顯示標題、記錄大小和最近更新時間。搜索框支持按標題或會話 ID 過濾。
視圖有兩種:
- 普通列表視圖;
- 按工作區分組(在「全部會話」頁),沒有工作區歸屬的會話歸入「未分組」。
子代理會話會縮進顯示在父會話下面;父會話不存在時,作爲普通行顯示。
批量操作¶
支持單選、全選和拖動連續勾選。在「全部會話」頁可以把選中會話批量歸檔;在「歸檔會話」頁可以把選中會話批量移出歸檔;也支持批量刪除,刪除前會彈出確認框。
需要注意批量操作的規模:一次請求最多處理 100 個會話,宿主端按順序執行。
會話詳情¶
點擊行尾箭頭可以展開詳情,內容包括:
- 記錄目錄佔用空間、最後更新時間;
- 輪次、步驟、用戶消息、回覆消息、工具調用、附件數量;
- 工具使用統計,例如
pwsh、grep、write、read; - 網絡獲取 / 下載記錄;
- 下載或產出的文件;
- 父會話和子會話 / 分叉關係。
這些統計對判斷「哪些舊會話可以清理」很有用:記錄大小和活動情況一目瞭然,不用再手動翻目錄。
打開記錄文件夾與產出文件刪除¶
「打開記錄文件夾」會調用系統文件管理器,直接打開該會話的記錄目錄,方便手動備份或檢查原始記錄。
詳情裏的產出文件可以勾選後刪除。刪除時會檢查兩件事:文件是否在已登記工作區內,以及是否屬於該會話的產出文件列表。
刪除規則¶
刪除有明確的保護邊界:
1、當前打開的會話不能刪除。
2、運行中的會話不能刪除。
3、刪除是非級聯的:只刪除選中的會話記錄,不會連帶刪除子代理、分叉會話或產出文件。
4、刪除已失效的歸檔項時,會順便清理歸檔列表裏的無效 ID。
非級聯意味着想徹底清理一組會話,需要分別勾選後再刪,這一步不會「誤傷」關聯記錄。
本地接口¶
插件宿主端使用 /archived/api/* 本地接口,只接受本機同源的 POST 請求。歸檔、移出歸檔、刪除、打開文件夾等操作都在本機 DSH Web 進程內完成,不涉及外部服務。
安裝與啓用¶
先確認本機 Node 版本滿足 Node >= 20,再執行下面的命令安裝插件:
dsh plugin --profile web add https://codeload.github.com/lwklbb/dsh-archived-sessions/tar.gz/refs/heads/main
如果 pnpm 攔截構建腳本,可以加上 --ignore-scripts:
dsh plugin --profile web add https://codeload.github.com/lwklbb/dsh-archived-sessions/tar.gz/refs/heads/main --ignore-scripts
本地開發調試時,在項目目錄內安裝:
dsh plugin --profile web add . --ignore-scripts
安裝完成後重啓 DSH Web,左側欄即可看到「歸檔會話」入口。
典型用法¶
經過上面的步驟,插件已經可用。日常使用流程如下:
1、打開左側欄的「歸檔會話」。
2、在「全部會話」裏搜索和勾選要隱藏的舊會話,點擊「歸檔」。
3、在「歸檔會話」裏查看已歸檔內容;需要恢復時點擊「移出歸檔」。
4、展開會話可以查看記錄大小、活動統計、工具使用和產出文件。
5、確定不再需要的會話,可以勾選後刪除。
適用場景與注意¶
這個插件適合兩類人:
- 長期使用 DSH、本地會話數量增長明顯,希望把舊會話收起來又不丟失記錄的用戶;
- 關心磁盤佔用,想看清各會話記錄大小、工具調用和產出文件,再決定是否清理的用戶。
使用前有幾點需要留意:
1、插件以當前 dsh 進程的權限運行,宿主端可以讀取會話記錄和磁盤狀態、調用系統文件管理器。安裝前建議先檢查倉庫源碼和許可證。
2、批量操作一次請求最多處理 100 個會話,超大清理任務需要分批進行。
3、刪除是非級聯的,子代理、分叉會話和產出文件不會被連帶刪除;反過來,想徹底清理時也要分別勾選。
4、刪除操作有確認框,且當前打開和運行中的會話受保護,但仍建議對不確定的會話先歸檔而不是直接刪除。
結尾¶
dsh-archived-sessions 做的事情不復雜:給 DSH Web 補上會話歸檔這一層管理能力,歸檔、恢復、統計、刪除都在本機完成。對會話積累較多的用戶,這是一個直接改善使用體驗的小插件,也符合 DSH「一切皆插件」的設計思路。
DSH 插件目錄頁:https://www.skillhub.cn/plugins/lwklbb/dsh-archived-sessions
GitHub 倉庫:https://github.com/lwklbb/dsh-archived-sessions