dsh-memory: Customizable Structure DSH Cross-Session Memory

前言

在 DeepSeek Harness(DSH)里做多轮对话或轻量编程时,上下文窗口会随会话结束而清空;换窗口、换工作区后,模型也拿不到上一段对话里约定好的偏好和事实。常见做法是手写 system prompt 或在外部笔记里维护状态,但那样要么每次手动粘贴,要么和 Harness 的会话生命周期脱节。

下面介绍社区插件 dsh-memory(GitHub:2424830124/dsh-memory,npm:@huai_xin/dsh-memory)。它把长期记忆做成磁盘上的 YAML「笔记本」,按标题树组织,并在组装提示词时整份注入;模型通过插件提供的工具读写记忆,多会话之间共享同一份文件,并在别处改动后向当前会话推送合并后的、不唤醒的变更通知。另带按日期的日志(短期记忆)和可替换 Harness 开场身份的 Markdown 预设。

这是什么

dsh-memory 是分类为「记忆」的 DSH 插件,维护者 GitHub 用户 2424830124。一句话定位:给 DeepSeek Harness 用的跨会话长期记忆,结构由用户自己在 YAML 里定义,而不是插件写死的字段表。

它在设计上有两个明确取舍(README 原文表述):不做自动召回——每次把可见记忆文件整份放进提示词,不检索、不算相关性;原因是召回错误容易把模型带偏,且当前记忆体量通常能塞进上下文。真正强调的能力是可自定义结构:file_name、desc、format、标题树、inject_ignore 都写在文件自身,改结构不必改插件代码或全局配置。

记忆在 Global(~/.dsh/dsh-memory/.memory)与 Workspace(<workspace>/.memory)两个作用域之间划分;路径不可在配置里改位置,只能通过 DSH_HOME 整体迁移,避免写错路径 silently 读到别处。

核心功能

记忆注入与多会话同步

  • 记忆文件为 YAML,插件注入到提示词前缀;模型可用 memory_read / memory_edit / memory_manage(README 中统称「三个工具」)读写,写前须先读,并带版本校验,避免覆盖其他会话的并发修改。
  • 其他会话修改记忆后,本会话只收到「哪些标题变了」类通知;需要细节时再读文件。空闲会话在下一条消息时检查累积变更;正在运行的会话约每 5 秒检查一次(最多每 5 秒一条提醒)。
  • 按会话冻结注入:会话开启期间,注入文本与 memory_edit 的工具描述冻结,文件在外部再怎么变,本会话拼出的提示词前缀不变,以便供应商前缀缓存持续命中;变更走通知。闲过保留窗口(默认 60 分钟,由 snapshotTtlMinutes 等配置参与,默认快照保留 10080 分钟即 7 天)后重新生成。

