持久记忆插件(memory)
August 17, 2026 · View on GitHub
为 dsh 会话提供跨会话持久记忆的预构建插件。安装只使用仓库根目录 dist/ 下的 tarball,不依赖本机 harness 源码路径。版本对齐 DeepSeek Harness 0.1.0-rc.5。
| 包 | 角色 |
|---|---|
bundle/(dsh-plugin-memory) | 组合包:声明 dsh.bundle,patch 层插入三行插件 |
dsh-memory/ | 服务定义(ctx.memory):put/search/list/remove/consolidate 抽象接口与词汇 |
dsh-memory-storage/ | 本地提供方:memory 存储域记录,确定性 token 重叠召回评分 |
dsh-tool-memory/ | 模型工具:memory_write/memory_search + 每个用户 pre-step 自动召回 |
dsh-memory-consolidate/ | 自动整理:压缩成功或空闲静默期后合并重复条目,另有 /memory 指令 |
行为摘要
- 写入与召回:模型经
memory_write记忆事实、经memory_search查询;每个用户 step 会自动召回评分达标的条目并注入上下文。 - 自动整理:每次成功的会话压缩(
compaction/end)之后、以及主机连续 30 分钟无新 turn 之后,自动把内容被包含在另一条目中的条目合并进保留条目(标签取并集)。手动输入/memory随时整理并查看统计。 - 数据位置:
$DSH_HOME/storages(存储域 JSON 后端)。
与内置记忆的关系
较新的 harness 构建在 dsh-base 组合包里已内置这三行(行 id:memory-storage/tool-memory/memory-consolidate)。本组合包的 patch 层先定向禁用内置三行,再以 memory-storage-plugin/tool-memory-plugin/memory-consolidate-plugin 插入同包名的本层行——Loader 对跨层重复 id 报错,不能直接复用 id,也不能只靠「替换」;插入的新行由 profile 的直接 tarball 依赖解析。未内置记忆的构建里,三条禁用补丁找不到目标、以 patch: entry ... not found, skipping 的 warning 跳过,insert 照常生效。两种组合下都只激活一份,不会重复注册服务。
安装
在仓库根目录(dist/ 所在处)执行。demo 可换成任意已有或新建的 profile 名。不要传入 harness 源码目录或 file: 路径。
dsh plugin --profile demo add \
./dist/dsh-plugin-memory-0.1.0.tgz \
./dist/deepseek-ai-dsh-memory-0.1.0-rc.5.tgz \
./dist/deepseek-ai-dsh-memory-storage-0.1.0-rc.5.tgz \
./dist/deepseek-ai-dsh-tool-memory-0.1.0-rc.5.tgz \
./dist/deepseek-ai-dsh-memory-consolidate-0.1.0-rc.5.tgz
验证层级:
dsh --profile demo --dump-config
# 输出中应包含 "# == dsh-plugin-memory" 层:
# - 三条 "disabled: true" 的定向补丁(id 为 memory-storage / tool-memory / memory-consolidate)
# - 三条插入行(id 为 memory-storage-plugin / tool-memory-plugin / memory-consolidate-plugin)
验证功能(dsh --profile demo --port 3081 启动后,在对话中):
- 对模型说「请记住:我的验证饮品是正山小种」——模型调用
memory_write。 - 新会话问「我的验证饮品是什么?查一下记忆」——模型调用
memory_search或召回注入直接给出答案。 - 输入
/memory——返回「Consolidated memory: merged 0 and updated 0 of N entries. N entries remain.」格式的统计。
卸载:
dsh plugin --profile demo remove \
dsh-plugin-memory \
@deepseek-ai/dsh-memory @deepseek-ai/dsh-memory-storage \
@deepseek-ai/dsh-tool-memory @deepseek-ai/dsh-memory-consolidate