前言¶
在 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 典型流程操作:
- 在當前對話執行
/recovery create(可選備註:/recovery create 項目名),記下返回的恢復碼。 - 新開對話,先執行
/recovery memory ABCDE-FGHJK-LMNPQ-RSTUV(替換爲實際碼)。 - 默認情況下,模型會先總結上一段會話(在做什麼、結論、文件與命令、遺留事項等),回覆最後一行含「記憶已恢復」,之後可繼續提問。
若只想注入記憶、不消耗總結的 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