dsh-memory-layer:給 DeepSeek Harness 的本地記憶層

前言

DeepSeek Harness (DSH) 採用插件化架構,旨在將核心能力開放給社區。在構建智能體工作流時,跨會話的記憶保留是剛需。傳統的方案通常依賴外置的向量數據庫或記憶服務,這會引入延遲,並帶來隱私風險。下面介紹 dsh-memory-layer,一個給 DSH 的「記憶層」插件,它通過本地單文件存儲和觸發式規則,解決了記憶的持久化與召回問題。

它是什麼

這是一個純本地的記憶插件,核心是一個單文件 SQLite 數據庫。它不做向量檢索、不做知識圖譜、不做雲端同步,也不做 Web UI。它的職責很單一:在 DSH 進程中維護一份本地記憶,並在特定信號觸發時,把該想起的記憶拿出來。

核心功能

插件採用四層結構設計,確保記憶的可靠性與可控性。

存儲層:本地 SQLite

數據存儲在本地文件系統中,路徑爲 .dsh/biomemory/biomemory.db(WAL 模式)。主要字段包括 realm(隔離維度,user 或 project)、mtype(類型,workflow/error/decision/fact)、trigger(觸發信號串)以及 text(正文)。所有刪除操作採用「墓碑」機制,僅修改狀態標記,不物理刪除數據。

召回層:觸發式驅動

插件不依賴模型進行自動回憶,而是根據當前會話的上下文進行確定性召回。觸發信號來自當前工作目錄和最近 12 次工具調用,形態爲可讀的字符串:
* file:<文件名>
* tool:<工具名>
* err:<錯誤代號>

命中後按優先級排序注入(workflow > error > decision > fact),每次注入有預算限制(最多 8 條、1200 字符)。

清理層:五條可解釋規則

通過 /memory compact 命令執行清理,每次淘汰都會寫入 compact.log:
1. 同鍵覆蓋:新記憶覆蓋舊記憶(舊條目標墓碑)。
2. Fact 過期:30 天無使用(≤1 次)→ 墓碑。
3. Workflow/Error/Decision 降權:90 天無使用 → 權重減半。
4. Error 與 Decision 永不自動刪除。
5. 每條淘汰記錄均包含時間、指紋、規則摘要。

適配層:工作流鏈

當同一個觸發串出現超過 3 次時,相關記憶會自動升級爲 workflow 類型,並按時間順序拼成一條鏈。例如記錄下「打開文件 -> 運行測試 -> 修改代碼」的順序。

安裝與啓用

安裝前請確保已安裝 Node.js >= 22.19.0。使用官方命令安裝:

# 將 --profile web 替換爲你實際的 profile 名
dsh plugin --profile web add github:KLRSL/dsh-memory-layer

安裝完成後,DeepSeek Harness 會自動熱掛載該插件。

典型用法

插件提供了 /memory 命令和 memory_recall 工具。

命令行交互

/memory list | query <詞> | add <內容> | edit <fp> <新內容> | remove <fp> | undo <fp>
/memory pin <fp> | unpin <fp> | entries [詞]
/memory compact [--dry-run] | dump

工具調用

在代碼或 Prompt 中調用 memory_recall 工具進行顯式召回。

寫入審批

對於重要的記憶(如用戶偏好、決定、糾正),插件支持 DSH 官方審批機制。審批服務不可用時,默認拒絕寫入(fail-closed,可通過配置放寬)。

適用場景與注意

該插件適合需要高隱私、低延遲、可解釋性記憶能力的開發者。它適合單機環境,不適合需要多機協作的場景。

需要注意:
1. 不做向量檢索:相同的輸入必須給出相同的觸發信號,檢索路徑是確定性的。
2. 不做自動反思:不依賴模型進行歸納,工作流鏈完全基於重複觸發記錄。
3. 零服務依賴:數據完全本地化,無網絡請求,無遙測數據。

短結尾

經過上面的步驟,你已經爲 DeepSeek Harness 掛載了一個純本地的記憶層。它不提供花哨的平臺功能,只提供可靠的存儲與觸發式召回。數據就在你自己的機器上,拷走文件即可遷移。更多細節請查看 GitHub 倉庫。

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

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

小夜