前言¶
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 側的典型觸發場景(摘自工具使用指南):
- 用戶說「記住……」「以後都……」→ 應調用
memory_store。 - 新會話開場或用戶提起舊話題 → 用任務關鍵詞調用
memory_recall(可對kind過濾類型)。 - 用戶要求刪除某條記憶 → 用
memory_forget,id 來自 recall 或 status 輸出。 - 排查捕獲/召回是否正常 → 調用
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/ 爲準。