dsh-shared-memory:DSH 全局共享 Markdown 記憶與雙盤鏡像

前言

在 DeepSeek Harness(DSH)裏開新會話,模型往往不知道你上一段對話裏定過的規矩,也不會自動繼承上一次踩坑後的改法。常見做法是各自維護項目裏的 AGENTS.md、靠用戶反覆粘貼背景,或把筆記丟進外部向量庫——可讀性和「所有會話共用一份、能手工改、壞了還能恢復」往往難以兼顧。

下面介紹社區插件 dsh-shared-memory(維護者 1148462398-hub)。它把記憶收斂成一份人類可讀的 MEMORY.md,所有 DSH 會話共用;寫入時雙硬盤分區鏡像備份,檢索用關鍵詞共現與 BM25,並用「質疑度」驅動方法庫擇優。插件還附帶可選的技能庫(~/.dsh/skills/ 下的 SKILL.md)與表情包自動發送能力。當前版本 1.9.4(MIT),SkillHub 分類爲「記憶」。

這是什麼

dsh-shared-memory 是 DSH 的 bundle 插件:一份全局共享記憶文件 + 可對話調整的人設 + 雙分區鏡像 + 方法庫(methodbook)+ 文檔導入分區(docs),以及技能與表情包相關能力(見倉庫 README 與 package.json 描述)。

它主要解決:

  • 會話之間互不相識,背景與偏好要重複交代。
  • 錯誤與教訓無法沉澱到下一次會話。
  • 人設散落、難以統一修改與傳遞。
  • 單點存儲,磁盤故障即全失。

生態上,DSH 主張「一切皆插件」;SkillHub 是獨立社區目錄,與 DeepSeek / 幻方無官方從屬關係。安裝與啓用前請自行審閱 GitHub 源碼 與許可證;插件以當前 DSH 進程權限讀寫本機文件。

記憶文件結構

單個 Markdown 文件,可用編輯器直接改。區塊由 HTML 註釋劃分,請勿刪除 <!-- dsh-shared-memory:xxx:start --> / :end 標記。

區塊 內容 誰來寫
persona 當前模型人設提示詞 模型(用戶要求時)
requirements 長期要求與偏好(精選) 模型
requests 用戶輸入流水(每輪摘要一行,滾動淘汰) 插件自動
corrections 用戶指正 模型
lessons 自我教訓 模型
methods 更好的方法(場景 / 做法 / 原因) 模型
sessions 會話索引(含壓縮事件) 插件自動

另有 methodbook(質疑度驅動的方法庫索引與 JSON 權威副本)和 docs(外部文檔導入,不進提示詞、僅檢索)。requests 與 requirements 分離,是爲避免每輪自動摘要把長期要求擠掉。

存儲、雙備份與對賬

默認路徑(README 以 Windows 爲例):

  • 主文件:%USERPROFILE%\.dsh\dsh-shared-memory\MEMORY.md
  • 鏡像:D:\dsh-shared-memory\MEMORY.md(自動選第一塊非系統盤)

規則概要:

  1. 每次寫入同時寫主文件與鏡像(臨時文件 + rename,寫完回讀校驗)。
  2. 啓動時對賬:缺一側則回補;兩側內容不同則保留較舊爲 .conflict-<時間>.bak 後以較新爲準;兩側都不存在則按模板重建。
  3. 主文件與鏡像在同一盤符時,插件會在日誌中告警。

換路徑可讓模型調用 memory_file_maintain(action=relocate),或修改 dsh/cordis.patch.yml 中的 primaryPath / mirrorPath 後重啓。徹底清空需 action=reset 且 confirm="DELETE_BOTH",否則拒絕執行。

關鍵詞索引寫在同目錄的 MEMORY.index.json;超出主文件容量上限的條目進入 MEMORY.archive.md(同樣雙寫),仍可通過檢索訪問。

注入、讀盤與項目作用域

注入:人設(約佔預算 1/3)+ 記憶使用協議 + 各分區索引摘要(條數受「檔位」限制;放不下的會提示用 memory_file_search 檢索),作爲系統提示詞 section(order 25)。已記錄內容會標註爲參考數據而非指令;正文中的 {{...}} / ${...} 會被打斷,避免被當成模板求值。

讀盤:組裝提示詞時同步 statSync 比對 mtime(1.2s 節流),變更則重讀。上下文壓縮後並非只靠一次性提醒,而是持續從磁盤讀取;檢測到壓縮事件後,該會話約 30 分鐘內會在提示詞開頭提醒「共享記憶已重新讀取」。

作用域:按會話工作目錄自動打上 project:<目錄名>。注入的是全局條目 + 當前項目條目;工具參數 scope 可選 current(默認)、global、all。記錄時默認 scope=auto。

注入檔位(memory_file_maintain({action:"profile", profile:"..."}) 或配置 profile):

檔位 預算 每分區條數
lean 標準 × 0.55 5
standard(默認) ×1 8
rich ×1.7 14

每類默認上限 200 條(entryCap),超出部分歸檔;寫盤前舊內容可進 .history/(默認保留 50 個 revision),支持 history / rollback。

