前言¶
在 DeepSeek Harness(DSH)里長期跑智能體會積累大量會話。宿主默認提供歸檔或手工刪目錄的方式,但「刪會話」和「刪會話在工作區裏寫過的文件」往往要分開處理,誤刪也難按時間批量找回。插件 dsh-manage-deletion(維護者 ingk888766-cloud,分類 admin-security)把刪除、可選文件範圍、回收站還原和多選批量合成一套流程;正在執行的會話會被拒絕,避免打斷活動回合。
這是什麼¶
dsh-manage-deletion 是 DSH 的會話刪除管理插件:刪會話時可選擇是否一併移走該會話在工作目錄內通過 write / edit 產生過的文件;刪除默認進插件回收站,可按刪除時間單條或批量還原;支持側欄掃描、行內垃圾桶與多選批量。實現上數據只走宿主服務(sessionPersistence、sessions、workspaceRegistry 等),不直接解析宿主內部文件結構;運行時無額外 npm 依賴(Node 內置模塊 + React)。當前包版本 1.3.5,許可證 MIT。
核心功能¶
入口與操作方式¶
- 側欄 「刪除管理」 頁:快速掃描、勾選、批量刪除。
- 會話行右側 垃圾桶:刪單個會話。
- 工作區頂部 「多選」:勾會話或全選後「刪除選中」。
刪除範圍¶
- 默認:會話日誌目錄移入
$DSH_HOME/manage-deletion/trash/<條目>/session,並寫入index.json;DSH 側欄中該會話消失。 - 可選「同時刪除這些會話產生的文件」:僅收集該會話自己寫/編過、且路徑落在該會話工作目錄(cwd)內的文件;確認對話框會逐條列出,可取消勾選。恢復時會話與勾選過的文件一併還原。不在 cwd 內的路徑一律忽略,工作區裏其他文件不會被動到。
回收站與徹底刪除¶
回收站按刪除時間列出條目,支持單條或批量「恢復選中」。回收站內的 徹底刪除 會物理刪除日誌與工作區副本,需二次確認,不可恢復。
拒絕與安全邊界¶
- 正在跑(有活動回合)的會話:拒絕刪除,不動其文件。
- 打開但空閒的會話可以刪。
- 置頂會話可先刪:刪除前會自動取消置頂。
- 刪除前會調用宿主
workspaceRegistry.archiveSession()歸檔,再移動日誌;移動失敗會回滾歸檔,避免「側欄看不見但數據仍在」的殘留狀態。 - 同一時刻只允許一個刪除/恢復操作(併發保護)。
掃描與列表性能¶
會話數量多時,掃描結果緩存 60 秒,首屏默認 50 行(可通過配置調整 listLimit 等)。
安裝與啓用¶
- 安裝插件(命令來自官方 README):
dsh plugin --profile desktop add dsh-manage-deletion
也可在 DSH 插件市場安裝等價包名 dsh-manage-deletion。
- 重啓 DSH:Web 端重啓服務並刷新頁面;Desktop 退出後重新打開。側欄會出現 「刪除管理」。
環境與兼容(見倉庫 package.json):
- DSH:
>=0.2.0-rc.2 <0.3.0(在0.2.2-rc.1上開發與實測) - Node:
>=22.19 - profile:
web、desktop
典型用法¶
30 秒上手(界面)¶
- 刪單個:鼠標移到會話行 → 點右側垃圾桶 → 確認框點「刪除」。
- 批量:工作區頂部「多選」→ 勾選會話(或「全選」)→「刪除選中」。
- 掃全部:側欄「刪除管理」→「快速掃描」→ 勾選 →「刪除選中」。
- 誤刪恢復:刪除管理 →「回收站」→ 勾選 →「恢復選中」。
composition 配置(可選)¶
插件不導出 schemastery schema;在 composition 條目裏爲 manage-deletion 增加 config,例如控制空會話判定、批量上限、回收站目錄等:
- id: manage-deletion
name: 'dsh-manage-deletion'
config:
blankMaxBytes: 1200 # 掃描時的空會話上限
tinyMaxBytes: 20480 # 很小且很久沒動
oldDays: 30
threshold: 20
includeSubagents: true
titleResolveLimit: 200 # 一次掃描最多摺疊多少個標題
listLimit: 1000
maxBatch: 50 # 單次刪除上限
trashDir: '' # 空 = $DSH_HOME/manage-deletion/trash
Agent 工具¶
智能體可通過宿主暴露的工具做只讀掃描或經確認的清理:
| 工具 | 作用 |
|---|---|
manage_deletion_scan |
只讀掃描:統計、候選(含判定依據)、回收站狀態 |
manage_deletion_clean |
mode=archive / unarchive / trash;trash 可帶 deleteFiles、deleteExtraFiles;必須 confirm=true |
manage_deletion_trash |
action=list / restore / purge |
示例意圖:「掃一下空會話和子代理殘留」→ manage_deletion_scan;「把前 10 個刪掉」→ manage_deletion_clean(mode=trash, confirm=true)。
適用場景與注意¶
適合:需要定期清理空會話、舊會話或子代理殘留;希望刪除前有清單、刪除後有回收站;要在界面與 Agent 工具兩條路徑上統一語義的團隊或個人。
務必注意:
- 插件以當前 DSH 進程的權限讀寫會話目錄與工作區文件;安裝前請閱讀源碼與 MIT 許可證,確認是否符合你的安全策略(分類爲 admin-security 即與此相關)。
- 「同時刪除產生的文件」有 cwd 硬邊界,不會刪工作區根目錄下與會話無關的文件;徹底刪除不可恢復。
- DSH 生態遵循「一切皆插件」;社區目錄(如 SkillHub)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,本文安裝與能力描述均以倉庫 README 與
package.json爲準。