前言¶
在 DSH 里做带上下文的对话或智能体时,常见做法是把「记忆」交给向量库或托管服务:数据格式不透明,召回过程也难对照。若你希望记忆可读、可编辑、可备份,并且完全落在本机磁盘上,社区插件 DSH Memory Vault(npm 包名 dsh-longterm-memory,维护者 bufan528)提供另一条路径:以 Obsidian 兼容的 Markdown 为唯一事实来源,配合侧边栏管理页、按 token 预算的召回,以及可崩溃恢复的变更日志。
下面介绍它是什么、能做什么,以及如何安装与上手。
这是什么¶
DSH Memory Vault · 长期记忆 是面向 DeepSeek Harness(DSH)的「记忆」类插件。它把长期记忆写成带 YAML frontmatter 的 .md 文件,放在你指定的 vault 目录;派生索引 .dsh-memory/index.json 可随时删除并由 Markdown 重建。插件注册一级侧边栏入口(非聊天标签页),向模型暴露四个工具,并在会话组装时按预算注入常驻记忆段。
当前公开版本为 0.1.4(MIT 许可证),项目状态为预览版(Preview);要求 DSH >=0.2.1-rc.2 <0.2.2、Node.js >=20。GitHub 仓库:bufan528/dsh-longterm-memory;社区目录页:skillhub.cn 插件条目。
核心功能¶
存储与索引¶
- Markdown 为唯一事实来源:无专有格式、无单独导出步骤;可用 Obsidian 或任意文本编辑器阅读、双链与备份。
- 索引可丢弃:
.dsh-memory/index.json为派生数据,丢失后可从 Markdown 完整重建。 - Obsidian 兼容:仓库可含
.obsidian/、[[wikilinks]]、人类可读的Index/等结构(详见仓库文档docs/storage-format.md)。
模型侧接口¶
插件向模型注册四个工具(可通过配置关闭):
| 工具 | 作用(据 README) |
|---|---|
memory_search |
词法排序检索,支持类型/状态/标签过滤与 token 预算 |
memory_get |
读取单条记忆 |
memory_save |
写入记忆;会拒绝凭据类内容 |
memory_forget |
遗忘/退役相关记忆 |
自动注入与 memory_search 共用同一召回引擎;注入仅使用当前事实,显式召回可包含已标注为历史的退役记忆。
管理界面与生命周期¶
- 一级侧边栏页面:总览、检索、详情、管理、收件箱、设置等页签;管理页通过本机 HTTP RPC 与 Host 通信(仅回环 / 受信主机)。
- 记忆生命周期:状态包括
pending → active → stale / superseded / archived / conflict;置信度low / medium / high。低置信度与敏感内容进入 收件箱,需人工 确认入库 或 拒绝(0.1.3 起收件箱操作已修复)。 - 自动提取:在真实
turn/end边界做本地规则候选提取;可选的模型辅助提取默认关闭(enableLlmExtraction: false)。 - 冲突与合并:矛盾事实并排保留;去重、补充、矛盾有确定性合并规则;冲突页支持 keep / merge / both。
- 历史与崩溃安全:变更写入 journal(含前后摘要、原因、时间戳);写前 outbox 用于崩溃恢复;单文件原子写、文件锁与乐观 checksum 并发控制。
隐私与本地性¶
默认无遥测、无外联网络请求;Host 侧不依赖 @deepseek-ai/* 运行时包,仅使用传入的 Cordis context。除非开启模型辅助提取,否则不会把回合文本发给外部 Provider。
安装与启用¶
DSH 生态采用「一切皆插件」;DSH 插件市场(awesome-dsh-plugin.com)、dsh.works 社区注册表与应用内 插件市场(dshmarket)为独立社区目录,与 DeepSeek / 幻方无官方从属关系。本插件已列入上述目录(2026-10-19 收录,dsh.works 为 verified)。
任选一种安装方式:
方式 A — 应用内插件市场(桌面端推荐)
在 DSH 桌面应用打开 插件市场 / Plugin Market,搜索「长期记忆」或「DSH Memory Vault」,安装后按提示重启。
方式 B — npm(CLI)
dsh plugin --profile web add dsh-longterm-memory@latest
README 亦给出不带 profile 的形式:dsh plugin add dsh-longterm-memory@latest。使用 @latest 可安装当前最新发布版(文档记载为 0.1.4)。
方式 C — GitHub Release 的 tarball
gh release download --repo bufan528/dsh-longterm-memory --pattern "*.tgz" --dir .
dsh plugin --profile web add .\dsh-longterm-memory-0.1.4.tgz
(无 gh 时可从 最新 Release 手动下载。)
安装后打开 Web UI,在侧边栏进入 长期记忆 / Long-term Memory,选择或初始化 vault 目录。若未配置 vaultPath,插件会初始化默认位置(Windows 文档记载为 ~/Documents/DSH Memory);测试或隔离数据时建议在 profile 中显式指定路径。
可在 profile 的 cordis.patch.yml 中预先写入插件配置,例如:
- id: longterm-memory
name: dsh-longterm-memory
config:
vaultPath: 'D:/path/to/DSH Memory'
language: zh
典型用法¶
按官方「快速开始」,流程可概括为:
- 安装插件并打开侧边栏管理页。
- 点击 初始化 / Initialize,选择目录(已有 Obsidian vault 也可直接使用)。
- 通过 新建 / New 手工建记忆,或依赖回合结束时的本地规则自动提取;低置信度条目出现在 收件箱 / Inbox,确认后写入 active(
low会提升为medium),拒绝则不写文件。 - 在对话中提出与记忆相关的问题:插件注入常驻记忆段,模型可调用
memory_search等工具获取排序后的命中。 - 在 设置 / Settings 调整 token 预算、逐步召回、提取开关与界面语言(
zh/en)。
记忆类别包括 profile、preference、project、project-state、decision、knowledge、experience、task 等;仓库目录结构见 README「仓库结构」一节。
常用配置项(均可选,默认值见下表;完整列表在 src/host/config.ts,通过 cordis.patch.yml 的 config 覆盖):
| 键 | 默认 | 含义 |
|---|---|---|
vaultPath |
自动发现 / 初始化 | 记忆仓库绝对路径 |
language |
zh |
界面语言(zh / en) |
enableTools |
true |
是否暴露四个模型工具 |
enablePromptSection |
true |
是否注入常驻记忆段 |
standingBudgetTokens |
700 |
常驻段 token 上限 |
standingMaxItems |
12 |
常驻段条数上限 |
recallBudgetTokens |
600 |
单次召回 token 上限 |
recallMaxItems |
8 |
单次召回条数上限 |
enablePerStepRecall |
false |
逐步注入检索记忆 |
enableAutoExtraction |
true |
回合结束时本地规则提取 |
enableLlmExtraction |
false |
模型辅助提取(使用你在 DSH 配置的 Provider) |
redactSecrets |
true |
拒绝凭据类候选 |
sensitiveNeedsConfirmation |
true |
敏感类别需人工确认 |
maxCandidatesPerTurn |
5 |
每回合提取候选上限 |
管理页还可通过 RPC 预览将注入的文本(如 previewStanding、previewRecall),便于核对模型实际收到的内容。
适用场景与注意¶
适合谁
- 希望长期记忆以明文 Markdown 留存、并用 Obsidian 或 Git 做版本管理的 DSH 用户。
- 需要可审计的召回预算(token/条数上限)和收件箱人工把关,而不是黑盒向量库一键写入的场景。
- 在意本地优先、默认无遥测与无云端同步的部署方式。
使用前请知悉
- 插件以 当前 DSH 进程的权限 读写 vault 与 journal;安装前请阅读 源码仓库 与 MIT 许可证,确认路径与敏感内容策略符合你的环境。
- 项目为 预览版,API 与存储格式仍可能变化;
engines.dsh限定在0.2.1-rc.2至0.2.2之前,不支持0.2.0-rc.2。 - 注入内容在设计上被包装为不可信数据而非指令,但模型仍可能误用记忆;凭据类内容会在入库前拦截,敏感类别默认需确认。
- 文档记载主要验证平台为 Windows;其他平台遵循 Node 路径规则,自行验证为宜。
结尾¶
DSH Memory Vault 把「Agent 记忆」收束成本机 Markdown vault:索引可重建、召回有预算、变更有 journal,并在侧边栏完成检索、收件箱与冲突处理。若你在 DSH 里需要可拥有、可编辑的长期记忆,可从社区目录或 npm 安装 dsh-longterm-memory@latest,再按快速开始初始化 vault 与预算。