前言¶
DeepSeek Harness (DSH) 原生沒有提供刪除已歸檔會話的接口。歸檔操作只能取消歸檔,而日誌和投影緩存會一直留在磁盤上。dsh-archived 插件通過提供 UI 和 RPC 接口,填補了這一空白,確保會話日誌、投影緩存和歸檔索引能被徹底清理。
插件介紹¶
這是一款記憶類插件,主要用於管理 DSH 的已歸檔會話。它爲 DSH 的“設置 → 已歸檔”頁面增加了刪除、恢復和清理功能,並處理了索引殘留和宿主契約檢查等複雜狀態。
核心功能¶
插件實現了以下核心能力:
- 會話刪除:支持逐條刪除和批量刪除。默認採用“回收站”機制(30 天自動過期),也提供“永久刪除”選項。
- 回收站管理:支持從回收站恢復會話,或清空回收站。頂部常顯回收站中的會話數量和磁盤佔用。
- 磁盤佔用顯示:列出每個會話的磁盤佔用情況。
- 陳舊會話掃描:支持掃描並清理超過指定天數未動的會話(僅歸檔模式)。
- 目錄訪問:提供“打開文件夾”功能,直接在系統文件管理器中打開會話目錄。
- 安全邊界檢查:
- 僅接受已歸檔的 ID,拒絕刪除未歸檔會話。
- 拒絕刪除正在運行的會話,或擁有正在運行子代理後代的父會話。
- 處理索引殘留,防止因只有索引而無文件導致的異常。
- 進行宿主契約檢查,確保宿主 API 可用。
安裝與啓用¶
安裝命令如下:
dsh plugin --profile web add dsh-archived
前置要求:需要 DSH 0.2.0-rc.1 或更高版本。插件不支持 DSH 0.1.x。
典型用法¶
安裝後,插件會自動掛載到 Settings -> Archived 頁面。
界面操作¶
- 進入“設置 → 已歸檔”頁面。
- 使用搜索框或工作區分組篩選會話。
- 勾選需要刪除的會話,點擊“刪除”或“批量刪除”。
- 在頂部回收站區域,可以點擊“恢復最近一個”或“清空回收站”。
API 調用¶
通過 RPC 調用管理會話:
# 刪除會話(進回收站或永久刪除)
POST /api/dsh-archived/delete
Body: { "sessionId": "...", "mode": "quarantine" | "forever" }
# 批量刪除
POST /api/dsh-archived/delete-all
Body: { "mode": "quarantine", "ids": ["id1", "id2"] }
# 從回收站恢復
POST /api/dsh-archived/restore
Body: { "sessionId": "..." }
# 掃描陳舊會話(僅讀取)
POST /api/dsh-archived/sweep/scan
Body: { "days": 30 }
注意事項¶
- 24 小時硬保護:日誌在 24 小時內寫過的一律不列、不刪,與天數設置無關。
- 宿主狀態影響:如果宿主(Host)內存中還持有該會話,刪除操作會暫時延遲執行(寫入
deferred.json),直到宿主釋放該會話(通常在重啓後)。 - 不修改宿主數據:插件不會修改宿主的
schedule.json或message_feedback.json。 - 陳舊清理策略:陳舊會話清理只進回收站,永不永久刪除。
- 權限要求:插件以當前 DSH 進程的權限運行,安裝前請檢查源碼與許可證。
總結¶
dsh-archived 解決了 DSH 歸檔會話無法徹底清理的問題,提供了從 UI 到 RPC 的完整管理方案。對於需要維護長期會話記錄的開發者來說,這是一個必要的清理工具。