有界本地记忆 + CBDC 权威门控:SQLite + FTS5 claims,作用域召回并给出可解释的采用/核验/忽略决策与完整审计轨迹,/memory 命令,每次注入 ≤3 条/1200 字符,不增加额外模型调用。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-memory-gate
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:GIT121995/dsh-memory-gate
GitHub 来源的插件在安装时会在你的机器上执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
核心立场:检索到 ≠ 注入。前身是
dsh-memory-cbdc(v0.1.x); v0.2.0 起更名为 dsh-memory-gate,CBDC 保留为机制名(见下)。 旧仓库地址仍会重定向到本仓库。
DeepSeek Harness 的长期记忆插件,只回答一个问题:记忆记住了,然后呢?
它把稳定信息保存为可撤销的 Claim,并在每次模型调用前执行 CBDC
(Claim → Belief → Decision → Consumption)权威门控——每条记忆先经裁决
(use / verify / ignore),才决定能否进入上下文;使用后的反馈
(helped/harmful)反向更新置信度,越用越准,全程可审计。默认注入
≤3 条 / 1200 字符,不增加第二次模型调用。
(存储层:本地 SQLite + FTS5,无 embedding、无外部记忆 API。)
这是社区插件,不属于 DeepSeek 官方项目。许可证为 MIT。
Long-term memory for DeepSeek Harness that cares about how memory is
used, not just stored — retrieved ≠ injected: every recall passes
CBDC (Claim → Belief → Decision → Consumption) authority gating and lands
as an explainable use / verify / ignore decision before it can enter
context. Post-use feedback updates belief, so memory gets more accurate
over time — all auditable, bounded (≤3 claims / 1200 chars by default),
no extra model call. (Local SQLite + FTS5 storage; no embeddings, no
external memory API.)
当前版本:0.3.2。目标 Harness:0.1.0-rc.6,Node.js >=22.5。
v1 能力
- 使用前裁决:每条记忆注入前过 CBDC(Claim → Belief → Decision →
Consumption)权威门控,输出可解释的
use/verify/ignore决策。 - 使用中克制:默认最多注入 3 条、1200 字符;全局偏好走 capsule 通道特权注入;不增加第二次模型调用。
- 使用后学习:
/memory ok(或feedback <#n> helped)把当次查询的 区分性词项学进触发词(只存词项、不存查询原文),harmful/stale 降低 置信度并触发隔离——越用越准,/memory explain全程可审计。 - 三种运行模式:
shadow(只审计零注入)、assist(默认,注入 use + 标出 verify)、enforce(只注入高置信)——按场景切换"怎么用"。 - 双通道召回:少量可信全局偏好/约束组成记忆胶囊,其余记忆经词项触发。
- session、workspace、global 三种作用域;workspace 路径只保存哈希键。
- 显式
/memory管理命令和保守的中英文自动提取。
技术规格:本地 SQLite + FTS5 存储,不调用 embedding 或外部记忆 API; 写时触发词含繁→简、全角→半角归一与双语同义折叠;API Key、Token、密码 和私钥样式内容在落库前拒绝;数据库或策略异常时不阻断 Agent,只省略 本次记忆注入。
安装
Harness 的插件管理依赖 pnpm。
Linux / WSL:
npm install -g pnpm
dsh plugin --profile web add dsh-memory-gate
dsh web --dump-config | sed -n '/memory-gate/,+18p'
Windows PowerShell:
npm install -g pnpm
dsh plugin --profile web add dsh-memory-gate
dsh web
也可以用 Git 地址安装并锁定版本:
dsh plugin --profile web add git+https://github.com/GIT121995/dsh-memory-gate.git#v0.3.2
卸载:
dsh plugin --profile web remove dsh-memory-gate
卸载后重启 dsh web。记忆数据保留在 $DSH_HOME/memory/cbdc.sqlite,重装即可继续使用;如要彻底清除,删除该文件即可。
安装后重启正在运行的 dsh web。Bundle 默认写入
$DSH_HOME/memory/cbdc.sqlite(文件名沿用 CBDC 机制名),并以保守 assist
模式启动。每次模型调用仍只有原来的一次;插件只在本地检索,并把最多 3 条
相关记忆放入该次调用的上下文。
在 $DSH_HOME/profiles/web/cordis.patch.yml 中持久调整模式时,后置覆盖
必须重述该插件拥有的完整配置:
- id: memory-gate
config:
databasePath: !!js dshHomePath('memory/cbdc.sqlite')
mode: assist
automaticExtraction: true
candidateLimit: 16
capsuleLimit: 2
injectionLimit: 3
maxInjectionChars: 1200
auditRetentionRuns: 5000
minUseBelief: 0.7
maxUseRisk: 0.45
harmfulQuarantineThreshold: 2
freshnessHalfLifeDays: 180
使用
/memory status
/memory list 10
/memory remember --kind preference 我偏好简洁中文回答
/memory remember --global --kind constraint 不要在回复中暴露凭据
/memory search 简洁中文
/memory explain mem_<uuid>
/memory feedback # 列出最近注入的记忆(带 #n 编号)
/memory feedback 1 helped # 按编号反馈
/memory ok # 最近注入的记忆全部记为 helped(常用)
/memory ok 2 # 只反馈其中第 2 条
/memory forget mem_<uuid>
/memory mode assist
/memory list 显示当前 session/workspace/global 作用域内最近的活跃记忆。
/memory mode 只修改当前进程;重启后回到 Profile 配置。forget 是可审计
的 tombstone,不会物理删除历史记录。
反馈(feedback / ok)是记忆学习的入口:helped 会把当次查询的区分性
词项学进该条记忆的触发词,让以后的换说法也能命中;harmful/stale 会
降低置信度并触发隔离。注入文本里每条记忆带 #n 编号,直接对应
/memory feedback <#n> ... 的编号。
模式语义:
shadow:计算并审计,零模型可见注入。assist:注入use,并把verify明确标为待核验线索;默认模式。enforce:只注入use,省略verify和ignore。
开发与验证
npm install
npm run check
npm pack --dry-run
发布前的三轮基准中位数(Node.js 22.22.1,1001 条合成记忆,每轮 300
次查询):WSL 磁盘上的触发检索 p95 5.343ms,包含 CBDC 决策和 SQLite
审计的完整召回 p95 11.151ms,三轮最大观测 p95 11.663ms。基准不会
访问真实记忆数据库,也不会调用模型,详见
性能基准。
召回和安全边界见 架构说明。
v1 限制
- 同义/触发词召回仍是词法级:只覆盖常见表达,不等价于通用语义检索;繁→简映射覆盖常见繁体字。
- 自动提取只识别明显的“记住、以后、I prefer、always”等表达,宁缺毋滥。
- 不回填安装前的历史会话,也不重复保存完整 Harness transcript。
- Node.js 22 会为内置
node:sqlite打印 experimental warning,不影响运行。
链接
同类插件
LoserFox/distill★ 15
自动对话蒸馏:后台 subagent 反省 + 技能 create/update。
omdsh-dev/dsh-mnemon★ 11
Mnemon 深度集成:本地三层记忆(Runtime Memory、可检索 Documents、受监督 Memory Spaces)。
modusensus/dsh-mneme★ 8
跨会话记忆:SQLite + 可人工编辑的 Markdown 镜像,后台自动巩固(去重/合并/冲突裁决),提供 6 个记忆工具。
nowledge-co/nowledge-mem-deepseek-harness★ 5
给所有 AI 工具和 Agent 共用的一层记忆:注入 Context Bundle、提示时检索、MCP 工具与回合结束 DSH 线程捕获。
Jesse-njx/dsh-memory★ 2
基于 DSH 无损会话日志的引用式记忆:蒸馏出的事实带 `(sessionId, eventRange)` 引用,可随时展开回原始日志片段。
PerryLink/dsh-memento★ 1
有界、分层、带审批门、可审计的跨会话记忆:`ctx.memory` 服务 + 零依赖 SQLite 存储 + `memory` 工具与冻结快照注入;写入必过审批门,模型可见内容可自会话日志重建。