dsh-memory-nebula:給 DSH 桌面端加一層可檢索的長期記憶

前言

DeepSeek Harness(DSH)桌面端裏,對話輪次一多,模型能直接看到的往往只有最近幾屏上下文。偏好、踩過的坑、上週隨口提到的細節,不會自動留在每輪 prompt 裏。常見做法是手動貼筆記,或把整段歷史堆進窗口——前者費手,後者佔用隨歷史膨脹。

下面介紹社區插件 dsh-memory-nebula(維護者 ZILCHW,分類:記憶)。它在每輪對話前按當前話題從本地記憶庫裏檢索,只把相關條目寫回上下文;記憶由插件側工具自行寫入與維護,不依賴外部模型、API 或聯網。側欄提供可交互的「記憶星雲」視圖。版本 v0.2.6,MIT 許可證,零運行時依賴。

這是什麼

dsh-memory-nebula 是面向 DSH 桌面端的長期記憶插件:自己決定記什麼、在每輪之前按話題召回,檢索爲純本地的詞法方案(2-gram、IDF、倒排索引、共現學習),結果可解釋——每條命中會說明匹配了哪些詞、落在哪個字段。全部數據落在單個 graph.json,無獨立服務。

與 embedding 方案相比,作者明確不引入模型、key 與按量計費;在「記憶以百計、查詢是日常問法」的規模上,同樣查詢與庫會得到 deterministic 的相同結果。

核心功能

每輪注入

聊到後面,模型仍可能「忘事」。插件在對話輪次前用你剛說的話去庫裏檢索,只注入少量相關記憶(README 舉例:一百多條記憶時,每輪約 5 條、約 500 字,上下文佔用與庫大小解耦)。翻不到相關時,只回「這一刻沒有相關的」,不佔多餘思考空間。

一次檢索大致走七步:

  1. 歸一化:全角轉半角、統一大小寫與空白。
  2. 粗分詞:中文 2-gram,去停用詞與含虛詞的 2-gram;英文與數字按完整詞切。
  3. IDF 加權:罕見詞權重更高;字段層級爲標題 ×6、標籤 ×4、正文 ×1.5。
  4. 倒排索引:先收窄候選,避免全表掃描。
  5. 共現學習:從已有記憶的標題/標籤統計共現,查詢時按 0.45 權重補充(如 b站 與 bilibili)。
  6. 沿連線聯想:字面命中後沿記憶邊擴一跳。
  7. 相對門檻:比第一名低 58% 以上的結果丟棄,不湊數。

綜合打分(README 原文):

score = 字面(歸一化) × 1.0
      + 聯想 × 0.5
      + 可及性 × 0.22
      + 新鮮度 × 0.1

記憶的衰減與釘住

每條記憶有 weight、act、strength、hits 等字段;長期未被想起會下沉(不刪,仍可在圖上看到)。45 天半衰期;常被想起的更牢;pinned 釘住的不衰減。

十個工具

工具 作用
memory_save 記一條;自動去重、與相似記憶連線;closes 可收掉一條待辦
memory_search 檢索;返回 belongsTo、links;before 可限定日期
memory_get 按 id 取全文與鄰居
memory_link 手動連兩條
memory_forget 刪除一條及連線
memory_pin 釘住 / 取消釘住
memory_stats 總量、連線、分佈等
memory_merge 合併重複記憶
memory_export 導出 JSON
memory_import 導入 JSON

自動連線僅在標題語義或標籤重合時建立,並按 IDF 加權,避免大衆詞濫連。

側欄星雲界面

五種視圖:小銀河、星雲(3D 力導向,層級可遞歸細分)、聚類、時間軸、列表。可點擊類別聚焦、點記憶飛到中心;搜索走完整檢索,列表與畫布上會展示命中理由(命中的詞與字段)。

安裝與啓用

需要 DSH 桌面端。官方 README 給出的安裝方式如下:

dsh plugin --profile desktop add link:/path/to/dsh-memory-net

也可將插件放入 ~/.dsh/plugins/ 後用插件管理器安裝。裝完重啓 DSH,協議、面板與工具會自動註冊。

裝好後記憶庫爲空;首次寫入值得記的內容時纔會創建:

~/.dsh/memory-net/graph.json

遷移數據用 memory_export / memory_import;更換存放目錄可設環境變量 DSH_MEMORY_NET_DIR。

典型用法

  1. 在對話中讓模型通過 memory_save 記下偏好、決定、教訓等待長期保留的信息。
  2. 每輪開始前插件會按當前話題調用檢索邏輯;需要主動查庫時可用 memory_search,必要時 memory_get 看全文。
  3. 重複條目用 memory_merge;重要條目 memory_pin;不再需要的用 memory_forget。
  4. 在側欄切換視圖、用搜索框驗證命中詞與相關簇;導出備份用 memory_export。

數據文件結構(節選,見 README):

{
  "version": 1,
  "nodes": [{ "id": "m_xxx", "title": "...", "body": "...", "layer": "core", "kind": "rule",
              "tags": ["坑"], "weight": 0.8, "pinned": true, "status": "",
              "createdAt": 0, "updatedAt": 0, "hits": 0, "act": 0, "strength": 1 }],
  "edges": [{ "from": "m_a", "to": "m_b", "kind": "related", "weight": 0.6 }]
}

寫入爲原子操作(tmp → rename)。刪除該文件即清空記憶。

適用場景與注意

適合:長期在 DSH 桌面端做同一項目或同一主題對話、希望偏好與教訓自動召回、且希望記憶與檢索完全本地、可解釋、無額外 API 成本的開發者。

注意:

  • 插件以當前 DSH 進程權限讀寫 ~/.dsh/memory-net/(或 DSH_MEMORY_NET_DIR);安裝前請閱讀 GitHub 倉庫 源碼與 MIT 許可證,確認符合你的安全與合規要求。
  • DSH 生態是「一切皆插件」;社區目錄 SkillHub 插件頁 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
  • README 中安裝路徑示例爲 dsh-memory-net,與倉庫名 dsh-memory-nebula 並存,本地 clone 或 link 時請與實際目錄一致。

結尾

dsh-memory-nebula 把長期記憶收成可檢索的本地圖結構,每輪只送相關幾條回上下文,並用側欄星雲做瀏覽與可解釋搜索——零依賴、不調模型、不聯網。

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

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

小夜