dsh-elysia-memory:全 DSH 会话共用的本地共享记忆

前言

在 DeepSeek Harness(DSH)里做智能体或长期结对开发,常见情况是:新开一个会话,模型不记得你上次定过的规矩;同一个错误在下一个会话里还会出现;人设和偏好散落在各处,既难改也难延续。若只靠当前上下文,上下文一压缩,较早的约定就容易被挤掉。

下面介绍维护者 1148462398-hub 发布的记忆类插件 dsh-elysia-memory(npm 包名同目录,README 里亦称 dsh-elysia)。它在本地维护一份所有 DSH 会话共用的 Markdown 记忆文件,支持双盘镜像、BM25 检索与按项目分作用域;并附带可选的爱莉希雅角色记忆包(统计自 1,696 条官方确证语音)、可选 GPT-SoVITS 语音与表情包等能力,默认大多关闭,由你按需启用。

这是什么

dsh-elysia-memory 是 DSH 生态中的「记忆」类插件。DSH 的理念是「一切皆插件」;社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,可当作独立插件源使用。

当前资料中的版本为 2.10.0(package.json),许可证 MIT。GitHub 仓库:1148462398-hub/dsh-elysia-memory。

插件要解决的核心问题包括:

  1. 会话之间互不相识,用户每开新会话都要重新交代背景与规矩。
  2. 模型犯过的错,下一个会话仍可能再犯。
  3. 人设与工作准则散落,难以持续修改和传递。
  4. 只存一份记忆文件时,单盘故障可能导致全部丢失。

核心功能

共享记忆与磁盘布局

所有会话读写同一份记忆;模型每轮看到的记忆直接来自磁盘,并在组装提示词时按 mtime 重新读盘(带约 1.2s 节流),因此上下文压缩后也会跟上最新文件内容。

记忆主体是人类可读的单个 Markdown 文件,用 HTML 注释划分区块;<!-- dsh-shared-memory:xxx:start --> 与对应的 :end 标记请勿删除,其余正文可编辑。

区块 内容 谁来写
persona 当前模型的人设提示词 模型(用户要求时)
requirements 用户要求与长期偏好 模型
requests 用户输入流水(每轮自动摘要) 插件自动
corrections 用户指正 模型
lessons 自我教训 模型
methods 更好的方法 模型
sessions 会话索引(含压缩事件) 插件自动

requests 与 requirements 分离,是为避免流水挤掉真正需要长期保留的偏好。每类默认上限 200 条,超出部分转存 MEMORY.archive.md(同样双写),不再注入上下文,但仍可通过检索工具查询。

默认存储路径(资料中的 Windows 示例):

  • 主文件:%USERPROFILE%\.dsh\dsh-shared-memory\MEMORY.md
  • 镜像:第一块非系统盘,例如 D:\dsh-shared-memory\MEMORY.md

每次写入同时写主文件与镜像(临时文件 + rename,写完回读校验)。启动时对账:缺一侧则回补;两侧内容不一致则备份较旧副本为 .conflict-<时间>.bak 后收敛到较新内容。更换路径可让模型调用 memory_file_maintain(action=relocate),或修改 dsh/cordis.patch.yml 中的 primaryPath / mirrorPath 后重启。

注入、检索与项目作用域

系统提示词中会注入:人设(约占预算约 1/3)、记忆使用协议、各分类索引摘要;过长部分会明确提示用 memory_file_search 检索,避免静默截断。记忆正文中可能出现的 {{...}} / ${...} 会被打断,并标注为参考数据而非指令。

记忆按会话工作目录自动打上 project:<目录名> 作用域:注入时只包含全局条目与当前项目条目。工具调用时 scope 可选 current(默认)、global、all。

技术说明中还包含:命中频率分层、BM25 检索、质疑度驱动的方法复用与 methodbook 分区索引等,适合需要把「记下来的做法」沉淀成可检索最佳实践的场景。

记忆网页与管理接口

宿主 HTTP 端口下提供自包含页面(无需前端构建),示例:

http://127.0.0.1:49870/dsh-shared-memory

