前言¶
在 DeepSeek Harness(dsh)里,跨会话信息如果只靠上下文窗口承载,新会话开始后容易丢失:项目偏好、历史教训、用户约定等需要反复说明。已有做法通常是手工维护笔记,或在提示词里反复贴背景;前者依赖人工整理,后者容易占用较多 token 并干扰缓存。
DSH 的插件生态强调以插件扩展能力。社区目录是独立站点,并非 DeepSeek / 幻方官方应用商店。下面介绍 Towzai 提供的 dsh-memory:一个面向 dsh 的跨会话记忆插件。
这是什么¶
dsh-memory 是 DeepSeek Harness 插件,MIT 许可证,包名为 @towzai/dsh-memory,仓库为 Towzai/dsh-memory。
它解决的是 dsh 会话之间记忆不连续的问题:把记忆写入 YAML 文件,在后续会话中按需要检索和注入,并保留完整细节供查看。
插件默认使用本地 ollama 和 embedding 模型;没有 ollama 时,会降级为纯关键词检索。
核心功能¶
- 提供六个工具:
remember、recall、view、list、forget、pin。 - 记忆存储在 YAML 文件中,默认文件为
memory.yaml。 recall支持关键词 + 本地ollamaembedding 的混合检索,采用 RRF 融合。- 默认 embedding 模型是
qwen3-embedding:0.6b,可用环境变量DSH_MEMORY_EMBED_MODEL覆盖。 - 注入时标题优先:会话中先看到带
id的标题,完整内容通过view展开。 - 支持
session与auto两级注入:session级固定记忆在会话第一步注入一次,后续随历史携带;auto级记忆按话题检索,不污染固定记忆注入集。 - 注入记忆带来源标注前缀
Retrieved memories from the memory store (not conversation history),避免被误认为对话历史。 - 检索匹配包含泛词降权、关键词至少 2 词命中、检索门控跳过测试性话语。
- 数据安全包含串行写入队列、损坏文件隔离备份、原子写入、
mtime缓存失效。
安装与启用¶
先从 GitHub 安装:
dsh plugin --profile <name> add github:towzai/dsh-memory
也可以用本地路径:
dsh plugin --profile <name> add ./dsh-memory
README 还列出 npm 包方式(如已发布):
dsh plugin --profile <name> add @towzai/dsh-memory
如果首次从 git 安装时被 pnpm 拒绝运行 prepare,按提示在该 profile 的 pnpm-workspace.yaml 中加入:
allowBuilds:
'@towzai/dsh-memory': true
插件依赖本地 ollama 实例和 embedding 模型。默认模型为 qwen3-embedding:0.6b,可用 DSH_MEMORY_EMBED_MODEL 覆盖。没有 ollama 时自动降级为纯关键词检索。
典型用法¶
下面是插件提供工具的职责:
1、remember:保存记忆,字段包括 content、title、category、tags、importance、forceInject、injectLevel、source。
2、recall:按关键词 + embedding 混合检索 top-N 结果。
3、view:按 id 展开一条记忆的完整内容。
4、list:查看标题列表,支持分类、标签、重要性过滤;full 可看全文。
5、forget:软删除记忆,标记 retired 并保留历史。
6、pin:切换 forceInject,用于让行为铁则始终常驻。
一条记忆的大致结构如下:
- id: MEM-20260814-001
title: "总结标题(缺省自动推导)"
content: "..."
category: preference | project | lesson | fact
tags: [tag1, tag2]
importance: high | normal | low
created: 2026-08-14
updated: 2026-08-14
source: user | agent | conversation
retired: false
forceInject: false
injectLevel: session | auto
vector: [...]
这里 vector 是写入时自动计算的 embedding,用于语义检索。
适用场景与注意¶
适合在 dsh 中需要跨会话保留用户偏好、项目约定、历史教训或固定行为规则的场景。如果依赖本地 ollama 语义检索,需要保证本地实例和模型可用;如果只是关键词检索,也可以无 ollama 降级运行。
使用前建议检查源码和依赖,因为插件代码会在当前 dsh 进程权限下运行。该插件许可证为 MIT,安装和分发前应按团队规范审阅代码。
注意:
- 记忆文件是私有数据,建议加入
.gitignore,不要提交到仓库。 - 更换 embedding 模型会使已存向量失效;维度不匹配会被检测并告警。
- 插件针对 dsh
v0.1.0-rc.5开发,peerDependencies版本范围可能需要随 dsh 升级调整。 - npm 安装方式取决于包是否已发布;如使用 npm 方式,请以实际发布状态为准。
结尾¶
dsh-memory 把“记住、检索、查看、管理”放进 dsh 的工具调用链路里,用 YAML 文件承载记忆,用标题优先和两级注入控制上下文占用。
目录页:
- https://www.skillhub.cn/plugins/Towzai/dsh-memory
GitHub:
- https://github.com/Towzai/dsh-memory