跳到主内容

dsh-mneme

31Star3Fork5Issue2Watching

为 DeepSeek Harness 提供跨会话持久记忆,使用 SQLite + 可编辑 Markdown 双镜像,后台自动去重合并与会话摘要。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
main
agent-memoryagent-memory-systemautodreamdeepseek-harnessdsh-pluginknowledge-managementmemory-consolidationpersistent-memory

安装

命令web profile
$ dsh plugin --profile web add @modusensus/dsh-mneme

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 modusensus/dsh-mneme:先查看仓库 https://github.com/modusensus/dsh-mneme 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

为 DeepSeek Harness 装上跨会话持久记忆——把 AI 在这次对话里得知的偏好、项目、决定等留下来,下次新开会话自动带回到系统提示里。

核心能力

  • 自动写入并去重合并:模型通过 memory_save 工具存记忆,同标题会自动合并并保留版本历史(content_history)
  • 自动注入:新会话开始时把高重要性记忆塞进系统提示,让 AI 见到你之前说过什么
  • 后台 autoDream 自动整理:记忆数或字数达标后异步触发 LLM 裁决 keep / merge / archive / conflict / update,记忆库越用越精炼
  • 可编辑 Markdown 镜像:偏好、项目、决策、历史、总览分别落到独立 .md 文件,人工修改优先回写
  • 完全可选的语义搜索:关键词之外再叠加 BM25 + 向量召回 + 交叉编码精排,三路召回融合并自适应阈值
  • 会话摘要 + 短时热记忆:会话结束自动提炼要点;当前会话最近 5 轮对话以热记忆块形式滚动注入
  • 实体化记忆 + Wiki-Link + Tag 系统:从记忆里抽取命名实体与时间轴属性,支持 [[双向链接]] 和 #标签(默认关闭,按需开启)

技术实现

  • 语言: JavaScript(Node.js ESM,type: module)
  • 关键依赖: @deepseek-ai/cordis(DI 容器)、@deepseek-ai/dsh-tools(模型工具注册)、@deepseek-ai/schemastery(配置 Schema)、@huggingface/transformers(可选,本地向量 / 精排)
  • 架构模式: Cordis apply(ctx, config) 注入到 tools / systemPrompt / webServer / llm / commands 几个宿主钩子;通过 cordis.patch.yml bundle 把默认配置写入 DSH profile,零配置启动;后台由 createDreamScheduler 阈值调度 + createSleepScheduler 空闲调度两条维护流水线
  • 入口文件: dsh-mneme/lib/index.js(发布产物),开发源在 dsh-mneme/src/index.js

适用场景

想让 DSH 像一个长期合作的同事那样记住你的项目背景、编码习惯、过往决定,而不是每次开新会话都重新交代——这正是本插件解决的问题。它适合中长期使用者:每天跟 AI 协作几个小时、需要累积可检索的知识库;不适合只需要一次性问答、聊完即走的场景。开启语义搜索后还能让 AI 用「上次聊过的某事」式自然语言召回,跨日继续项目时无需你复述上下文。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness(DSH)>= 0.1.0-rc.6@deepseek-ai/dsh-host-webserver 等同号 peer 依赖
Node.js>= 24.0.0依赖 node:sqlite 内置模块(README 徽章明示)
平台跨平台通过 DSH web profile 运行;不挑操作系统
原生模块node:sqliteNode 自带,无第三方原生编译依赖

安装方式

dsh plugin --profile web add github:modusensus/dsh-mneme

配置项

默认行为开箱即用,全部列在 schema 中无硬性要求。下面是用户最常调整的几项;按需在 DSH 设置面板 → 记忆库设置中改动,也可在 ~/.dsh/profiles/web/cordis.patch.yml 用 id: dsh-mneme 段覆盖。

