前言¶
在 DeepSeek Harness(DSH)里跑智能体时,会话上下文会随对话结束而清空。项目约定、工具链选择、上次排查的结论,如果只靠当次对话里的 system prompt 或人工复述,跨会话很难稳定复用。常见做法是自建笔记、RAG 或外部记忆服务,但往往要接网络、维护索引,还可能触发额外的模型调用。
下面介绍社区插件 dsh-memory-lite(维护者 Alexis-ray,分类:记忆)。它在本地用纯 Markdown 文件做长期记忆,按工作区目录隔离;不发起网络请求,也不自动调用模型。适合希望记忆落在磁盘、可读可改、且与 DSH 工具链直接集成的开发者。
这是什么¶
dsh-memory-lite 是面向 DeepSeek Harness 的工作区级长期记忆插件:同一路径下打开的会话共享同一套项目记忆;换目录则看不到该项目的记忆,除非条目保存为 global 作用域。每条记忆对应磁盘上的一个 Markdown 文件,带 YAML front matter,可用任意文本编辑器查看和编辑。
仓库:https://github.com/Alexis-ray/dsh-memory-lite
社区目录页:https://www.skillhub.cn/plugins/Alexis-ray/dsh-memory-lite
当前 package 版本为 0.1.0,许可证 MIT。DSH 社区目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;安装前请自行查看源码与许可证。插件在 DSH 进程权限下运行,vault 目录与记忆内容均落在本机。
核心功能¶
五个工具¶
智能体通过以下工具读写记忆(名称与行为以 README 为准):
| 工具 | 主要输入 | 说明 |
|---|---|---|
memory_save |
title(≤80 字符)、body、scope?(project | global)、tags?、confidence? |
默认 project;正文若匹配凭证类模式会被拒绝 |
memory_search |
query、scope?(both | project | global)、limit? |
词法打分:标题 ×3、标签 ×2、正文 ×1;中文按二元组匹配;默认 limit 8,最大 50 |
memory_get |
id |
返回完整记录;找不到会报错,不返回空结果 |
memory_list |
scope? |
仅标题索引,不读正文 |
memory_forget |
id |
将文件移到 .archive/,可手动移回恢复 |
memory_get 与 memory_forget 只能访问当前工作区可见的记忆及 global;其他工作区的 id 无法读取或归档。
会话启动时的标题索引¶
会话开始时,插件可向 system prompt 注入一段简短的「标题索引」(standing section),让智能体知道已有哪些记忆,而无需逐个读文件。注入内容强调:记忆是数据而非指令,正文须通过 memory_get 获取。可通过配置关闭或限制条数与字符预算(见下文)。
工作区隔离¶
项目键为 sha256(normalizePath(cwd)).slice(0, 12):normalizePath 会统一盘符大小写、将 \ 转为 /、合并重复分隔符并去掉末尾分隔符;不解析符号链接,因此重命名目录会视为新项目。global 记忆在所有工作区可见;可将 allowGlobalScope 设为 false 禁止写入 global。
设计取舍(README 已写明)¶
- 零网络:测试套件在运行时 stub
fetch、http.request等,断言无任何外呼。 - 无索引、无数据库:列表与搜索直接读
.md文件。 - 归档而非硬删:
memory_forget移入.archive/。 - 仅词法搜索:无 embedding,同义词召回较弱。
- 无更新工具:需保存新条目并 forget 旧条目。
环境与依赖¶
- DSH Desktop 2.0.18,
@deepseek-ai/dsh-*0.2.1-rc.2(engines.dsh限定为>=0.2.1-rc.2 <0.2.2) @deepseek-ai/cordis4.0.5- Node.js >= 20
- 从源码构建时需要 pnpm
若 DSH 升级超出上述 engines.dsh 范围,bundle 可能被跳过,需等插件更新范围(详见仓库 INSTALL.md)。
安装与启用¶
在指定 profile(例如 desktop)下注册插件,并会把 dsh-memory-lite 追加到 dsh.profile.bundles。若新建会话看不到 memory_* 工具,需重启客户端。
从 GitHub 直接安装:
dsh plugin --profile <name> add git+https://github.com/Alexis-ray/dsh-memory-lite.git
从本地检出安装(需先构建):
pnpm install
pnpm build
dsh plugin --profile <name> add <path-to-repo>
仓库已提交 lib/ 构建产物,从 git 安装通常无需本地 build。完整验证、升级与卸载步骤见 INSTALL.md(中文)。
磁盘布局与单条记忆格式¶
默认 vault 根目录为 <DSH_HOME>/memory-vault(未设置 DSH_HOME 时为 %USERPROFILE%\.dsh\memory-vault)。结构示意:
<vault>/
global/
<slug>-<id>.md
projects/
<key>/
project.json
<slug>-<id>.md
.archive/
<slug>-<id>.md
单条记忆示例(front matter + 正文):
---
id: 20261020-1730-ab12
title: This repo uses pnpm
scope: project
projectPath: c:/work/demo
tags:
- toolchain
- conventions
confidence: medium
createdAt: 2026-10-20T09:30:00.000Z
updatedAt: 2026-10-20T09:30:00.000Z
---
Install dependencies, run tests, and build with pnpm. Do not use npm or
yarn; the lockfile is pnpm-lock.yaml.
写入采用临时文件 + fsync + rename;超过 maxFileBytes(默认 65536)的条目会被拒绝而非截断。
配置项¶
在插件的 cordis.patch.yml 或 profile 里针对该插件 id 的 patch 中设置;未写的键使用默认值。
| 键 | 默认值 | 含义 |
|---|---|---|
vaultPath |
见上 | vault 根目录 |
injectStanding |
true |
是否向 system prompt 注入标题索引 |
standingMaxItems |
8 |
索引最多条数(最小 1) |
standingBudgetChars |
1200 |
索引字符预算(最小 200) |
allowGlobalScope |
true |
是否允许 memory_save 使用 scope: global |
redactSecrets |
true |
是否拒绝疑似凭证的正文 |
maxFileBytes |
65536 |
单文件最大字节(最小 1024) |
autoSavePolicy |
off |
hint 时注册引导智能体主动保存的 system 段落;off 不注册 |
典型用法¶
智能体侧没有固定 CLI,一般通过工具调用完成流程:
- 会话开始后,若启用了 standing,system 中会出现已有记忆的标题列表;需要细节时调用
memory_get。 - 要把约定写下来:调用
memory_save,title简短,body写清事实;仅跨项目共享时用scope: global。 - 回忆模糊关键词:调用
memory_search,必要时指定scope与limit。 - 浏览当前可见条目标题:调用
memory_list。 - 作废旧条目:调用
memory_forget;需要恢复时到 vault 的.archive/将文件移回原位置。
插件不提供「更新」工具:改内容应 save 新 id,再 forget 旧 id。
适用场景与注意¶
适合:希望在 DSH 内用文件型、可审计的长期记忆;强调离线、无自动模型调用;按仓库/工作目录隔离项目记忆,偶尔用 global 放通用偏好。
注意:
- 词法搜索不理解语义,同义词需靠标题/标签/正文用词覆盖。
- 重命名项目目录后,旧 key 下的记忆仍留在磁盘,但新目录下不会自动关联(
project.json记录的是旧路径)。 - vault 仅在本机,无内置跨机同步;需要时请自行同步目录。
- DSH 版本需落在
engines.dsh声明的区间内。
结尾¶
dsh-memory-lite 把 DSH 的长期记忆做成工作区作用域下的 Markdown vault:五个 memory_* 工具、可选的标题索引注入、归档式删除,以及测试保证的零网络行为。若你正在 DSH 生态里找「记忆」类插件,可从社区目录页或 GitHub README 对照安装命令与 INSTALL.md 完成启用。
- 目录页:https://www.skillhub.cn/plugins/Alexis-ray/dsh-memory-lite
- GitHub:https://github.com/Alexis-ray/dsh-memory-lite