日志与预设

  • 日志:log/ 下一天一个 YAML,二级标题为「时分 + 摘要」,用于记「今天发生了什么」;可通过 injectLog、logInjectGlobalDays 等配置控制最近几天、每天条数是否注入。
  • 预设:preset/*.md 纯文本,选中后整体替换提示词最开头的 harness identity(默认那句 You are an AI agent powered by DeepSeek Harness.)。人设、行为准则等开场文本放预设,不必挤进记忆文件;预设不受 inject_ignore 与三个记忆工具约束。

面板

对话区顶部「记忆」标签页含 预设 / 全局 / 工作区 / 设置。全局与工作区侧以卡片编辑 YAML 内容树、预览「注入效果」、拖动调整同层标题顺序与注入顺序(fileOrder);设置页写入 ~/.dsh/dsh-memory/config.yaml,保存后当场生效(手改该文件需重启 Harness)。

常见搭法(来自 README 表格)

想记什么 大概长什么
长短期记忆 一份「长期记忆」存稳定事实;当天先写日志,隔几天再摘要进长期
行为准则 一份「行为准则」,一级标题分场景
角色设定 一份「角色」或每角色一文件,format 里写清边界
学习感悟 一份「感悟」,二级标题一条,keyword 打标签
备忘录 一份「待办」,inject_ignore 跳过 update_at、keyword

经验:一个文件一种用途,把必须每轮看到的准则单独放前面,偶尔翻的备忘录另起文件,便于 fileOrder 与 inject_ignore 按文件生效。

安装与启用

插件以 npm 包形式安装,并在 profile 里挂载 bundle 补丁。官方 README 给出的步骤如下。

先安装包:

npm install @huai_xin/dsh-memory

在 profile 配置中加载 cordis.patch.yml(只挂载插件,不在此写业务配置值):

# cordis.patch.yml —— 只挂载插件,不写配置值
- insert:
    - id: memory
      name: '@huai_xin/dsh-memory'

运行时依赖 yaml 与 @deepseek-ai/schemastery。若跟源码开发,可将 node_modules 内包换成本地链接(如 npm install ../dsh-memory 或 link: 依赖),无需每次发版。

当前 package.json 中版本为 0.3.7,许可证 MIT。插件在 DSH 进程权限下读写上述目录,安装前请自行查阅仓库源码与许可证。

配置与数据目录

配置优先级:~/.dsh/dsh-memory/config.yaml > profile 里插件配置 > 内置默认。

主要路径:

~/.dsh/dsh-memory/config.yaml         # 配置
~/.dsh/dsh-memory/.memory/*.yaml      # Global 记忆
~/.dsh/dsh-memory/preset/*.md         # 预设
~/.dsh/dsh-memory/state/sessions/     # 会话快照
<workspace>/.memory/*.yaml            # Workspace 记忆

部分配置键(默认值见 README 表格):

键 默认 说明
snapshotTtlMinutes 10080 会话快照保留分钟数;0 关闭清理
logSummaryMaxChars 60 日志摘要字数上限
injectLog true 是否把最近日志注入提示词
logInjectEntries 0 每天最多注入条数;0 不限
logInjectGlobalDays 3 全局日志带最近几天
defaultPreset '' 新建会话默认预设名;空为不使用

fileOrder 在面板左侧拖动文件顺序维护,不在设置页手写。

典型用法:记忆文件骨架

新建 Global 或 Workspace 记忆时,YAML 形状如下(字段含义以 README 为准):

meta_data:
  file_name: 我的记忆
  desc: 记录我和用户之间的一些回忆,以及我想要记住的事
  format: |
    写这个文件放什么、什么时候该更新、更新成什么样。
    这段只出现在 memory_edit 的工具描述里,不进提示词。
  scope: Global
  inject_ignore:
    - update_at
    - keyword

data:
  我们经历过的一些事:
    update_at: 2026-10-27T03:18:36+08:00
    desc: 一级标题的正文
    keyword: [回忆]
    我们之间的互动:
      desc: 二级标题的正文

注意:正文行不得以 # 开头,否则会被误解析为标题;建标题应通过工具的 heading_path(如 # 标题 > ## 子标题)操作。标题最多 4 级,同级不可重名。

日志文件由插件按日生成,一级标题固定为当天日期;模型写日志时须使用 # yyyy-mm-dd > ## hh:mm 摘要 这一路径形状。

预设示例:在 ~/.dsh/dsh-memory/preset/ 放置 角色.md,在面板或新建会话下拉框选用;切换预设可能破坏前缀缓存,面板会对进行中的会话给出确认提示。

适用场景与注意

适合:聊天、角色扮演、需要在多窗口/多工作区之间共享稳定事实与偏好的轻量编程;愿意自己设计 YAML 标题树而不是依赖向量召回的场景。

不适合或需知:不做语义检索,记忆变大后主要靠整份注入(README 提到未来可能加关键词轻量召回,但主路径仍是整份注入)。插件不自带预设内容,装好后 preset/ 为空。Community 目录页(SkillHub)与 GitHub 仓库由维护者发布,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本文安装与行为均以仓库 README 与 0.3.7 包描述为准。

结尾

dsh-memory 把跨会话记忆落在可读写的 YAML 与可选预设上,用整份注入和多会话通知换结构自由度与实现简单性。若要查看简介与分类,可打开社区目录页;细节、Issue 与源码在 GitHub 仓库。

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

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

Xiaoye