檢索、分層與關係

memory_file_search 默認 mode: "fuzzy":精確、中文 2-gram、ASCII 近鄰、共現聯想詞等多路打分,排序用 BM25;嚴格匹配可用 mode: "strict"。聯想詞典隨記憶入庫自舉(共現圖,每詞最多 16 個鄰居)。

主文件與歸檔之間按命中頻率流動,而非簡單「最舊先刪」:檢索命中、被注入使用會抬高權重;新條目有保護期(默認 3 天)。質疑度越高,主文件命中不足時越傾向翻歸檔(歸檔結果標 [分節·歸檔])。

質疑度 0–10 與方法庫:索引裏已有「最佳方法」時,質疑度大於 0 會要求換多種做法再比較 token 與耗時;更優則替換,否則累計未更優次數,連續達到 decayAfter(默認 3)可降檔至 0。查詢入口示例:

memory_file_method({ action: "query", task: "在 Windows 上用 ninja 構建 C++ 項目" })

條目關係(只改索引、不改正文時間線):supersedes 取代舊條、related 關聯檢索、ttlDays 過期後不再注入但仍可搜到。

重複寫入同一內容會 reinforce 而非 duplicate;正文含「必須 / 務必 / 禁止」等強調詞會提高權重,影響注入排序、檢索與分層保留。

記憶網頁與維護工具

宿主 HTTP 服務下提供自包含頁面(路徑示例,端口隨 DSH 而定):

http://127.0.0.1:49870/dsh-shared-memory

接口包括 GET /api/state、POST /api/save、POST /api/reconcile;另有導出與歷史對比相關 API(見 README)。請求需同源校驗與請求頭 x-dsh-memory: 1,並有體積上限。

常用維護動作(由模型通過插件工具調用,具體參數以倉庫文檔爲準):

memory_file_maintain({ action: "rebalance" })
memory_file_maintain({ action: "export" })
memory_file_maintain({ action: "history" })
memory_file_ingest({ path: "C:\\path\\to\\AGENTS.md" })
memory_file_consolidate({ action: "scan" })

memory_file_consolidate 的 scan 只讀歸簇,不會自動合併;合併需模型寫新條目,舊條目靠低命中自然歸檔。

安裝與啓用

SkillHub 目錄頁提供「發送給 DeepSeek Harness 安裝」的文案,核心是讓 DSH 安裝插件標識 1148462398-hub/dsh-shared-memory。頁面地址:

https://www.skillhub.cn/plugins/1148462398-hub/dsh-shared-memory

在 DSH 對話中可按目錄頁給出的完整說明發起安裝(目錄頁會要求先讀取插件說明再安裝,具體句式以頁面爲準)。示例開頭:

請安裝 DSH 插件 1148462398-hub/dsh-shared-memory。

README 還提到:修改 host 側邏輯後需重新 apply(例如 plugin_manager set_plugin 關再開,或重啓 DSH)才生效;package.json 須爲無 BOM 的 UTF-8,否則安裝器可能報錯。

典型用法

  1. 裝好後正常對話:插件會把每輪首條用戶消息摘要寫入 requests,並在注入區展示各分區最新摘要;細節用 memory_file_search。
  2. 長期規矩寫進記憶:通過對話讓模型寫入 requirements / corrections / lessons,或手工編輯 MEMORY.md(若改文件,雙盤鏡像兩側需保持一致,否則對賬會覆蓋)。
  3. 接項目規則不進每輪 token:memory_file_ingest 把 AGENTS.md 等按 ## 標題切塊寫入 docs,僅檢索時使用。
  4. 重複性任務:先 memory_file_method 查方法庫與當前質疑度,再按協議嘗試更優做法並回寫 methodbook。
  5. 瀏覽器維護:打開 /dsh-shared-memory 查看分區、revision 與雙備份是否一致,必要時對賬回補。

適用場景與注意

適合:長期用 DSH 做同一批項目、希望跨會話共享人設與教訓;重視 Markdown 可讀、手工編輯與雙盤容災;希望檢索不依賴外部向量服務。

注意:

  • 默認鏡像路徑面向「主盤 + 另一塊盤」;Linux 或單盤環境需通過 relocate 或配置改路徑,並理解同盤鏡像無意義時的告警。
  • 寫操作帶進程內排隊與跨進程文件鎖;極端併發下可能降級爲僅進程內串行並記警告。
  • 技能執行(可選 run.mjs)與表情包發送會擴大插件行爲面,啓用前請閱讀 lib/ 與 dsh/cordis.patch.yml。
  • 插件版本與 DSH 主版本需自行匹配;社區目錄 Star 數會變動,以 GitHub 爲準。

結尾

dsh-shared-memory 把 DSH 的「記憶」做成一份共享、可編輯、可鏡像備份的 Markdown,並用命中分層、BM25 + 共現檢索、質疑度方法庫把「只會記」推進到「會擇優、會迴流歸檔」。目錄與源碼:

羽毛球分组比赛记分
小程序二维码

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

小夜