
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
dsh-memory-gate
Advanced tools
Retrieved ≠ injected: CBDC-gated memory for DeepSeek Harness — decides how memory is USED (use/verify/ignore decisions, feedback learning, full audit); local SQLite + FTS5, bounded, no extra model call
核心立场:检索到 ≠ 注入。前身是
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.14.0。兼容 Harness:0.1.0-rc.6 – 0.2.1-alpha.2(0.2.0-rc.1、0.2.0-rc.2、0.2.1-alpha.1、0.2.1-alpha.2 已通过完整 verify;运行时验证基线为 0.1.5-rc.1),Node.js >=22.5。
use / verify / ignore 决策。/memory ok(或 feedback <#n> helped)把当次查询的
区分性词项学进触发词(只存词项、不存查询原文),harmful/stale 降低
置信度并触发隔离——越用越准,/memory explain 全程可审计。superseded、新记忆记录取代关系。适用条件不同(如
BEGIN IMMEDIATE vs UPDATE)则两条并存;自动挖掘的 heuristic 记忆
不能顶掉显式记忆。/memory consolidate 使用同一判据。shadow(只审计零注入)、assist(默认,注入 use +
标出 verify)、enforce(只注入高置信)——按场景切换"怎么用"。/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.14.0
卸载:
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
模式启动。databasePath 现在是可选配置:Bundle Patch 里不再使用
!!js dshHomePath(...) 这类求值表达式(商店的 Patch 契约只接受字面量),
省略时由插件在运行时解析为 <DSH_HOME 或 ~/.dsh>/memory/cbdc.sqlite,
与旧默认路径完全一致,存量数据不迁移。每次模型调用仍只有原来的一次;插件
只在本地检索,并把最多 3 条相关记忆放入该次调用的上下文。
在 $DSH_HOME/profiles/web/cordis.patch.yml 中持久调整模式时,后置覆盖
必须重述该插件拥有的完整配置:
- id: memory-gate
config:
# 可选:省略时运行时解析为 <DSH home>/memory/cbdc.sqlite
# databasePath: /absolute/path/to/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
verifyMaxChars: 160
sessionBudgetChars: 20000
budgetWindowTurns: 20
healthNegativeRateThreshold: 0.4
healthMinSamples: 5
autoMineWorkspace: true
mineMaxSessions: 20
会话回挖(方案 B):会话首轮自动扫描同一工作区的历史 session 日志,补提取
其中声明过的记忆 cue,挖进 workspace 作用域——不串到别的项目。每会话只跑一次,
autoMineWorkspace: false 可关,mineMaxSessions 限制扫描文件数。日志按
session 格式的分代命名读取:v0 是 session.jsonl[.zstd],v3 起是
session.vN.jsonl[.zstd];每个会话只读版本最高的 generation(与持久化后端
一致),迁移前的旧副本不会被重复回挖。
成本分级:use(放心用)拿全宽,verify(待核验)单条最多 verifyMaxChars
字符——敢用才配多花。滚动窗口(budgetWindowTurns 回合)内注入超
sessionBudgetChars 即自动收紧(跳过 verify),成本可控、可审计。
自我诊断:最近反馈里负反馈(harmful/stale/conflict)占比达到
healthNegativeRateThreshold(且样本 ≥ healthMinSamples)时,自动降级为
shadow(零注入)并在 /memory status 里红标警示;/memory mode assist
可手动恢复。
/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 mine 50 # 从历史 session 日志回挖漏掉的「记住…」
/memory consolidate # 合并近重复记忆(旧 → superseded)
/memory forget mem_<uuid>
/memory mode assist
/memory list 显示当前 session/workspace/global 作用域内最近的活跃记忆。
/memory mode 只修改当前进程;重启后回到 Profile 配置。forget 是可审计
的 tombstone,不会物理删除历史记录。
日志回挖(/memory mine):扫描历史 session 日志(含 v3 的
session.vN.jsonl[.zstd] 与明文编码),补提取实时提取器漏掉的
记忆 cue(如句中的「记住…」),以 heuristic 低置信 + mined 标签存入全局
作用域——宁缺毋滥,挖出来的也要过 CBDC 裁决、可由你反馈校准。
相似去重(supersede):写入时与同作用域已有记忆词项重叠 ≥ 60% 只作为
候选;是否真的取代由两个信号决定——新记忆显式表达替换意图(「不再 /
改为 / 取代 / instead of / no longer」),或两条记忆没有任何各自独有的
判别词(标识符、路径、数字、引号字面量)。两侧各带自己的判别词时,
说明适用条件不同(例如 BEGIN IMMEDIATE/busy_timeout 与
UPDATE/SQLITE_BUSY_SNAPSHOT),两条都保持 active,交给检索和
use/verify/ignore 按语境处理;新记忆漏掉旧记忆独有的判别词(信息损失)
或来源是 heuristic 时,也不会自动取代。/memory consolidate 使用同一判据。
反馈(feedback / ok)是记忆学习的入口:helped 会把当次查询的区分性
词项学进该条记忆的触发词,让以后的换说法也能命中;harmful/stale 会
降低置信度并触发隔离。注入文本里每条记忆带 #n 编号,直接对应
/memory feedback <#n> ... 的编号。
模式语义:
shadow:计算并审计,零模型可见注入。assist:注入 use,并把 verify 明确标为待核验线索;默认模式。enforce:只注入 use,省略 verify 和 ignore。npm install
npm run check # 类型检查 + 构建
npm test # 61 个单元/集成测试
npm run backtest # 决策层回测:33 场景四腿对照(gate/top-3/random/shadow)
npm run result # 结果层:注入采纳度 / 成本 / 效果分
npm run observe <log> # 轨迹观测:对真实 session 日志量采纳度
npm pack --dry-run
发布门:prepublishOnly 会在任何 npm publish 前自动跑 check + test + backtest,回测清晰场景不过关即中止发布。
发布前的三轮基准中位数(Node.js 22.22.1,1001 条合成记忆,每轮 300
次查询):WSL 磁盘上的触发检索 p95 5.343ms,包含 CBDC 决策和 SQLite
审计的完整召回 p95 11.151ms,三轮最大观测 p95 11.663ms。基准不会
访问真实记忆数据库,也不会调用模型,详见
性能基准。
召回和安全边界见 架构说明。
node:sqlite 打印 experimental warning,不影响运行。FAQs
Retrieved ≠ injected: CBDC-gated memory for DeepSeek Harness — decides how memory is USED (use/verify/ignore decisions, feedback learning, full audit); local SQLite + FTS5, bounded, no extra model call
We found that dsh-memory-gate demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.