dsh-memory-md:Markdown 长期记忆,中文可搜、无需 Web

前言

DeepSeek Harness(dsh)把能力拆成插件,本体默认不带长期记忆。社区里常见做法是 SQLite FTS5 或带 Web 界面的记忆插件:前者对中文检索不友好,后者在纯 IM(飞书、微信等没有 Web 表面的 profile)里可能因 inject: ['webServer'] 导致整棵插件树启动失败。

下面介绍维护者 smallwhitelin 发布的 dsh-memory-md(SkillHub 分类:记忆)。它用一份可手改的 Markdown 作真源,检索走大小写不敏感的子串匹配,只注入 tools 与 systemPrompt,不依赖 Web。

这是什么

dsh-memory-md 是面向 dsh 的极简长期记忆插件:CJK 友好的子串搜索、人类可直接编辑的 Markdown、不需要 Web 表面。

定位是显性记忆(Explicit memory):用户说「记住…」「改成…」「忘掉…」时由模型调用对应工具;不自动沉淀、不调额外模型、不建索引,存什么由你决定。

相对常见做法的两点差异

  1. 中文能搜:FTS5 默认分词器常把整句中文当一个词,子串如「墨绿色」可能 0 命中;本插件用子串匹配,中文任意片段、英文、几个字都能命中,不碰分词器。
  2. 纯 IM 可用:仅 inject: ['tools', 'systemPrompt'],不写数据库、不联网、不起子进程,适合 @dsh-feishu/dsh-feishu 这类 profile。

核心功能

记忆文件

默认路径由配置 path 决定,推荐:

path: !!js dshHomePath('memory/MEMORY.md')

即 ~/.dsh/memory/MEMORY.md。示例结构:

# 记忆

<!-- 每行一条,`- 内容`;直接编辑这个文件即可,改动下一轮生效 -->

- 用户习惯用中文回复
- 用户最喜欢的颜色是墨绿色
- 部署机 workspace 是 /home/zero/workspace

可直接用编辑器增删改行,下一轮对话重新读文件即生效。插件改条目时只动目标行,原子写入(.tmp 再 rename),避免半截文件。

工具

工具 作用 匹配
memory_add(text) 新增一条(完全相同内容自动跳过) —
memory_replace(old_text, new_text) 改一条(整行替换,位置不变) 大小写不敏感子串,需唯一命中
memory_remove(old_text) 删一条 同上
memory_search(query) 搜索 同上

用子串定位而非 id,手工编辑后引用不会失效;多条命中会报错,需写具体些再试。

注入

记忆内容作为系统提示词段落注入。默认 maxInjectChars: 3000,超出会截断并提示改用 memory_search。适合稳定事实清单,不适合堆成大型知识库。

安装与启用

任选一种方式,将 <你的 profile> 换成实际 profile 名;改完后重启该 profile 服务(或支持热重载时自动生效)。

方式 A — 从 GitHub(不需要任何账号)

dsh plugin --profile <你的 profile> add github:smallwhitelin/dsh-memory-md

方式 B — npm(发布后)

dsh plugin --profile <你的 profile> add dsh-memory-md

方式 C — 手写 profile 的 cordis.patch.yml

- insert:
    - id: memory-md
      name: 'dsh-memory-md'
      config:
        path: !!js dshHomePath('memory/MEMORY.md')
        maxInjectChars: 3000

配置项

键 默认 说明
path 必填 Markdown 记忆文件路径
maxInjectChars 3000 每轮注入字符上限
searchLimit 20 memory_search 单次最多返回条数
order 50 提示词段落顺序

典型用法

  1. 安装并配置 path 后启动 profile。
  2. 在对话中说「记住我习惯用中文回复」→ 模型调用 memory_add。
  3. 说「把我最喜欢的颜色改成深蓝色」→ memory_replace,用旧内容子串唯一定位行。
  4. 记忆变多、超过注入上限时,让模型用 memory_search 查关键词,而不是依赖整份注入。
  5. 需要批量整理时,直接编辑 MEMORY.md,保存后下一轮生效。

适用场景与注意

适合:需要在 IM 里长期记住少量稳定事实;希望文件可读可 diff;中文检索要可靠;不想开 Web 或 SQLite FTS。

环境:Node ≥ 24(与 dsh 要求一致);零运行时依赖(仅 node:fs / node:path)。卸载时删掉 profile 里对应插件并重启,Markdown 文件仍留在磁盘。

安全:插件以当前 dsh 进程权限读写 path 所指文件。安装前请自行查看 GitHub 仓库 源码与 MIT 许可证。社区目录 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系,仅为生态收录。

结尾

dsh-memory-md 把长期记忆收成一份 Markdown:中文子串可搜、工具显式增删改查、不绑 Web。需要接入时,可从 SkillHub 目录页或 GitHub README 对照安装命令与配置字段。

  • 目录页:https://www.skillhub.cn/plugins/smallwhitelin/dsh-memory-md
  • GitHub:https://github.com/smallwhitelin/dsh-memory-md
羽毛球分组比赛记分
小程序二维码

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

小夜