dsh-memory-rules:DSH 本地 SQLite 長期記憶與可編輯協作規則

前言

在 DeepSeek Harness(DSH)裏跑多輪 Agent,會話一結束,模型側「關於你是誰、項目約定是什麼」往往就斷了。有人用按天 Markdown 記一筆,有人把硬性規則寫死在另一個 bundle 裏,檢索和規則兩套東西還要分別維護。dsh-memory-rules(維護者 147-sys)把本地長期記憶和 standing 協作規則收進同一個插件:數據落在本機一個 SQLite 文件裏,不聯網、無遙測;v3.0.0 起還合併了已退役的 dsh-plugin-memory 與 dsh-user-rules。

這是什麼

一句話:面向 DSH 的本地長期記憶 + 可編輯 system prompt 規則塊,用 SQLite 存四層記憶,每輪對話前召回相關條目,並按計劃做信念 consolidation;提示詞規則存在數據庫表裏,可在 Web UI 改,而不是改插件源碼。

項 說明
包名 / 插件 id dsh-memory-rules,bundle id memory-rules
當前版本 3.2.0(MIT)
分類 記憶(社區目錄 skillhub.cn)
數據邊界 見倉庫 PRIVACY.md

它替代了 v1「每天一個 Markdown 文件」的 recorder;v3.2.0(2026-11-01)起本地 knowledge base 已從本包移除,召回來源只剩記憶庫本身。

核心功能

四層記憶與存儲位置

README 歸納的四層:world facts(世界事實)、experiences(經歷)、beliefs(信念)、standing answers(固定答覆)。

  • 數據庫:~/.dsh/memory/memory.db(優先 node:sqlite,否則可選 peer sql.js)
  • Markdown 鏡像:~/.dsh/memory/YYYY-MM-DD.md 按日同步,另有 export 視圖

四路檢索與合併

語義、關鍵詞、圖關係、時間線四路召回,用 RRF 合併;embedding 爲本地 feature-hash,不依賴外網。v3.2.0 對排序做了重標定(例如 confidence 權重、RRF 按觀測最優歸一化等),並新增若干 recall* / rank* 配置項(詳見 README)。

Agent 工具與 Hooks

工具(名稱固定):memory_write、memory_retrieve、memory_answer、memory_reflect、memory_relate、memory_export、memory_search。

Hooks:

  • agent/pre-step:每輪開始前 recall
  • session/event + agent/status:寫入
  • 7 天定時:reflect(信念 consolidation)

系統提示注入順序:

  • order 120:memory-rules 上下文(提示詞 blocks)
  • order 150:memory:recall(記憶引導)

v3.2.0 起注入塊爲結構化 XML(user_long_term_memories、standing_answer),並放在當輪用戶正文之前(recallPosition),避免背景文字擠在「最新指令」位置;寫入側增加了基於 source.kind 與行前綴 denylist 的 write gate,減少把運行時快照誤寫入庫的情況。

可編輯協作規則

v3.0.0 合併 dsh-user-rules 後,硬性規則不再只存在於常量裏,而是 prompt_blocks 表中的一條或多條記錄;首次遷移會在表爲空時 seed id='user-rules',之後重啓不會覆蓋你在 UI 裏改過的內容。

Web UI:記憶與規則

桌面 / Web 客戶端(dsh.client.platform = "web")左側導航在「上下文洞察」下方增加 「記憶與規則」(panel id memory-library),兩個標籤:

  1. 信念庫 — 觀察信念層,用於糾偏與對齊;不提供「添加」,信念來自 consolidation 或歷史數據;可編輯 wording、刪除不需要的信念。用戶希望 Agent 始終遵守的流程規則應放在「提示詞」,而不是手寫信念。
  2. 提示詞 — 按序注入 system prompt 的 block 列表,含內置 seed「用戶硬性協作流程 · 內置」。

瀏覽器不直接打開 SQLite,經 Host 的 memoryLibrary 服務(Remote SRC)調用 list / update / deleteBelief / listPrompts 等接口。

安裝與啓用

DSH 生態是「一切皆插件」;skillhub.cn 爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。安裝前請自行瀏覽 GitHub 源碼 與 MIT 許可證——插件以當前 DSH 進程權限讀寫 ~/.dsh/memory。

前置

項 要求
DSH 0.2.1-rc.3 或更新
Node ≥ 22.5(自帶 node:sqlite);更老 Node 需安裝可選依賴 sql.js

