中文EN

@modusensus/dsh-mneme

memory已测通过npmMIT

会做梦的记忆 — DeepSeek Harness 跨会话记忆插件:跨会话记住你与项目,空闲时自动巩固记忆(autoDream),冲突记忆先冻结待你裁决,全程可回放审计。记忆落在本机:SQLite 存储配可人工编辑的 Markdown 镜像;附带四路召回(关键词、向量、BM25、实体图谱)与交互式记忆库面板,另有 10 个模型工具、MCP 服务端、外部 API 与 CLI。摘要与巩固走你已配置的宿主模型;把嵌入换成本地模型后,语义检索可完全离线运行。

下载量 / Downloads
10,549
依赖体积 / node_modules
18.25 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add @modusensus/dsh-mneme

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

<p align="center"><strong>中文 | <a href="docs/SEMANTIC.md">English(语义增强)</a></strong></p>

dsh-mneme

![npm version](https://www.npmjs.com/package/@modusensus/dsh-mneme)

![license](LICENSE)

![Awesome](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin)

![tests](https://github.com/slow-stack/mneme)

![CI](https://github.com/slow-stack/mneme/actions)

![node](https://nodejs.org)

![npm downloads](https://www.npmjs.com/package/@modusensus/dsh-mneme)

![coverage](https://codecov.io/gh/slow-stack/mneme)

给 DeepSeek Harness 的跨会话记忆插件:让 Agent 记住你、记住项目、自动整理记忆。Mneme(Μνήμη)——希腊记忆女神 Mnemosyne 之名,掌管记忆与梦境,正如 autoDream 在后台巩固记忆。

dsh-mneme 是一个 DeepSeek Harness (DSH) 插件,为 Agent 提供持久的跨会话记忆能力。它借鉴了 Claude 的 Dream 机制 与 cc-haha / Claude Code 的 autoDream 记忆巩固功能——不仅存储记忆,还会自动巩固(去重、合并、冲突裁决、摘要生成),让记忆库越用越精炼。完整溯源与致谢见文末「[🙏 致谢](#-致谢)」。

⏱️ 30 秒理解

一句话:给 Agent 装上跨会话记忆——记住你、记住项目,并在后台自动整理,越用越懂你;v0.8.0 起记忆可按 agent 与工作区隔离(scopeEnabled),多 Agent / 多项目互不串台;v0.9.0 起「这件事怎么跑」也能落进项目仓库(M.O.,actionPipelineEnabled,默认关)。

① 写入 · ② 存储 · ③ 进化

对话中模型主动记录(memory_save,可带敏感度与事件时间);会话结束自动提炼(autoSummarize) · SQLite 主库 + 人类可编辑 Markdown 镜像;实体 / 属性 / 时间轴三层结构化;记忆带 agent / workspace / 敏感度 / 发生时间标注 · 新会话自动注入相关记忆(按当前作用域加权,strictScope 开启后显式收窄的归属硬隔离);autoDream 后台去重 / 合并 / 归档,冲突冻结待人工裁决

# 30 秒上手
dsh plugin --profile web add @modusensus/dsh-mneme
dsh web

它不是什么(边界声明):

  • 不是向量数据库——语义搜索是可选增强,默认零额外依赖
  • 不替代会话日志——它存的是「值得跨会话记住的」精炼知识
  • 不改变模型本身——进化的是记忆库与每次注入的上下文
  • 删对话 ≠ 删记忆——记忆是跨会话的全局知识(v0.7.11 起不再与会话绑定),删除会话不影响已存入的记忆

✨ 功能

记忆存储(SQLite + Markdown 镜像)

  • SQLite 主存储:~/.dsh/memory/memory.db,node:sqlite 内置,零原生依赖
  • Markdown 镜像:按类型分文件(preferences.md / projects.md / decisions.md / history.md / summary.md / patterns.md / pitfalls.md / constraints.md / rejected-solutions.md,外加只读视图 documents.md),文件头是 YAML frontmatter(type / generated.by / generated.at / covered / coverage / tags)。人类可读,条目标题与正文可手工编辑(人工修改优先合并回库);documents.md 例外:它只有 document 指针行(id、标题、摘要首句、文件路径),不含正文也不参与人工回填。文件头与条目元数据行由机器维护
  • 10 种记忆类型:preference 偏好 / project 项目 / decision 决策 / history 历史 / summary 会话总览 / pattern 模式 + 编码记忆三型 rejected_solution 被否方案 / pitfall 踩坑 / constraint 约束(v0.7.13 起,codingRetrospect 默认关;v0.7.11 近重写已收窄删除 user/fact 两型)+ document 文档指针(#230,只存摘要与 doc_path,正文留在磁盘由 agent 自管)
  • 镜像同步状态机(v0.3.6+):mirror 与主库强一致,用 generation(期望轮次)/ applied_generation(已应用轮次)建模同步债务
  • 业务写操作在自身事务内原子递增 desired generation——崩溃在 COMMIT 后、渲染前,重启也能凭 durable 债务恢复,绝不静默跳过(v0.3.8)
  • generation 用 SQLite 原子语句递增,多进程并发零丢失;带 CHECK 上界,负数/溢出拒绝
  • 逐 type 记录 committed / failed / pending 回执,健康端点区分 ok / degraded / unknown
  • 状态写失败不静默:同步失败落日志并留债务,重启自动收敛

模型工具(默认注册 11 个;开 organizeEnabled 后 12 个)

工具 · 功能

memory_save · 记录一条记忆(自动按标题去重合并;v0.8.0 起去重键含 agent/workspace/scope 作用域,可选 sensitivity / occurred_at 参数)

memory_search · 全文搜索(中文子串友好,可启用向量语义搜索;可选 occurred_from / occurred_to 按事件发生时间过滤)

memory_list · 按类型分页列出(include_archived=true 可查看已归档;可选 occurred_from / occurred_to 时间过滤)

memory_get · 读取单条记忆完整正文(v0.7.25,按 id;memory_search / memory_list 命中后读全文)

memory_update · 修改已有记忆

memory_delete · 删除记忆(按记忆 ID 精确删除)

memory_forget · 抑制注入(降权不删除,可恢复)

memory_archive · 归档/恢复记忆(v0.2.5;归档后隐藏于列表/搜索/注入/整理,archived=false 可恢复)

set_scope_state · 按下/松开某个作用域的可逆闸门(#471:政策轴。暂停期间该作用域的记忆照旧存着,只是不注入、不参与巩固,松开即原样回来;不改任何一条记忆的标注,与上面逐条操作的 memory_forget / memory_archive 是两根不同的轴)。两级开关 scopeState.enabled / .enforce 默认都关,没开时按下不产生拦截效果

memory_register_document · 登记 agent 产长文档的指针行(#230:摘要 + doc_path + evidence 落 document 类型;正文留在磁盘、由 agent 自管,注册口唯一,旁路写入被拒)

memory_organize · 主动整理(#231,要 organizeEnabled 打开才注册):mode=dryRun 先出比对报告(每条候选 exact / near / new + 命中行,不写一行库、只留审计回执),agent 判断后 mode=apply 引用那份报告的 run_id 落地。两种「不要它」要分清——discard = 这条候选不写,什么都不动(只进回执);archive = 把报告标为被取代的那条既有行归档(可恢复,绝不物理删除)。没有比对过的候选写不进库,一份报告也只许落地一次

memory_runtime · 本地推理运行时的状态 / 供给 / 校验(v0.7.32,自管运行时三档取件)

工作流(M.O.,v0.9 beta)

记忆库答的是「这件事为什么这么办」,答不了「这件事到底怎么跑」。v0.9 把后者从记忆库里的一行文字变成项目里可提交、可 review、可被 CI 读的一份文件——一条工作流一个 JSON:

<项目>/.mneme/pipelines/<id>.json     ← 项目层(默认;跟着项目提交)
<插件包>/pipelines/<id>.json          ← 全局层(兜底;今天包里没有这个目录,有意为空)
  • 两层来源,顺序即优先级:同 id 两处都有,项目层赢,被挡住的那份进 shadowed 报出来(不静默丢弃);项目层的坏文件进 unreadable 而不拖死全局层——一层写坏不该让人连兜底那份也看不见
  • 校验很硬:id / name / project / version / status / done 与每一步的 phase / title / when / do / done / why 缺一不可,risk 限 R0–R3、needs 必须指向存在的步骤、图里有环直接报错——任何一处不合规整条读不出来,不做「跳过坏文件继续」:半个工作流比没有更危险
  • 护栏,不是轨道:绕行要留出口。自报 R0/R1 且不跨闸门 且兜底清单(IRREVERSIBLE_PATTERNS,机械匹配、不看自报)没命中 → 记账先走;其余 → 停下问人
  • 候选分层:草稿住 <memoryDir>/candidates/<项目键>/,只在本地。升格要同时满足「走过两次(至少一次成功)」且「写得出反事实」;够格之后系统只提议,promoteCandidate() 只返回内容不写盘,提交与推送是人握着的那道门
  • 两个指标分开数:跳过(这次不用这一步,≥3 次提议删这一步)与绕开(这条路整个不对,≥3 次提议重看这条路径)各自累加,混在一起两种提议都发不出来
  • 只读路由 GET /api/dsh-mneme/pipeline[?id=&project=](project 非绝对路径回 400 project-not-absolute,不回退 process.cwd());答复契约 mneme.pipeline/v1,面板渲染与 agent 读的是同一份数据
  • 默认关(actionPipelineEnabled),设计取舍见 [docs/WORKFLOWS.md](docs/WORKFLOWS.md)

自动注入 + 会话摘要

  • 自动注入:新会话开局注入记忆摘要(summary 优先 + 少量高重要性条目)
  • 会话摘要:turn/end 时用 LLM 提炼本次会话的偏好/决策/教训,自动入库(过滤 plugin 注入上下文,避免污染)

autoDream 自动记忆整理 🧠

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:110,最后更新 2026-11-05

链接

GitHub · Homepage · npm

同类插件