前言¶
DeepSeek Harness (DSH) 的設計理念是“一切皆插件”。在開發過程中,會話歷史的管理、查看以及清理是高頻需求。dsh-session-manager 是一個由 huajuan2024 維護的插件,它爲 Web UI 的「設置 → 插件」頁面提供了一個會話管理面板。該插件位於「記憶」分類,旨在解決查看歷史消息、刪除舊會話以及導出會話記錄的痛點。
核心功能¶
插件主要包含 Host 服務和 Web 客戶端兩部分。Host 進程負責核心邏輯,通過 ctx.sessionManager 和 ctx.sessionQuery 服務讀取會話,執行刪除和格式轉換,並處理文件操作。Web 客戶端通過標準 /api RPC 調用 Host,渲染會話列表與詳情面板。
具體能力包括:
1. 列出會話:列出所有已知會話,包含 title、cwd、updatedAt、turns、steps、agentPreset 等信息。
2. 查看歷史:點擊單個會話可查看其消息歷史,支持導出爲 JSON 或 Markdown 格式。
3. 刪除會話:支持刪除單條會話,但運行中的會話會被拒絕刪除。
4. 導出功能:導出操作走瀏覽器 Blob URL 觸發下載。
安裝與配置¶
安裝需要使用官方提供的 tarball 包。請確保已安裝 Node.js 22.19 或更高版本,以及兼容 DSH 0.1.0-rc.7 的版本。
執行安裝命令:
dsh plugin --profile web add ../../plugin-releases/dsh-session-manager-0.1.5.tgz
安裝後,包內 cordis.patch.yml 會提供默認配置。若需覆蓋配置,需在 ~/.dsh/profiles/web/cordis.patch.yml 中使用相同的 id 寫入配置。注意:覆蓋時必須使用列表替換整份 config,不能追加在 [] 後面。
檢查最終配置結果:
dsh --profile web --dump-config
典型用法¶
- 查看列表:啓動 Web profile 後,進入「設置 → 插件」,即可看到「會話管理」面板,列出所有會話。
- 查看詳情:點擊列表中的會話行,展開查看消息歷史(默認最多預覽 200 條)。
- 導出數據:點擊導出按鈕,瀏覽器會下載 JSON 或 Markdown 格式的文件。
- 清理會話:點擊刪除按鈕,在確認對話框中刪除會話。
注意事項與限制¶
使用該插件前,請務必檢查源碼與許可證。插件以當前 dsh 進程權限運行,涉及文件操作。
- 權限與安全:文件操作只在 Host 進程中進行,token 或文件絕對路徑不會進入 Remote 返回值,防止信息泄露。
sessionId必須是裸 UUID 或匹配session-<uuid>格式,其他格式會被拒絕以防止路徑穿越。 - 運行時限制:處於
running狀態的會話不可刪除,必須先結束會話。 - 導出限制:單次導出的字節上限爲
10485760(10 MiB),超過此大小會返回too-large錯誤。 - 故障排查:
-session-running:會話正在運行,無法刪除。
-not-found:會話目錄已不存在。
-invalid-session-id:Session ID 格式不正確。
-permission-denied:Host 進程沒有讀寫權限。
-upstream-error:文件解壓或解析失敗。
總結¶
dsh-session-manager 爲 DeepSeek Harness 用戶提供了在 Web 端直接管理會話歷史的能力。通過列出、查看、導出和刪除,它輔助開發者更好地維護和利用會話數據。更多細節及源碼可參考其 GitHub 倉庫與 SkillHub 目錄。