前言¶
在 DeepSeek Harness(DSH)里長期跑智能體,會話會不斷積累。歸檔能把側邊欄裏暫時不用的對話收起來,但歸檔記錄仍佔磁盤,也缺少一個集中查看體積、批量恢復或徹底清理的入口。手動到 ~/.dsh/sessions/ 下翻目錄既容易誤刪,又很難對照工作區與會話 id。
會話管理(@local/dsh-session-manager)是掛在 DSH 設置裏的一頁插件:只列出已歸檔會話,支持按標題、工作區路徑或 session id 搜索,展示每條日誌的佔用體積與歸檔合計,並支持多選恢復或永久刪除。下面介紹它的定位、能力與使用時的邊界。
這是什麼¶
- 名稱:會話管理(包名
@local/dsh-session-manager,社區目錄xiaobaga281/dsh-session-manager) - 維護者:xiaobaga281
- 分類:記憶(社區目錄歸類)
- 版本(資料中的當前包版本):1.1.0
- 許可:MIT © 2026 xiaobaga281
插件在 Settings 中註冊 Session Manager 頁面:英文 README 將其描述爲列出 archived Harness sessions、檢查佔用、恢復與永久刪除,並帶搜索與多選批量操作。
核心功能¶
以下能力均來自項目 README,未歸檔會話不會出現在該頁。
僅歸檔視圖¶
頁面只管理已歸檔記錄;未歸檔會話不在列表中顯示。
搜索¶
對列表做過濾,匹配字段包括:標題、工作區路徑、session id(字面匹配,不區分大小寫)。README 說明:主查詢服務未掛載全文檢索後端(openAt: never),因此不能按對話正文搜索,僅 metadata。若要在歸檔日誌上做字面內容搜索,需在 sessionQuery.filterEvents 之上自行擴展,代價是讀取每條歸檔 log。
多選與批量操作¶
支持全選 / 逐行勾選,再對選中項執行恢復或刪除。
恢復¶
對選中會話執行 unarchive,它們會回到對應工作區的對話列表。
永久刪除¶
一次性移除 durable session log、其 session_projcache checkpoint,以及 Workspace 裏的 sessionIds 成員關係。 destructive 操作會要求確認,並在完成後展示回收的體積。
刪除涉及的路徑包括:~/.dsh/sessions/<workspace>/<session-id>/ 下的 log 目錄及相關 checkpoint 與成員項。
體積展示¶
每一行顯示該會話 log 在磁盤上的大小;頁面彙總當前已歸檔會話佔用的總量。
安裝與啓用¶
官方 README 未給出 dsh plugin add github:... 一類 CLI 命令。安裝方式爲:
- 通過 DSH Plugin Manager 使用
install_bundle安裝插件包目錄;或 - 將插件加入某個 profile 的 bundle 列表。
說明:
- Host 側(
index.js等)改動後需要 重啓 DSH 應用 纔會生效。 - Client 側(設置頁 UI)在 host 重新提供 bundle 後,隨頁面刷新即可加載。
- 運行環境要求 Node.js >= 20(見
package.json的engines)。
若自行打包分發,倉庫 README 給出:
npm pack
產物示例爲 dsh-session-manager-1.1.0.tgz(以 package/ 爲根),tarball 內含 files 列表、README.md 與 LICENSE。
典型用法¶
- 在 DSH 中打開 設置,進入插件註冊的 會話管理 / Session Manager 分區。
- 瀏覽已歸檔會話列表,查看各行體積與頁腳/合計處的歸檔總佔用。
- 在搜索框輸入標題片段、工作區路徑或 session id,縮小列表。
- 勾選需要處理的行(或全選),選擇 恢復 或 永久刪除,按提示確認。
- 刪除完成後留意界面提示的回收體積;若側邊欄仍有個別殘留條目,見下文「行爲與限制」。
行爲與限制¶
刪除是即時且不可逆的¶
一次請求內移除 log 目錄、projcache checkpoint 與 workspace 成員關係,確認後即執行。
正在跑 turn 的會話不能刪¶
若會話當前正在執行一輪對話,需先停止再刪。僅駐留在內存、處於 idle 的會話可以刪除。
駐留會話與側邊欄殘留¶
Harness 會把已打開的會話留在進程內存,且沒有公開的 unload API。刪除後記錄已無法解析到數據,但插件仍保留 archive 條目(用於在 UI 中隱藏),直到下次啓動;啓動時的 drain 會去掉最後一條 archive 條目。若側邊欄歸檔組裏仍看到已刪會話的空殼,重啓應用一次即可讓該條目消失。
延遲刪除重試¶
若請求時 log 因罕見原因無法刪除(例如仍有句柄佔用),對應 id 會寫入:
~/.dsh/storages/session-manager/pending-deletions.json
並在下次啓動時重試刪除。
實現結構(便於審閱源碼)¶
| 文件 | 作用 |
|---|---|
index.js |
Host:在 webServer 註冊 /session-manager/{list,restore,delete};經 ctx.sessionQuery 讀語料;改 live workspace 成員;刪存儲目錄 |
client.js |
Web:註冊 settings.section 頁面、樣式與導航圖標 |
cordis.patch.yml |
插入 session-manager Loader 行 |
locale/en.json、locale/zh.json |
Plugin Manager 與 Settings 展示文案 |
icon.svg |
線型圖標 |
適用場景與注意¶
適合:經常歸檔大量 Harness 會話、需要按 metadata 檢索、想看清磁盤佔用並批量恢復或徹底清理歸檔數據的開發者。
注意:
- 插件以當前 DSH 進程權限讀寫
~/.dsh/下會話與存儲;安裝前請閱讀 GitHub 倉庫 源碼與 MIT 許可證,確認符合你的安全與合規要求。 - 永久刪除不可恢復;刪除前務必確認選中項。
- 社區目錄 SkillHub 插件頁 與 GitHub 爲獨立信息源,與 DeepSeek / 幻方無官方從屬關係;DSH 生態強調「一切皆插件」,本文事實以倉庫 README 與 package 元數據爲準。
結尾¶
會話管理把「已歸檔 Harness 會話」收攏到設置頁:搜索 metadata、看體積、多選恢復或永久刪除,並在無法即時刪盤時通過 pending-deletions.json 在下次啓動重試。若你已在用 DSH 歸檔對話並關心磁盤與清理流程,可通過 Plugin Manager 的 bundle 安裝方式啓用該插件。