前言¶
在 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。
本地 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。
典型用法¶
- 安装并配置
dir,在设置页编辑soul.md与MEMORY.md,注意实时字节预算(默认各 4096 字节量级)。 - 开启对话记录后,原文进入
inbox/;满足阈值或点击「立即提炼」,由模型写入索引与topics/。 - 在「主题」页按类型搜索、新建、编辑;不需要的主题移入回收站。
- 定期在「备份」创建快照;「自动化」页调整提炼、压缩、模型等参数。
- 在对话中让 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