前言¶
在 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,否則可選 peersql.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:每輪開始前 recallsession/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),兩個標籤:
- 信念庫 — 觀察信念層,用於糾偏與對齊;不提供「添加」,信念來自 consolidation 或歷史數據;可編輯 wording、刪除不需要的信念。用戶希望 Agent 始終遵守的流程規則應放在「提示詞」,而不是手寫信念。
- 提示詞 — 按序注入 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 描述的可復現路徑,不是虛構案例。
- 正常對話 — 開啓插件並重啓後,Hook 會在 pre-step 召回;Agent 也可主動調用
memory_retrieve/memory_search查庫。 - 整理信念 — 打開「記憶與規則 → 信念庫」,對 consolidation 產生的條目改表述或
deleteBelief;不要用此 tab 添加「用戶規則類」內容。 - 改硬性流程 — 「提示詞」裏編輯
user-rules或新建 block;系統 prompt 在 order 120 注入這些塊,且應只出現一次,並位於 memory 引導之前。 - 導出與維護 — 使用
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 爲準。