前言¶
DeepSeek Harness(dsh)把系统提示词的装配交给 Cordis 插件链,但默认并没有「全局记忆」这一层:全局 AGENTS 只认 ~/.dsh/AGENTS.md,工作区级也只跟项目目录走;你在 Codex、Claude Code 等工具里维护的 CLAUDE.md、AGENTS.md 或知识库仓库里的 markdown,dsh 不会自动去读。
社区里也有偏「记忆引擎」的插件——自动吸收、检索、蒸馏,往往还要配服务和数据库。若你已经有写好的规则、长期记忆或精选知识库,只是希望每次开 dsh 会话时这些内容默认出现在系统提示词里,更重的那条路未必合适。
下面介绍 dsh-memory-snapshot(维护者 yzx4036,GitHub:yzx4036/dsh-memory-snapshot):零依赖的轻量快照注入插件,把指定 md 文件或目录在每次会话装配时全文带进 system prompt,文档留在原路径,不迁文件、不复制副本。
这是什么¶
一句话:你在配置里列出的本地 markdown(或目录下的 *.md),会在 dsh 每次会话装配系统提示词时注入,跨工作区可生效(需绝对路径或 ~)。
插件本体约 150 行,无数据库、无写入通道、不做检索蒸馏;改文件后下次会话即生效。要求 dsh 0.2.x(README 写明实测 0.2.0-rc.2;更早版本对 section 做不可关闭的 {{变量}} 插值,记忆文件含 {{名字}} 可能导致会话失败)。
能做什么,不能做什么¶
能做的¶
- 多路径注入:
files支持单个 md、多个路径,或目录(目录按dirDepth收集*.md,支持~)。 - 体积控制:单文件上限
maxBytes(默认 3000 字节,UTF-8 截断并回退到换行边界);合计上限totalMaxBytes(默认 0 表示不设总上限)。 - 可读性与可观测:可选剥离 YAML front-matter(
stripFrontMatter);快照头与文件头可带时间信息(freshness);读不到的项可标注原因或skipMissing静默跳过;注入内容会进 Trajectory 日志。 - 只读注入:dsh 不会写回这些文件;模型也没有插件提供的写入工具。
不能做的¶
- 不会自动记录对话,文件需自行维护。
- 全文注入,内容过多会消耗 token,适合 KB 级精选内容,不适合当通用记忆引擎。
安装与启用¶
安装前请自行查看仓库源码与 MIT 许可证;插件随 dsh 进程权限读盘,路径应只指向你信任的内容。
两条路径二选一,不要同时装两层(同 id 会报 duplicate loader entry id)。
A. dsh plugin add(profile 级)
dsh plugin --profile <你的profile> add dsh-memory-snapshot
镜像未同步或离线时,README 给出的 GitHub 直装方式为:
dsh plugin --profile <你的profile> add github:yzx4036/dsh-memory-snapshot
卸载:
dsh plugin --profile <你的profile> remove dsh-memory-snapshot
B. node install.mjs(home 级,免注册表)
在插件仓库目录执行:
node install.mjs
可选:--profile headless、--files A.md,B.md、--verify、--update、--uninstall;跨层已有同名条目时可用 --force 跳过预检(见 README)。
装完后无需额外「启动」步骤,后续每个 dsh 会话都会按配置注入。
配置与典型用法¶
记忆源写在 dsh 的 Cordis 补丁配置里。换路径时改 memory-snapshot 条目下的 files,重启 dsh 后生效。README 说明 profile 级可改 ~/.dsh/cordis.patch.yml;install.mjs 默认写入 home 级配置,配合绝对路径可实现跨工作区。
验收会话是否带上快照,可用:
dsh --profile headless "你的记忆快照里有什么?"
常用配置项(均以 README 为准):
| 配置项 | 含义 |
|---|---|
files |
路径清单,默认 ['./MEMORY.md'];跨工作区请用绝对路径或 ~ |
maxBytes |
单文件注入上限,默认 3000 |
totalMaxBytes |
全部文件合计上限,默认 0(无总上限) |
dirDepth |
目录递归深度,默认 1 |
skipMissing |
默认 false(缺失项在注脚列出);true 静默跳过 |
freshness |
默认 true,快照与文件带时间信息 |
stripFrontMatter |
默认 true,剥离 YAML front-matter |
order |
section 顺序,默认 50 |
marker |
标记前缀,默认 MEMORY-SNAPSHOT |
相对路径按 dsh 启动目录解析,会变成「每个工作区各找各的」;若要任意目录启动 dsh 都带同一份记忆,需 home 级安装且 files 用绝对路径或 ~。
原理简述¶
函数式 Cordis 插件:通过 inject = ['systemPrompt'] 声明注入点;配置校验不依赖 zod;text 由 provider 在每次装配时重读文件。更多结构说明见仓库内 docs/architecture.md。
适用场景与注意¶
更适合:已有稳定 markdown 记忆/规则/小型知识库;headless、批量或无人值守场景,希望记忆默认在场,而不是每次手动 @ 读文件。
用处有限:只偶尔手动用 dsh,且每次都口头让模型读文件——插件的自动注入优势不明显。
版本与生态:dsh 仍为开发者预览版,升级前请查阅 breaking changes。社区插件目录(如 skillhub.cn)为独立站点,与 DeepSeek / 幻方无官方从属关系。
链接¶
- 目录页:https://www.skillhub.cn/plugins/yzx4036/dsh-memory-snapshot
- 源码与文档:https://github.com/yzx4036/dsh-memory-snapshot