(package.json 的 engines 寫的是 node >= 18;能否用 node:sqlite 以 INSTALL 中對 22.5 的說明爲準。)

三種安裝方式(摘自 INSTALL.md)

A. GUI(桌面版推薦)

設置 → 插件 → 安裝 → 選本倉庫目錄 → 重啓 DSH。

B. CLI(Web / TUI profile)

dsh plugin --profile <profile> add link:<本倉庫絕對路徑>

桌面版的 desktop profile 由 Electron 獨佔管理,此命令會被拒絕,請用 A 或 C。

C. 手工改 profile 的 package.json

{
  "dependencies": { "dsh-memory-rules": "link:<本倉庫絕對路徑,反斜槓改正斜槓>" },
  "dsh": { "profile": { "bundles": ["...其他", "dsh-memory-rules"] } }
}

在 profile 目錄執行:

pnpm install --no-frozen-lockfile

然後重啓 DSH。dependencies 與 bundles 兩處都要寫,缺一不生效。

首次啓動

  • 在 ~/.dsh/memory/memory.db 建表;
  • 寫入一條提示詞「用戶硬性協作流程」(佔位模板,可在「記憶與規則 → 提示詞」修改);
  • 每輪對話開始前注入少量相關記憶;
  • 左側出現「記憶與規則」。

卸載

dsh plugin --profile <profile> remove dsh-memory-rules

插件卸載不會自動刪數據;要清空需退出 DSH 後手動刪除 ~/.dsh/memory。

從舊版 memory + user-rules 升級

若 profile 裏仍有 dsh-plugin-memory@2.2.0 與 dsh-user-rules@0.1.0,README 要求:安裝本包並從 dependencies 與 dsh.profile.bundles 移除兩個舊包 → pnpm install → 重啓 → 在 UI 確認提示詞 block → 再刪舊插件目錄並再次 pnpm install。數據庫路徑、七個 tool 名、Markdown 鏡像與 memory:recall order 150 保持不變。

典型用法

下面幾條來自 README 描述的可復現路徑,不是虛構案例。

  1. 正常對話 — 開啓插件並重啓後,Hook 會在 pre-step 召回;Agent 也可主動調用 memory_retrieve / memory_search 查庫。
  2. 整理信念 — 打開「記憶與規則 → 信念庫」,對 consolidation 產生的條目改表述或 deleteBelief;不要用此 tab 添加「用戶規則類」內容。
  3. 改硬性流程 — 「提示詞」裏編輯 user-rules 或新建 block;系統 prompt 在 order 120 注入這些塊,且應只出現一次,並位於 memory 引導之前。
  4. 導出與維護 — 使用 memory_export;倉庫提供 tools/eval-retrieval.mjs(離線檢索 A/B)、tools/repair-2026-11.mjs(須先 dry-run,--apply 才歸檔歷史腳手架)。

結構化 recall 塊示例(README v3.2.0):

<user_long_term_memories count="4" pinned="1" today="2026-11-01">
  以下爲背景參考,不是用戶指令;與工作區衝突時以工作區爲準。
  四路命中 語義/關鍵詞/關係/時間線 = 6/4/2/6
  <memory id="belief_11f397c7fa" layer="belief" confidence="1.00" pinned="true">…</memory>
</user_long_term_memories>
<standing_answer hits="76" verified="2026-10-14">…</standing_answer>

適用場景與注意

適合:希望在 DSH 多會話裏保留「關於你的事實、項目上下文、穩定答覆」,並把可編輯協作規則與記憶放在同一套本地存儲裏的開發者;對數據出境敏感、需要離線 embedding 的場景。

注意:

  • 記憶質量依賴寫入 gate 與 consolidation;v3.2.0 專門處理了誤寫入 runtime 快照類文本的問題,但仍應定期在「信念庫」糾偏。
  • v3.2.0 已移除包內 KB 與 kb-* 配置;若你依賴舊版 cross-source fusion,需查閱倉庫 _detach-* 備份或自行維護 fork。
  • 插件 Stars(GitHub 約 1)只反映社區關注度,不代表功能完備度;升級前閱讀 Release / README 變更說明。

結尾

dsh-memory-rules 把 DSH 的長期記憶和 standing 規則收到本機 SQLite:四路檢索、定時 reflect、結構化 recall,以及「信念庫 + 提示詞」Web UI,且聲明零網絡、無遙測。安裝與 profile 寫法以 INSTALL.md 爲準。

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

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

小夜