为会话提供 SQLite 长期记忆与分层压缩归档
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/4 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add xs1023/dsh-memory-vault该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 31 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 1 处,展示前 1 条)
- 写入本地文件src/db.js:25
mkdirSync(memoryDir, { recursive: true });
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- SQLite长期记忆
- 分层压缩
- 搜索与归档
DSH 外置记忆库插件(修复分支)— SQLite 长期记忆、分层压缩、搜索与归档
README
由 DeepSeek 最新模型翻译生成dsh-memory-vault(外置记忆库插件 · 修复分支)
一个为 DeepSeek Harness(DSH)提供长期记忆能力的插件。
关于本仓库本仓库是 hjj588/dsh-memory-vault 的修复分支,由 @xs1023 维护,遵循原项目的 MIT 许可。
原始功能与数据格式完全兼容——已有的记忆数据无需迁移,直接替换即可。
原版发布在 npm 上的同名包由另一位维护者维护,与本仓库是两个独立实现。
本分支修了什么
原版存在四个缺陷:前两个会实际损坏记忆数据,后两个让长期记忆层形同虚设、或让同一份内容反复堆进会话。本分支已全部修复并补齐回归测试:
| # | 缺陷 | 实际症状 | 修复方式 |
| A | 对话记录的 upsert 未按分类隔离 | 同一会话的对话记录反复堆积(真实库中单会话最多 7 条重复行);分层压缩写下的中期/长期行被 upsert 改写成「对话记录」,旧行永久残留 | src/db.js 的 findEntryBySessionId 补上 AND category = ?
展开完整文档(README 剩余 1 节)
dsh-memory-vault(外置记忆库插件 · 修复分支)
一个为 DeepSeek Harness(DSH)提供长期记忆能力的插件。
关于本仓库本仓库是 hjj588/dsh-memory-vault 的修复分支,由 @xs1023 维护,遵循原项目的 MIT 许可。
原始功能与数据格式完全兼容——已有的记忆数据无需迁移,直接替换即可。
原版发布在 npm 上的同名包由另一位维护者维护,与本仓库是两个独立实现。
本分支修了什么
原版存在四个缺陷:前两个会实际损坏记忆数据,后两个让长期记忆层形同虚设、或让同一份内容反复堆进会话。本分支已全部修复并补齐回归测试:
| # | 缺陷 | 实际症状 | 修复方式 |
| A | 对话记录的 upsert 未按分类隔离 | 同一会话的对话记录反复堆积(真实库中单会话最多 7 条重复行);分层压缩写下的中期/长期行被 upsert 改写成「对话记录」,旧行永久残留 | src/db.js 的 findEntryBySessionId 补上 AND category = ?,默认只认「对话记录」;确实需要跨分类查找时显式传 null |
| B | 标题取自未过滤的消息流 | 标题被宿主注入的消息夺走——运行时上下文、预设记忆、折叠摘要都可能变成标题(真实案例:标题成了 Current runtime context. This snapshot s…) | index.js 的 isRawChatMessage 在 user 一侧由黑名单改为真人来源白名单(user / user-question-reply),宿主注入消息一律不进正文与标题 |
| C | 分层压缩的后两级是死代码 | mediumTermLimit 与 shortTermLimit 同为 20,按产出速率需约 210 条原始消息才可能触发「中期 → 长期」,真实会话永远到不了,长期记忆层形同虚设 | 按产出速率调小后两级:mediumTermLimit=4、mediumTermCompressCount=3、longTermLimit=4,约 50 条原始消息即可触发 |
| D | 预设记忆注入没有幂等判定 | 宿主在会话重新种子化时(重启 dsh、恢复旧会话)会再次触发注入,同一会话历史里堆积多份完全相同的预设记忆(真实会话中单会话累积 3 份) | index.js 新增双闸门:进程内 presetInjectedSessions 标记 + sessionHasPresetInjection 历史探测。同一会话已注入过就不再追加,重启恢复旧会话也不补注入,跨会话互不影响 |
回归测试
npm test
共 15 个用例,覆盖四个缺陷的正向场景与边界场景(含「宿主注入消息不得误杀真人输入」「跨会话去重不得误伤」两个反向用例):
✔ A1–A4 upsert 分类隔离、多轮折叠后仍单行、默认查询语义 ✔ B1–B5 标题防注入(预设记忆 / 中期记忆 / runtime-context / 各类宿主注入 / 反向不误杀真人输入) ✔ C1–C2 阈值可达性、真实产出长期记忆并清理被折叠的中期行 ✔ D1–D4 预设注入幂等(重复触发只注入一次 / 重启恢复旧会话不补注入 / 跨会话互不误伤 / 无预设不注入) ℹ tests 15 ℹ pass 15 ℹ fail 0
安装
从 GitHub 安装(推荐)
dsh plugin --profile web add github:xs1023/dsh-memory-vault
把 web 换成你实际使用的 profile(例如 web-desktop)。装完重启 dsh 生效。
从本地源码安装
dsh plugin --profile web add /本仓库的绝对路径/dsh-memory-vault
重启后可以在「设置 → 插件 → 管理」里看到 dsh-memory-vault。
功能
- 新增、查看、修改、删除、搜索记忆
- 归档 / 恢复记忆
- 分类管理、标签管理、统计信息
- 自动把每次完整对话保存成一条「对话记录」(只存用户和助手的文本,不存工具细节)
- 专门搜索历史对话
- 分层记忆:短期(最近对话)→ 中期(压缩摘要)→ 长期(再压缩摘要)→ 永久(当前会话重要内容)
- 全局「预设 / 用户记忆」单独保存,每个对话开始时自动带上(同一会话只注入一次,重启或恢复旧会话不会重复注入)
- 永久记忆绑定当前会话,不会被自动丢弃;长期层满后先吸收重要内容再丢弃最旧一条
- 各层上限与压缩条数可通过插件配置调整
- 数据保存在 ~/.dsh/memory/memory.db,与当前工作区无关
使用
插件向 dsh 注入以下工具,AI 在对话中会自动调用:
memory_add、memory_list、memory_search、memory_show、memory_update、memory_archive、memory_restore、memory_delete、memory_categories、memory_stats、memory_rename_category、memory_search_history、memory_list_conversations、memory_list_permanent、memory_promote_permanent、memory_add_preset、memory_list_preset、memory_promote_preset
你只需要对 AI 说「记住……」「查一下记忆……」「之前说过什么……」即可。
调整分层数字
各层默认值:
- 短期:保留最近 20 条原始消息,每次折叠最早的 10 条
- 中期:最多 4 条摘要,每次折叠 3 条
- 长期:最多 4 条摘要
这些数字彼此关联,不能随便调:一次短期折叠消耗 10 条原始消息才产出 1 条中期消息,所以中期限额必须远小于短期限额,否则「中期 → 长期」永远触发不了——这正是原版缺陷 C 的成因。
想修改时,在 profile 的 cordis.patch.yml 里给 memory-vault 行加 config:
- insert:
- id: memory-vaultyaml
name: 'dsh-memory-vault'
config:
shortTermLimit: 20
shortTermCompressCount: 10
mediumTermLimit: 4
mediumTermCompressCount: 3
longTermLimit: 4
想更保守(少压缩、多保留原文)可以只覆盖中期限额,例如 { mediumTermLimit: 8 },无需改代码。
数据与备份
- 记忆库位置:~/.dsh/memory/memory.db(SQLite)
- 本插件不做自动备份;升级或手工清理前建议先复制一份该文件
- 删除条目依赖 PRAGMA foreign_keys = ON 级联清理标签关联,请勿用外部工具绕过插件直接改库,否则会留下孤儿关联行
许可
MIT License。原始版权归 hjj588 所有,本分支的修改部分版权归 xs1023,完整条款见 LICENSE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
xs1023/dsh-memory-vault
为会话提供 SQLite 长期记忆与分层压缩归档
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目