dsh-memory-hub:DSH 本地優先的跨會話記憶插件

前言

DeepSeek Harness(dsh)把能力拆成可插拔模塊,但默認會話仍是「開新窗就失憶」:偏好、約定、上一輪工具結論不會自動帶到下一次對話。社區裏也有記憶類插件,README 指出不少仍偏早期、依賴外部生態或未在 dsh 事件層做深度集成。dsh-memory-hub 由維護者 beijingwahw 發佈,歸類爲「記憶」,在 GitHub 上當前可見約 1 star;它以本地 JSONL 爲主存儲,訂閱 dsh 的 session/event 與 tools/result 做事件驅動捕獲,並給 Agent 暴露四套記憶工具,目標是在不接入雲端的前提下讓 Harness「越用越懂你」。

這是什麼

dsh-memory-hub 是 dsh 的智能會話記憶中心插件:自動從真實用戶輸入與工具成功結果裏提煉可持久化的偏好、指令與事實,同時允許模型在對話中顯式寫入、召回、遺忘與查看庫況。實現爲純 TypeScript,MIT 許可證;package.json 中版本爲 1.6.0,運行要求 Node.js ≥ 18,並通過 cordis.patch.yml 以插件 id memory-hub 掛入 profile 配置樹。

核心功能

下面按「自動捕獲 → 顯式工具 → 存儲與隱私」三塊說明已寫在 README 中的能力。

自動捕獲

插件監聽 dsh 事件溯源與工具結果管線,在四檔 captureMode 下工作:off、conservative、balanced(默認)、aggressive。捕獲只針對真實用戶消息,跳過插件注入與子代理上下文;短於 8 字符的片段丟棄,API Key、JWT、私鑰、數據庫連接串等敏感模式在 NFKC 歸一化後匹配攔截。內容經 contentHash 等在去重窗口內冪等寫入 append-only JSONL。

啓動時還可選配置 importSources,批量導入 Markdown(如 AGENTS.md、MEMORY.md)與會話 JSONL 日誌,重複導入按內容合併。

四套 Agent 工具

模型可直接調用:

工具 用途概要
memory_store 持久化決策、事實、偏好、指令,自動標籤與冪等 id
memory_recall BM25 爲主的多線召回(容錯、語義兜底、可選圖譜/推理/向量等高級開關見 README 配置表)
memory_forget 按 id 刪除記憶
memory_status 規模、分佈、運行指標與存儲診斷

輸出爲結構化 JSON 加可讀文本,召回默認受 token 預算(如 defaultRecallTokens 800)與條數上限約束。

本地存儲與治理

默認目錄爲 ~/.dsh/memory-hub(配置項 storageDir)。寫入遵循「先落盤後入內存」;邏輯刪除用 tombstone,可 compact 重建。支持 TTL 批量過期、memory_forget 與價值感知淘汰(需開啓 maxEntries 與 autoEvict)。1.4.0 起可選 passphrase 或環境變量 DSH_MEMORY_PASSPHRASE 做逐行 AES-256-GCM 加密落盤。

安裝與啓用

官方 README 的安裝方式是基於已打包的 .tgz 插件包,而不是在文中給出 github:owner/repo 一類命令。先將打包文件(文檔示例文件名爲 dsh-memory-hub-1.1.0.tgz)放到可從插件頁選擇的位置,再任選其一:

# 方式一:CLI(profile 替換爲你自己的 profile 名,如 web)
dsh plugin --profile web add ./dsh-memory-hub-1.1.0.tgz

方式二:在 dsh 桌面端「設置 → 插件」點擊「安裝插件包」,選擇同一 tgz 文件。

安裝後插件 id 爲 memory-hub,重載 profile 即生效;卸載會恢復 patch 前的配置,磁盤上的記憶文件仍保留。

配置要點

在 profile 的 memory-hub 節點下可改行爲。常用項如下(完整表見 GitHub README):

配置項 默認值 說明
storageDir ~/.dsh/memory-hub 記憶庫目錄
captureMode balanced 自動捕獲力度
defaultRecallTokens 800 召回 token 預算
defaultRecallLimit 8 召回條數上限
ttlDays 0 0 表示不過期
importSources 空 啓動導入 Markdown / 會話 JSONL

若希望「開箱即有記憶」,可按 README 在 patch 中聲明導入源,例如:

memory-hub:
  importSources:
    documents:
      - ~/workspace/AGENTS.md
      - ~/workspace/.agents/notes/MEMORY.md
    sessionLogs:
      - ~/.dsh/sessions/archive/2026-09.jsonl

路徑不存在時僅告警,不阻斷插件啓動。

典型用法

自動捕獲在 captureMode 非 off 且會話正常產生用戶消息與工具結果時持續運行,無需額外命令。

Agent 側的典型觸發場景(摘自工具使用指南):

  1. 用戶說「記住……」「以後都……」→ 應調用 memory_store。
  2. 新會話開場或用戶提起舊話題 → 用任務關鍵詞調用 memory_recall(可對 kind 過濾類型)。
  3. 用戶要求刪除某條記憶 → 用 memory_forget,id 來自 recall 或 status 輸出。
  4. 排查捕獲/召回是否正常 → 調用 memory_status 查看 metrics 與 diagnostics。

高級參數(如 expand、asOf、explain、vector 等)與版本對應關係以 README「工具使用指南」爲準;默認關閉的開關(如 semanticBoost、graphEnabled)不改變行爲,按需再在 profile 中打開。

適用場景與注意

適合希望在單機上長期積累 Harness 偏好與項目事實、且不願把記憶送到第三方服務的開發者。也適合已有 AGENTS.md、歸檔會話 JSONL,希望一次性導入再增量捕獲的場景。

使用前請注意:插件與 dsh 進程同權限運行,能讀寫你配置的 storageDir 與 importSources 路徑;安裝 tgz 前應自行查看 GitHub 倉庫 源碼與 MIT 許可證。敏感內容雖有多層過濾,仍不應把密鑰類信息故意寫入會被捕獲或導入的文本。社區目錄 SkillHub 插件頁 與 GitHub 無 DeepSeek / 幻方官方從屬關係,僅爲社區收錄入口。

結尾

dsh-memory-hub 把跨會話記憶落在本地 JSONL 與可選加密層上,用事件驅動自動捕獲加四套顯式工具,補上了 dsh 長期記憶方向上的可落地實現之一。若要安裝說明、配置全集與架構細節,請以倉庫 README 與 docs/ 爲準。

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

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

小夜