(实际端口以你本机 DSH 为准,资料中亦出现 http://127.0.0.1:<端口>/dsh-shared-memory 的写法。)

页面上可查看 / 编辑各分区、查看 revision 与双备份是否一致,并执行对账回补与重新读取。相关接口:GET /api/state、POST /api/save、POST /api/reconcile。请求需同源校验,并带请求头 x-dsh-memory: 1;请求体上限 512KB,正文约 200k 字符。

历史版本默认保留 50 个,位于 .history/<revision>.md;可通过 memory_file_maintain(action=history) 列出、action=rollback 回滚。彻底清空须 memory_file_maintain 传 action=reset 且 confirm="DELETE_BOTH",否则插件拒绝执行。

可选记忆包(爱莉希雅)

插件自带角色自我记忆与人设包 elysia,默认不写入记忆文件;identity、persona 仍为占位内容,只有你主动安装才会覆盖对应分区,且仅动 identity + persona,不改动其他分区。自我记忆文本规模在资料中约为 61,903 字(9 章),人设约 2,482 字;说话风格统计来自 1,696 条官方确证语音(如句尾「呢」390 次、问句占比 52.1%、平均句长 25.5 字等)。

安装前会自动备份到 <记忆目录>/.packs-backup/<id>-<时间戳>/;卸载从备份恢复。是否「已安装」以包内容与当前分区的 hash 比对为准,手工改过会显示为未安装或用户自定义。

语音、气泡、表情包与技能(可选)

以下能力默认关闭,可按需开启:

  • 语音朗读:权重约 200 MB 可由插件「一键安装」放到磁盘;GPT-SoVITS 引擎约 27 GB 需自行安装,权重按 CUDA 编译,资料写明需 NVIDIA 显卡。inspect() 核对插件放入的 9 个文件(2 权重 + 6 脚本 + 1 参考音频),缺一则显示部分安装;卸载仅删这 9 个文件,不删引擎本体。
  • 汇报气泡:任务完成后可在对话末尾展示带头像的气泡;不依赖语音引擎,无引擎时仍可显示文字。关闭气泡可在配置中设置 voice.bubble: false。
  • 表情包:用户导入图片后按情绪分类,在合适时机自动发送。
  • 技能:在 ~/.dsh/skills/ 放置 SKILL.md 操作手册,可选带护栏的 run.mjs 执行。

安装与启用

资料中的 SkillHub 安装指引是:让 DeepSeek Harness 安装插件 1148462398-hub/dsh-elysia-memory,并由 Harness 按仓库说明完成配置(页面文案为「请安装 DSH 插件 1148462398-hub/dsh-elysia-memory。先读取..」,完整步骤以 Harness 执行结果为准)。请勿在未核对文档的情况下自行拼接未在资料出现的 dsh plugin add 命令行。

客户端相关能力(如侧边栏「语音」页)在 dsh.client 扫描时注册,首次装好含 client 的半边后需要重启一次 DSH,之后侧边栏入口才会稳定出现;面板状态条会提示「需重启生效」。

安装记忆包或修改记忆文件后,重启 DSH 可使注入层最干净地读到最新内容。

安全说明:插件以当前 DSH 进程权限访问本机文件与网络。安装前请阅读 GitHub 源码 与 MIT 许可证,确认路径、备份策略与可选语音下载行为符合你的环境策略。

典型用法

1. 在对话中安装爱莉希雅记忆包

主路径是通过工具调用(第一次 install 只返回计划,须 confirm:true 才写入):

memory_file_pack({action:"list"})
memory_file_pack({action:"preview", id:"elysia"})
memory_file_pack({action:"install", id:"elysia"})
memory_file_pack({action:"install", id:"elysia", confirm:true})
memory_file_pack({action:"uninstall", id:"elysia"})
memory_file_pack({action:"status"})

2. 在记忆网页中操作

浏览器打开 http://127.0.0.1:<端口>/dsh-shared-memory,在「记忆包」区域预览、安装或卸载。安装接口为 POST /api/packs/:id/install,请求体需 {confirm:true}。

3. 命令行(换电脑或 UI 异常时)

在插件目录下:

node scripts/install-pack.mjs list
node scripts/install-pack.mjs elysia
node scripts/install-pack.mjs elysia --yes
node scripts/install-pack.mjs elysia --preview
node scripts/install-pack.mjs elysia --uninstall

资料中的换机流程概括为:新电脑安装 DSH → 安装本插件 → 打开记忆网页安装 elysia 包 → 重启 DSH;包约 160 KB,随 npm 包分发,无需额外联网下载记忆包本身。

4. 可选语音资源

侧边栏进入「语音」页,使用「一键安装」下载并放置权重。若本机未装 GPT-SoVITS,页面会直接提示,避免下完权重才发现无法合成。

5. 查询沉淀的方法

遇到重复任务时,可让模型调用:

memory_file_method({action:"query", task:"…"})

按分类与质疑度返回索引路径、当前最佳方法及应尝试的替代做法数量(质疑度机制见 README「质疑度与最佳方法库」一节)。

适用场景与注意

适合谁

  • 需要跨会话、跨天保留用户偏好、纠错与自训经验的 DSH 用户。
  • 希望记忆落在本地磁盘、并具备双盘镜像与可手工编辑 Markdown 的场景。
  • 想要在通用记忆框架上,可选挂载爱莉希雅人设与语音表现的角色向开发者(记忆包与语音均可不装)。

需要注意

  • 镜像与主文件落在同一盘符时,插件会告警(镜像意义不大)。
  • 桌面端 dsh-app:// 访问本机端口偶发挂起时,资料建议以工具调用为主路径,网页为辅。
  • 语音为可选能力,依赖本机 GPU 与大体积引擎;气泡与文字汇报可不依赖语音。
  • Linux 用户应将资料中的 %USERPROFILE%、盘符示例换算为本机路径规则,并以 cordis.patch.yml 或 memory_file_maintain 为准。

结尾

dsh-elysia-memory 把「记住用户与共谋改进」做成一份全会话共享、可检索、可镜像的本地记忆,并把爱莉希雅相关的自我记忆、语音与 UI 增强做成可拆卸选项。若你要在 DSH 里减少重复交代、保留纠错与方法沉淀,可以从安装插件与熟悉 MEMORY.md 结构入手;角色包与语音按 README 默认关闭,按需再加即可。

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

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

Xiaoye