dsh-recovery-memory:用 20 位恢復碼在 DSH 裏帶走對話記憶

前言

在 DeepSeek Harness(DSH)裏做長對話時,換會話、清上下文或重啓引擎後,模型看不到之前的討論。常見做法是手動複製摘要、自己維護筆記,或依賴外部筆記工具。dsh-recovery-memory 是社區維護的記憶類插件:把當前對話打包成本機一條記錄,生成 20 個字母的恢復碼;在新對話裏用恢復碼把記憶注入上下文,必要時讓模型先總結上一段會話再繼續聊。記憶只落在本機目錄,不上傳、不做雲端同步。

這是什麼

  • 名稱:dsh-recovery-memory(npm 包名同插件 id)
  • 維護者:zilta-amaze
  • 分類:記憶
  • 許可證:MIT(見倉庫 README 與 package.json)
  • 版本(資料中的當前版本):0.1.0
  • 引擎要求:dsh >= 0.2.0
  • 目錄頁:SkillHub 插件頁
  • 源碼:GitHub - zilta-amaze/dsh-recovery-memory

插件是純 ESM、零運行時依賴(僅用 Node 內置模塊),通過 /recovery 系列命令完成創建、恢復、列表與刪除。

核心功能

下面能力均來自倉庫 README,安裝並掛載成功後可用。

輸入 作用
/recovery create 打包當前對話,返回 20 字母恢復碼
/recovery create <備註> 同上,併爲記憶命名(列表中顯示)
/recovery memory <恢復碼> 在新對話中恢復記憶,並默認自動總結上一段會話
/recovery memory<恢復碼> 緊湊寫法,等價於上一行
/recovery <恢復碼> 只給恢復碼時的簡寫
/recovery memory <恢復碼> --no-summary 只恢復、不自動總結(-n 同義)
/recovery list 列出本機恢復碼(最新在前,最多 10 條)
/recovery delete <恢復碼> 刪除一條記憶
/recovery / /recovery help 顯示用法

恢復碼爲 20 個大寫字母,字母表去掉 I、O(避免與 1/0 混淆),顯示時每 5 個字母一組,例如 ABCDE-FGHJK-LMNPQ-RSTUV。輸入時大小寫、空格、-、+、: 不敏感。

記憶默認保存在 $DSH_HOME/recovery/,一個恢復碼對應一個 JSON 文件,權限 0600、目錄 0700。可用 /recovery where 查看當前目錄與可寫狀態。

安裝與啓用

插件以 DSH profile 方式安裝。README 給出的從 GitHub 安裝命令如下:

dsh plugin --profile web add github:zilta-amaze/dsh-recovery-memory

說明:README 記載該方式經 pnpm 從倉庫拉取、零依賴,約 7 秒可完成;裝完後仍需把 dsh-recovery-memory 列入 profile 的 dsh.profile.bundles,或在 cordis.patch.yml 裏按文檔插入一行,再重啓引擎。

自定義 profile 還可通過 pnpm add link:... 鏈接本地包,並在 $DSH_HOME/profiles/web/cordis.patch.yml 末尾增加 insert 塊;或通過 package.json 的 dsh.profile.bundles 以 bundle 模式掛載。兩種方式只選一種,同時生效會導致 /recovery 註冊兩次、啓動報錯。

安裝前應自行查看倉庫源碼與 MIT 許可證;插件在本機 DSH 進程權限下讀寫記憶文件,內容以明文 JSON 存儲對話相關消息。

典型用法

長對話收尾或需要「換會話續聊」時,可按 README 典型流程操作:

  1. 在當前對話執行 /recovery create(可選備註:/recovery create 項目名),記下返回的恢復碼。
  2. 新開對話,先執行 /recovery memory ABCDE-FGHJK-LMNPQ-RSTUV(替換爲實際碼)。
  3. 默認情況下,模型會先總結上一段會話(在做什麼、結論、文件與命令、遺留事項等),回覆最後一行含「記憶已恢復」,之後可繼續提問。

若只想注入記憶、不消耗總結的 token,可加 --no-summary(或 -n),或在配置裏將 autoSummary 設爲 false。

配置與存儲位置

在 cordis.patch.yml 中可覆蓋插件配置(bundle 安裝用 id 覆蓋;insert 安裝用完整 insert 塊)。README 中的字段如下:

字段 默認值 說明
restoreChars 48000 恢復時注入的字符預算;裝不下時保留開頭 35% + 結尾 65%,並說明其餘條目仍在磁盤完整記錄中
maxRecordBytes 4000000 單條記憶落盤大小上限(約 4 MB)
autoSummary true 恢復後是否自動總結上一段會話
dir $DSH_HOME/recovery 記憶目錄;支持 ~/ 與相對 $DSH_HOME 的路徑

環境變量 DSH_RECOVERY_DIR 也可指定目錄,優先級:配置 dir > 環境變量 > 默認。更換 dir 後需把舊目錄 *.json 拷到新目錄並重啓引擎,舊恢復碼在新路徑才能找到。

記憶裏主要包含模型可見的用戶、助手與工具結果消息;系統提示與開發者消息不入庫;默認不壓縮整條消息,僅對異常長的單條做截斷。恢復碼僅在本機有效,換設備或清數據無法憑碼單獨還原。

適用場景與注意

適合:需要在 DSH 內跨會話延續同一話題、希望用短碼代替整段粘貼上下文的開發者;願意接受記憶留在本機、自行備份 recovery 目錄的用戶。

注意:

  • 長對話完整注入會佔用較多 token;可把 restoreChars 調小或關閉自動總結以省成本。
  • 記憶爲明文 JSON,若 dir 指向共享存儲或同步盤,能訪問該路徑的其他應用也可能讀到內容。
  • 同一會話重複恢復同一碼不會去重,會再次注入。
  • 社區目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係,安裝與使用以倉庫文檔與本機環境爲準。

結尾

dsh-recovery-memory 把「對話快照 → 20 字母恢復碼 → 新會話注入」做成一套本機命令,與 DSH「一切皆插件」的擴展方式一致。進一步細節、換目錄示例與測試說明見倉庫 README。

  • 目錄頁:https://www.skillhub.cn/plugins/zilta-amaze/dsh-recovery-memory
  • GitHub:https://github.com/zilta-amaze/dsh-recovery-memory
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