前言¶
DeepSeek Harness(DSH)的插件化架構允許開發者靈活擴展功能,但會話日誌的損壞始終是一個風險點。即便有防止併發寫入的插件,進程崩潰或冷加載時的數據損壞依然可能發生。dsh-session-snapshot 旨在填補這一殘留的缺口。它在每個回合結束時驗證日誌是否可加載,若可加載則將其提升爲快照。這樣,當日志損壞時,損失被限制在當前正在進行的回合中。
定位¶
這是一個爲 DeepSeek Harness 提供會話備份的插件。它提供滾動且經過完整性驗證的備份,確保損壞帶來的損失最小化。該插件由 po-et 維護,屬於「記憶」類別。
核心能力¶
- 自動快照:在回合邊界自動創建快照。
- 完整性驗證:在將日誌提升爲快照前,先驗證實時日誌是否仍可加載。
- 良好副本保留:確保在回合邊界保留經過驗證的良好副本。
- 輕量級運行:零運行時依賴。
安裝與啓用¶
目前該插件未發佈到 npm,需要直接從 GitHub 安裝。
dsh plugin --profile web add github:po-et/dsh-session-snapshot
安裝後,插件會在回合邊界自動運行。如果使用 AI 代理,可以指示其安裝此插件。
使用示例¶
即使 DSH 本身無法啓動,也可以使用 npx 運行此插件。
列出所有會話的快照和健康狀態:
npx github:po-et/dsh-session-snapshot
列出特定會話(通過 ID 片段)的快照:
npx github:po-et/dsh-session-snapshot list 37374e34
恢復最新的驗證快照:
npx github:po-et/dsh-session-snapshot restore 37374e34
注意:restore 命令會先將當前文件備份爲 <artifact>.pre-restore-<time>,且只恢復能夠通過驗證的快照。
手動立即創建快照:
npx github:po-et/dsh-session-snapshot snapshot 37374e34
配置說明¶
插件支持 YAML 配置,用於控制保留策略和執行頻率。
- id: session-snapshot
name: dsh-session-snapshot
config:
keep: 5 # 每個會話保留的快照數量,超過此數量將刪除最舊的
minIntervalMs: 0 # 同一會話快照間的最小間隔(毫秒),0 表示每次變化都創建
# home: /custom # 默認爲 $DSH_HOME (~/.dsh)
快照文件保存在 $DSH_HOME/session-snapshots/<session-id>/ 目錄下。
範圍與注意¶
- 備份範圍:快照僅包含會話日誌的點時副本,不備份工作區文件。
- 格式支持:支持會話格式版本 0(
.l和.l.zstd)。由於 DSH 處於 1.0 版本前(預覽版),不保證格式兼容性。 - 未知版本:遇到未知版本時,工具會拒絕處理並提示錯誤,而不是嘗試猜測。
- 依賴:MIT 許可證,零運行時依賴(壓縮處理依賴 Node.js 內置 zlib)。
結尾¶
dsh-session-snapshot 是會話完整性套件的一部分,配合會話防護和救援插件使用,能夠有效降低會話數據丟失的風險。更多詳情請訪問插件目錄頁或 GitHub 倉庫。