dsh-mm:DSH 纯本地四层 Markdown 长期记忆

前言

在 DeepSeek Harness(DSH)里做长期对话或智能体开发时,上下文窗口有限,单靠会话历史很难稳定记住人格设定、项目决策和人物偏好。常见做法是外挂向量库或云端记忆服务,往往引入额外依赖和网络路径。下面介绍社区插件 dsh-mm(维护者 huangbaba1992,分类:记忆):用一个普通文件夹、四层 Markdown,无数据库、无插件侧网络请求,把 soul、索引、主题与 inbox 串成可提炼、可备份的本地记忆流程。

这是什么

dsh-mm 是 DSH 的纯本地长期记忆插件。数据落在可配置的目录(默认 ~/.dsh/memory),结构清晰,可用编辑器、git 或 grep 直接管理。插件不发网络请求;只有你配置的模型调用会离开本机。

四层分工如下:

  • soul(soul.md):人格与风格,注入 system prompt 靠前(默认 ≤4 KB)
  • MEMORY.md:长期记忆索引,注入 system prompt 靠后(默认 ≤4 KB,超限截断)
  • topics/:人物、项目、决策、偏好、教训、笔记,按 frontmatter 的 type 分类
  • inbox/:每轮对话原文,不注入、不检索,提炼后归档

backups/ 与 .trash/ 不参与注入、检索、压缩。

文件夹与主题格式

目录结构(资料原文):

<dir>/
├── soul.md
├── MEMORY.md
├── topics/<slug>.md
├── inbox/
│   ├── YYYY-MM-DD.md
│   └── archive/
├── backups/<timestamp>/...
└── .trash/<timestamp>/...

主题文件示例:

---
name: 王工
description: 后端负责人,偏好 async 写法
type: person
updated: 2026-10-27
---

- 负责后端上线
- 偏好 async/await

type 取值:person / project / decision / preference / lesson / note。旧版 people/、projects/ 等目录会在启动时自动迁入 topics/,类型写入 frontmatter。

核心功能

记忆与提炼

  • 每轮对话可自动追加原文到 inbox/YYYY-MM-DD.md(可关闭)
  • 手动或自动提炼:inbox → MEMORY.md 索引 + topics/*.md
  • 提炼去重:同一天二次提炼追加「补充」;跨次对索引行与主题正文按行去重
  • 大 inbox 按预算分段提炼,剩余内容回写 inbox,避免卡死或丢失
  • memory 工具:search / read / write / list / delete

提炼触发条件(README 原文):

  • inbox 积压 ≥ 阈值(默认 16 KB)且距上次 ≥ 1 小时
  • 空闲达到设定分钟数(默认 30 分钟)
  • 最后一个会话关闭
  • 定时整理(默认 24 小时兜底)
  • 设置页「立即提炼」

提炼失败不归档原文,下次重试;归档同名加时间戳,不覆盖。

整理、备份与回收站

  • 定时合并去重:完全相同文件进回收站,大文件交给模型压缩
  • 压缩前可自动备份(可关),备份保留份数可配置(默认 10)
  • 设置页六个页签:概览、核心文件(soul / MEMORY 编辑器)、主题、自动化、备份、回收站
  • 概览可看主题数、待提炼积压、预算进度、上次运行、下次整理、warning
  • 回收站支持恢复(绝不覆盖同名)、彻底删除、清空

HTTP API(宿主侧)

设置页与自动化通过白名单 API 操作核心文件;inbox/、backups/、.trash/、.. 不可通过 Web 写入。主要路径包括:/api/local-memory/state、/file、/topic、/delete、/trash、/backup、/settings、/distill、/compact(详见 GitHub README 表格)。

安装与启用

DSH 生态采用「一切皆插件」;社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。

从 GitHub 安装

dsh plugin --profile <profile> add github:huangbaba1992/dsh-mm

桌面版 desktop profile 由应用管理,CLI 会拒绝直接写入;可在 设置 → 插件 中安装,或使用本地 link。

在 Host 的 package.json 中:

"dependencies": { "dsh-mm": "link:/absolute/path/to/dsh-mm" }

并把 dsh-mm 加入 dsh.profile.bundles。改 Host 代码需重启 DSH;改前端后刷新页面(宿主未热更新时同样重启)。

插件 Config 示例

- insert:
    - id: local-memory
      name: dsh-mm
      config:
        dir: "~/.dsh/memory"
        soulFile: soul.md
        memoryFile: MEMORY.md
        maxMemoryBytes: 4096

设置页保存的目录优先于 config.dir。

典型用法

  1. 安装并配置 dir,在设置页编辑 soul.md 与 MEMORY.md,注意实时字节预算(默认各 4096 字节量级)。
  2. 开启对话记录后,原文进入 inbox/;满足阈值或点击「立即提炼」,由模型写入索引与 topics/。
  3. 在「主题」页按类型搜索、新建、编辑;不需要的主题移入回收站。
  4. 定期在「备份」创建快照;「自动化」页调整提炼、压缩、模型等参数。
  5. 在对话中让 Agent 使用 memory 工具的 search / read 等操作主题与索引(行为以当前 DSH 与插件版本为准)。

仓库内测试命令:

node test/host.test.mjs
node test/client.test.mjs

适用场景与注意

适合:希望记忆完全落盘、可 diff、可备份;需要 soul + 索引 + 结构化主题 + inbox 流水线;不想为记忆插件单独开数据库或 SaaS 的 DSH 用户。

注意:

  • 插件以当前 dsh 进程权限 读写配置目录;安装前请阅读 GitHub 源码 与 MIT 许可证(© 2026 huangbaba1992)。
  • 压缩与大 inbox 分段提炼依赖你配置的模型;预算与阈值可在设置页调整。
  • 当前 package.json 版本为 0.1.0;API 与界面以 README 与 CHANGELOG 为准。

结尾

dsh-mm 把长期记忆收敛到一个 Markdown 目录:注入用的 soul 与 MEMORY、可检索的 topics、仅作原料的 inbox,再配合提炼、去重、备份与回收站,适合在 DSH 里做本地优先的长期上下文管理。

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

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

Xiaoye