配置类型说明默认值
memoryDir字符串记忆存储目录(SQLite 数据库与 Markdown 镜像)~/.dsh/memory
autoInject布尔新会话自动把高重要性记忆写入系统提示true
autoSummarize布尔会话结束时自动提炼摘要入库true
maxInjectedItems整数 1-20单次注入的最大记忆条数5
importanceThreshold整数 1-5注入所需的最低重要性3
autoDream布尔后台自动整理(去重 / 合并 / 归档 / 裁决)开关true
dreamThresholdCount整数 1-1000触发整理的记忆条数阈值10
dreamDelayMs整数 0-60000整理运行的延迟去抖(毫秒)2000
dreamReasoningEffort枚举思考型模型需要传 off 关闭推理,否则会输出空正文none
embedProvider枚举openai / local(ONNX 离线)/ ollamaopenai
sessionLifecycleEnabled布尔开启后删除会话时软隐藏其记忆(可恢复),默认关闭以保持旧行为false
entityExtractionEnabled布尔开启后从新写记忆中自动抽实体 / 属性 / 关系false
apiToken字符串设置后写接口与向量密钥接口要求 Bearer 鉴权,空则开放空

常见问题

Q: 我装了插件为什么没有记忆可用?是不是要先把对话内容喂给它?

A: 不用。打开新会话 AI 就会看到已存的记忆,新出现的事实由 AI 自己通过 memory_save 工具主动写入,无需你手动调用。

Q: 存储在哪台机器?会被同步到云端吗?

A: 只在你跑 DSH 的本机,路径 ~/.dsh/memory/。SQLite 主库与 Markdown 镜像都在一起,没有任何远端上传;想备份直接拷目录。

Q: 删掉对话窗口,是不是记忆也一起没了?

A: 默认不会——记忆和会话窗口是分开的,删会话不影响已保存记忆。开启 sessionLifecycleEnabled 后,删除会话会变成软隐藏(memory_list 设 include_archived 还能看到并恢复)。

Q: 想让 AI 用自然语言「上次聊过的那件事」怎么搜?

A: 打开设置面板 → 记忆库 → 工具栏切换到「语义」即可,会启用向量召回;后台是关键词 + BM25 + 向量三路融合,并按查询长度自适应阈值。

Q: 我的 embedding 服务访问不到,向量会不会报错?

A: 不会。embedding 失败会自动回退到关键词搜索;本地 ONNX 模型下载失败同样只是记录 warning,搜索降级关键词,主流程照常工作。

Q: 删除一条记忆为什么搜出来还在?

A: 你用的可能是 memory_forget 或 memory_archive——它们分别是抑制注入和归档,都可恢复。想物理删除要明确用 memory_delete,按 id 或按 query 描述删除。

Q: 怎么彻底关掉这个插件?

A: 从 DSH profile 移除 bundle:dsh plugin --profile web remove @modusensus/dsh-mneme,数据留在磁盘不删,需要时重装即恢复。

上手难度

入门 — 默认配置开箱即用,绝大多数用户不需要改任何开关;只有准备启用向量搜索 / Sleep Mode / 实体抽取等可选能力时才需要看配置项。

已知问题与限制

  • 思考型模型(如 deepseek-v4-flash / DeepSeek-R1)在 autoDream 默认参数下会把整段 token 预算烧在推理上,导致正文为空(日志常见 no json array in llm output)。解决:把 dreamReasoningEffort 和 sleepReasoningEffort 都显式设为 off;这两个选项默认 none 是为不改变原有行为。
  • 默认不启用 Rerank 精排(rerankEnabled=false),因为初始化会加载 onnxruntime-node;要使用必须显式打开,并承担模型下载与首次推理延迟。
  • 数据库是单文件 SQLite(node:sqlite 同步 API),不支持并发多进程写入;DSH 是单进程托管,多实例共享会冲突。
  • LLM 路由走 agentDefaultModel,没有独立 Key:默认会消费主对话 token 预算;预算紧张时手动设置 dreamProvider / dreamModel / summarizeProvider 指向轻量模型。
  • 各高级特性(实体抽取、Wiki-Link、Tag 加权、Sleep、Session 生命周期)默认关闭——为了不破坏既有行为而保守启用;首次使用前需查 配置文档。

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/modusensus/dsh-mneme)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录