dsh-memory:本地长期记忆插件

前言

在开发或使用 DSH(DeepSeek Harness)进行多会话工作时,对话上下文会随着会话切换而丢失。上下文窗口有限,长对话无法全部保留,手动记录又容易遗漏关键信息。本插件把会话保存成本地 Markdown 文件,通过抽取式摘要和低 token 启动包,让历史对话可以按需召回。

它是什么

dsh-memory 是一个给 DSH 用的本地长期记忆插件。维护者是 2540511。它解决换会话就忘事、上下文放不下长篇对话、想要「人一样回忆」这三个问题。所有内容只留在工作区,不上传云端。

记忆存储结构

插件启用后会在工作区创建 记忆/ 文件夹,结构如下:

<工作区>/记忆/
├─ _系统/                    插件自己的文件,别删
│   ├─ _config.md            全部设置(也可在页面改)
│   ├─ _index.md             低 token 启动包缓存(可重建)
│   └─ _audit.md             操作审计流水
├─ 作业1/                    一个会话一个文件夹
│   ├─ 2026-10-23_180237(ZJB).md   总结版
│   ├─ 2026-10-23_180237(full).md  完整逐字版
│   ├─ 2026-10-23_180237_2.md      工作记忆逐字卷
│   ├─ 2026-10-23_180237(diff).md  代码变更
│   └─ 提示词.md                   记忆恢复提示词
└─ _回收站/                  删除的文件先来这里

文件名后缀含义:

后缀 内容 进启动包
(ZJB) 聊天记忆总结版:要点、增量、承接 ✅
(full) 同一会话的完整逐字版 ❌ 检索时才读
(diff) 工作记忆里的代码变更(一个文件一条) ❌
无后缀 工作记忆逐字卷,多卷时 _2、_3 ❌
提示词.md / 工作流程提示词.md 导出给新会话用的提示词 ❌

安装与启用

在 DSH 插件目录里安装这个包(本地目录或 npm 包名):

# 本地开发目录
plugin_manager install_bundle <本仓库绝对路径>

# 或已发布到 npm 之后
plugin_manager install_bundle @local/dsh-memory

装好后左侧「插件」下会出现「记忆」入口。首次启用时,插件会自动在每个工作区里创建 记忆/ 文件夹。

保存会话

  1. 打开「记忆」页 → 在「保存会话」里点一个会话
  2. 确认条里可以选择文件夹(默认用会话名,可改成任意名字,新名字会新建文件夹)
  3. 选择模式:
    - 聊天记忆:抽取摘要,会随时间衰减;同时生成一份完整版
    - 工作记忆:逐字保存,自动分卷,含代码变更
  4. 点「保存记忆」

会话列表取不到时(某些 DSH 版本的服务实例没挂持久化),可以直接把会话 ID 粘进「或粘贴会话 ID」。

在新会话里恢复记忆

保存时会自动生成 提示词.md,用户只需要导入这一个文件:

  1. 打开 记忆/<会话名>/ 文件夹
  2. 找到 提示词.md(聊天记忆)或 工作流程提示词.md(工作记忆)
  3. 不用打开它,直接右键复制这个文件
  4. 粘贴到新会话的聊天框
  5. 发送

提示词里会写明:索引里没有记忆时,去读同目录最新的 (ZJB) 总结版;还不够再读 (full)。

也可以在页面上点「下载提示词」拿到同样的文件。

检索

在「检索记忆」里输关键词(中文会自动拆成二元组)。命中工作记忆或 (full) 时返回原文,不是摘录。

每次命中会给条目加权重(+10,1 小时内不重复加),常用记忆的排序会自然上升。

权重与回收

  • 满权 20 天,之后按半衰期 30 天衰减,最低 5
  • 只回收摘要里的 ### 增量 明细,源文件永久保留
  • 长期要点(long_term)不衰减

冲突与提案

  • 同一条记忆出现两种说法会进「待确认冲突」,选「采用新值」或「保留旧值」,被替代的条目保留原文并双向链接
  • 说「记住…/以后都…/不要…」时模型会提议一条记忆,必须你点采纳才生效

删除与回收站

  • 删除 = 移动到 记忆/_回收站/<时间>/,不直接抹掉
  • 页面会要求输入「删除」两个字确认;一次超过 10 个需要额外确认
  • 「清空回收站」才是永久删除,需要输入「清空」

配置

配置文件位于 记忆/_系统/_config.md,主要参数:

键 默认 说明
memory_root 空 空=用当前工作区的 记忆;可填绝对路径
active_workspace — 当前使用哪个工作区的记忆库
timezone Asia/Shanghai 文件名与时间戳用的时区
summary_char_budget 650 摘要字符预算
startup_token_budget 800 每轮注入的索引预算
full_weight_days / purge_after_days 20 / 20 满权期 / 明细回收期
half_life_days / weight_floor 30 / 5 衰减半衰期 / 权重下限
max_file_bytes / max_file_lines 256KB / 2000 工作记忆分卷阈值

隐私

  • 摘要、检索、索引全部在本机完成,不调用任何云端模型
  • 记忆只写在工作区目录内;privacy 字段目前固定为 device_local
  • 图片只记文字描述,原始媒体不保留(media_retained: false)

自测

npm test        # 13 套离线测试,纯 node,无第三方依赖

已知限制

  • 会话列表在部分 DSH 版本里取不到,插件会改用磁盘枚举兜底;再不行就手填会话 ID
  • diff 只记录通过文件工具产生的改动,命令行改的文件不会进 diff
  • 导入功能已移除(记忆内容无法直接进入对话),请用「提示词 + 手动粘贴」

适用场景与注意

本插件适合需要在多个 DSH 会话间保持一致上下文、希望本地化存储敏感信息、需要按需召回历史对话的开发者或用户。

插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。

结尾

dsh-memory 通过本地 Markdown 存储、抽取式摘要和低 token 启动包,让 DSH 的长期记忆变得可控且可检索。所有操作在本地完成,不上传云端。

目录页:https://www.skillhub.cn/plugins/2540511/dsh-memory
GitHub:https://github.com/2540511/dsh-memory

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye