🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

记忆闸门 GIT121995/dsh-memory-gate

DeepSeek Harnessv0.13.1
GIT12199516 天前有提交已提供中文文档扫描:含敏感能力

检索 ≠ 注入:面向 DeepSeek Harness 的 CBDC 门控记忆——决定记忆怎么用(使用/验证/忽略 + 反馈学习 + 审计),而不只是存起来

31.5/100
综合分
2
GitHub 星标
579
npm 周下载
—/5
用户评分

数据截至 2026/10/20 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-memory-gate
npm 源 · dsh-memory-gate 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · market
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 16 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-memory-gate @ 0.13.1
✓Node 引擎要求 >=22.5 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 06:02:59

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 6 处,展示前 6 条)
  • 写入本地文件
    lib/repository.js:25
    mkdirSync(dirname(this.databasePath), { recursive: true, mode: 0o700 });
  • 读取本地文件
    lib/mine.js:117
    const info = statSync(file);
  • 读取本地文件
    lib/mine.js:122
    const raw = readFileSync(file);
  • 读取本地文件
    lib/mine.js:143
    sessionDirs = readdirSync(workspacePath);
  • 读取本地文件
    lib/mine.js:153
    entries = readdirSync(dir);
  • 读取本地文件
    lib/mine.js:177
    for (const workspaceDir of readdirSync(sessionsRoot)) {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-commands@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 门控记忆使用决策
  • 验证与忽略记忆
  • 反馈学习与审计
v0.15.02026-10-19
· 0.15.0 — 会话日志挖掘加上读取边界 本次发布处理 DSH STORE #636 关于会话日志读取边界的后续问题。 · 解码前先做有界读取:候选日志先用 statSync 检查再交给 readFileSync(≤ 8 MiB),实际读到的字节长度再查一次,zstdDecompressSync 用 maxOutputLength 限制在 16 MiB。 · 失败放行计数:超限的明文日志和 zstd 膨胀炸弹直接跳过,不中断挖掘,并计入新增的 MineScanResult.skippedFiles;/memory mine 在计数非零时显示该数值。 · 准确披露:README、架构说明和源码注释现在写明,工作区挖掘必须打开并读取 sessions 根目录下的候选日志,才能发现会话头里的 cwd。只提取头部与当前工作区匹配的内容;autoMineWorkspace: false 关闭自动路径。此前文档暗示只读取当前工作区的日志。 · 回归覆盖:超大明文、zstd 膨胀炸弹、正常的限额内日志。 验证:npm run verify — 64 项测试,clear 回测场景 33/33,clear F1 = 1.000。已发布到 npm,包名 dsh-memory-gate@0.15.0。
v0.14.02026-10-16
商店上架整改。检索与取代行为不变,配置约定和包对外内容有改动。 · 无求值 Bundle Patch:cordis.patch.yml 不再包含 !!js dshHomePath(...)。databasePath 改为可选,省略时插件在运行时解析 /memory/cbdc.sqlite,路径与之前一致,现有数据库原地保留,不跑迁移。 · 无运行时依赖:@deepseek-ai/schemastery 从 dependencies 移到 peerDependencies(devDependencies 里保留,供本地构建和测试),符合 DSH 插件由宿主提供该依赖的惯例。 · 精简包对外内容:npm 现在只发布运行时产物(lib、Bundle Patch、README/CHANGELOG/LICENSE、docs)。backtest/ 和 fixtures/synthetic/ 留在仓库里供开发用,不再发布,商店固定源审查里的 child_process 命令信号和 JSONL 清单扫描随之消失。删掉了没人引用的 fixtures/synthetic/session-sample.jsonl。 证据:npm run verify 跑了 61 个测试,backtest 场景全部通过 33/33,F1 = 1.000;npm pack 含 71 个文件,没有 backtest/ 或 fixtures/ 条目;一个临时 pnpm 项目确认 @deepseek-ai/schemastery peer 能正常解析,默认数据库路径未变。
v0.13.22026-10-12
兼容性记录更新,行为不变。 · 新增 0.2.1-alpha.2 的 dsh.compatibility.dshReleases 精确记录(兼容),这是最新的 DSH 官方版本(npm alpha,标签 dsh-v0.2.1-alpha.2)。现有 ^0.2.1-alpha.1 范围已接受它(同属 0.2.1 预发布元组),因此无需改范围。 · 证据:临时检出 cordis 4.0.5-alpha.1 加 @deepseek-ai/dsh-agent、dsh-commands、dsh-llm、dsh-session 均为 0.2.1-alpha.2,完整 npm run verify 通过(61 项测试,clear 场景 33/33,F1 = 1.000)。发布门禁仍在锁定的 0.1.0-rc.6 表面上运行,结果相同。 · 行为不变:取代策略、检索、阈值和回测场景与 0.13.1 一致。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-memory-gate(记忆闸门) 核心立场:检索到 ≠ 注入。前身是 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。
展开完整文档(README 剩余 1 节)
dsh-memory-gate(记忆闸门)

核心立场:检索到 ≠ 注入。前身是 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.15.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。

v1 能力

- 使用前裁决:每条记忆注入前过 CBDC(Claim → Belief → Decision → Consumption)权威门控,输出可解释的 use / verify / ignore 决策。
- 使用中克制:默认最多注入 3 条、1200 字符;全局偏好走 capsule 通道特权注入;不增加第二次模型调用。
- 使用后学习:/memory ok(或 feedback <#n> helped)把当次查询的区分性词项学进触发词(只存词项、不存查询原文),harmful/stale 降低置信度并触发隔离——越用越准,/memory explain 全程可审计。
- 近重复合并(有条件的取代):写入时同作用域词项重叠 ≥ 60% 只算候选;只有命题同一(无各自独有的判别词差异)或显式表达替换意图(「不再 / 改为 / 取代 / instead of / no longer」)时,旧条目才标 superseded、新记忆记录取代关系。适用条件不同(如 BEGIN IMMEDIATE vs UPDATE)则两条并存;自动挖掘的 heuristic 记忆不能顶掉显式记忆。/memory consolidate 使用同一判据。
- 三种运行模式: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.15.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):会话首轮会打开并读取 sessions 根下的候选历史日志来判定 workspace(有界读取:mineMaxSessions 限制文件数,单文件 ≤ 8 MiB,zstd 解压后 ≤ 16 MiB;超限 fail-open 跳过并计数),只对首个 session 事件 cwd 匹配当前 workspace 的内容做记忆提取,挖出的记忆进 workspace 作用域——不串到别的项目。
每会话只跑一次,autoMineWorkspace: false 可完全关闭自动回挖。日志按 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 # 64 个单元/集成测试
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。基准不会访问真实记忆数据库,也不会调用模型,详见性能基准。

召回和安全边界见 架构说明。

v1 限制

- 同义/触发词召回仍是词法级:只覆盖常见表达,不等价于通用语义检索;繁→简映射覆盖常见繁体字。
- 自动提取只识别明显的“记住、以后、I prefer、always”等表达,宁缺毋滥。
- 历史回填只扫描 sessions 根下受限数量的候选日志(单文件/解压均设上限),不复制完整 Harness transcript。
- Node.js 22 会为内置 node:sqlite 打印 experimental warning,不影响运行。
预览分享卡片长什么样 ↓GIT121995/dsh-memory-gate
分享 · DeepSeek Harness Hub
GIT121995/dsh-memory-gate

检索 ≠ 注入:面向 DeepSeek Harness 的 CBDC 门控记忆——决定记忆怎么用(使用/验证/忽略 + 反馈学习 + 审计),而不只是存起来

这是你的仓库?认领条目

回到顶部