dsh-memory-rules: DSH Local SQLite Long-Term Memory and Editable Collaboration Rules

前言

在 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 为准。

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

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

Xiaoye