前言¶
DSH 的插件生态允许在宿主内挂载更多能力。长对话、跨会话任务中,模型经常会缺少之前确认过的上下文:任务状态、用户偏好、项目约定、已经走过的流程等,导致重复提问或重复探索。
dsh-layered-memory 解决的是这类记忆缺失问题。它是一个 DeepSeek Harness 记忆插件,会在后台把对话沉淀为分层记忆,并在模型下一步执行前,把相关记忆注入上下文。下面介绍它的能力、安装方式、验证步骤和注意事项。
这是什么¶
dsh-layered-memory 是面向 DeepSeek Harness 的 L0~L3 分层蒸馏记忆插件,由 JunNanLYS 维护,许可证为 MIT。
它的核心路径是:
1、捕获对话,形成 L0。
2、抽取原子记忆,形成 L1。
3、整合场景块,形成 L2。
4、蒸馏核心画像或团队方法论,形成 L3。
5、在模型每一步前自动召回相关记忆,并注入上下文。
简单来说,它把“对话里出现过的信息”变成可复用、可召回、可注入的记忆资产。
核心能力¶
后台分层蒸馏¶
插件会在后台自动完成以下流程:
- L0:捕获原始对话。
- L1:抽取原子记忆。
- L2:整合场景块。
- L3:蒸馏核心画像、团队方法论等更稳定的记忆内容。
这个过程不需要用户每一步手动整理记忆。
自动召回注入¶
在模型每一步前,插件会把相关记忆注入上下文。
在界面中,这类注入会以“上下文注入 · memory”消息行呈现,方便确认记忆是否生效。
注入过程有长度预算与时间预算。超限会截断,超时会跳过,目标是避免拖慢对话。
三个记忆工具¶
插件提供以下三个记忆工具:
memory_searchconversation_searchmemory_read_scene
它们可用于主动查找记忆、对话内容或场景块。
会话级记忆档位¶
插件支持会话级记忆档位,包括:
- 日常
- 工作
- 智能
- 关闭
同时支持只写不读开关,用于控制当前会话是否只沉淀记忆而不注入记忆。
去重与重置¶
插件支持同会话去重:已经注入过的记忆不会重复注入。
当上下文被 /compact 压缩或清空时,会自动重置,使相关记忆有机会重新进入上下文。
时效加权¶
召回排序支持时效加权,配置项为 recall.decayHalfLifeDays。
该值可调,设为 0 表示关闭时效加权。
成本记录¶
蒸馏过程中发生的 LLM 调用 token 成本会写入 SQLite 明细表。
在设置页的“成本”Tab 中可查看相关记录。成本记账失败时只告警,不会阻塞蒸馏。
数据目录¶
记忆数据写入:
~/.dsh/memory/
其中包含以下目录和文件:
conversations/records/scenes/memory.db
安装与启用¶
先确认环境满足 Node 版本要求:
Node >= 22.16
安装目标是 DSH 的 web Profile。按文档要求,只执行指定命令,不要修改其他 Profile。
方式一:使用 npx 安装¶
适合不预装 dsh CLI 的情况:
npx -y @deepseek-ai/dsh plugin --profile web add dsh-layered-memory
这条命令会通过 npm 执行官方 CLI,并将插件添加到 web Profile。
方式二:使用已安装的 dsh CLI¶
如果你已经安装了 dsh CLI,可以直接执行:
dsh plugin --profile web add dsh-layered-memory
如果当前 dsh 是 pnpm 转发器,并且本机未安装 pnpm,先安装 pnpm:
npm i -g pnpm
dsh plugin --profile web add dsh-layered-memory
方式三:使用仓库或本地路径¶
适合调试或本地开发:
dsh plugin --profile web add https://github.com/JunNanLYS/dsh-layered-memory
或者:
dsh plugin --profile web add /path/to/dsh-layered-memory
从源码安装¶
如果要从源码构建并安装:
git clone https://github.com/JunNanLYS/dsh-layered-memory
cd dsh-layered-memory
npm install
npm run build
dsh plugin --profile web add .
安装后验证¶
安装完成后,先检查数据目录:
~/.dsh/memory/
应出现以下内容:
conversations/
records/
scenes/
memory.db
同时检查 DSH 界面:
- 设置页出现“记忆”页面。
- 输入栏出现档位 pill。
确认完成后,需要手动重启 DSH Web Host。不要替用户关闭或重启正在运行的 DSH。
典型用法¶
安装并重启后,可以按下面方式使用。
1、开启会话,正常和模型对话。
2、插件在后台完成 L0 捕获、L1 原子记忆、L2 场景整合、L3 画像蒸馏。
3、模型下一步执行前,插件会把相关记忆注入上下文,并在界面中显示“上下文注入 · memory”消息行。
4、如果模型需要主动查记忆,可以调用:
memory_search
conversation_search
memory_read_scene
5、在输入栏或设置中切换会话级记忆档位:
日常
工作
智能
关闭
6、如果只想沉淀记忆,不希望当前会话被记忆内容影响,可以开启只写不读开关。
7、如果希望更偏向较新的记忆,可以调整:
recall.decayHalfLifeDays
设为 0 时关闭时效加权。
8、如果上下文被 /compact 压缩或清空,插件会自动重置注入状态,后续可重新召回相关记忆。
卸载¶
如需卸载:
dsh plugin --profile web remove dsh-layered-memory
然后重启 DSH Web Host。
卸载后,数据仍保留在:
~/.dsh/memory/
如果确认不再需要,可以手动删除整个目录。
适用场景¶
dsh-layered-memory 比较适合以下情况:
- 使用 DSH
webProfile 的开发者或用户。 - 希望在长对话中保留关键上下文。
- 希望跨会话复用之前确认过的信息。
- 希望减少重复提问、重复解释和重复探索。
- 需要查看蒸馏 LLM 调用的 token 成本。
- 需要在不同会话中切换记忆策略,例如日常、工作、智能或关闭。
注意事项¶
1、环境要求:需要 Node >= 22.16。
2、安装目标:只面向 DSH 的 web Profile 安装,不要顺手修改其他 Profile。
3、权限影响:插件运行在 DSH 宿主环境中,会使用当前 dsh 进程可访问的会话、模型调用和文件系统权限。安装前建议检查源码、依赖和 MIT 许可证。
4、数据位置:记忆数据写入 ~/.dsh/memory/,其中可能包含对话沉淀出的记忆内容。敏感项目下要注意目录权限和清理策略。
5、重启要求:安装或卸载后需要手动重启 DSH Web Host,不要替用户关闭或重启正在运行的 DSH。
6、卸载清理:卸载插件不会自动清理 ~/.dsh/memory/ 下的数据。如果不需要,手动删除整个目录即可。