前言¶
DeepSeek Harness (DSH) 采用插件化架构。在处理长周期任务时,对话上下文容易丢失,导致模型重复解释背景、遗忘之前的决策。dsh-plugin-memory 旨在解决这个问题。它让对话模型在执行任务时边干边记,将值得长期保留的信息持久化为 Markdown 文件,并在新会话中自动注入。该插件由 justhalfbit 维护,遵循 MIT 许可证。
安装与启用¶
安装前请确保已安装 DSH 0.1.2 及以上版本,且 pnpm 在系统 PATH 上。
- 使用官方安装命令:
dsh plugin --profile web add github:justhalfbit/dsh-plugin-memory
重启 `dsh web` 以生效。
- 记忆数据默认存储在
~/.dsh/memory目录。卸载时插件会保留该目录下的数据,如需清理请手动删除。
核心功能¶
该插件主要提供以下能力:
- 两层记忆结构:主记忆文件(存储 Facts、Decisions、Lessons、Preferences)和专题文件(存储深度笔记)。
- 模型边干边记:支持三档积极度(保守 / 平衡 / 积极),模型可主动调用工具保存信息。
- 后台静默蒸馏:可选在对话结束后静默提取记忆,不产生工具卡片,适合无人值守长任务。
- 按项目隔离:以工作目录为粒度,使用哈希编码目录名防止冲突。
- 纯 Markdown 存储:数据可读、可手编、可纳入版本控制。
- 设置面板:支持浏览器界面卡片配置和
settings.yaml配置,全部支持热更新。 - 完备护栏:包括内容哈希去重、条目数量上限、修剪顺序(手动条目最后淘汰)等机制。
存储结构与注入机制¶
记忆文件存储在 ~/.dsh/memory/projects/ 目录下。每个项目对应一个以路径哈希命名的子目录,内部包含:
memories.md:主记忆文件,按分类存储条目。topics/*.md:专题文件,存储深度笔记。
注入机制采用渐进式披露:
1. 主记忆:全量注入到系统提示中,受字符预算限制。
2. 专题索引:仅注入文件名和摘要,正文按需加载。
3. 去重:基于渲染体 SHA-1 防止重复注入,提升 KV Cache 效率。
工具与配置¶
插件提供 7 个核心工具:
memory_save:保存一条记忆。memory_search:关键词检索。memory_forget:删除条目。memory_read:读取专题文件。memory_write_topic:创建或重写专题文件。memory_delete_topic:删除专题文件。memory_list:列出所有条目和专题。
配置项支持热更新,可通过浏览器界面或 ~/.dsh/settings.yaml 中的 memory 节配置。主要字段包括:
enabled:总开关。proactivity:积极度档位。autoDistill:是否开启后台蒸馏。injectBudgetChars:注入提示的字符预算。distillMinChars:触发蒸馏的最小字符数。cooldownTurns:蒸馏冷却轮数。maxEntriesPerCategory:每类条目上限。
注意事项¶
使用该插件时需注意以下限制:
- 并发写入:跨进程并发写同一项目为「最后写胜」的弱保证,进程内严格串行。
- 会话隔离:记忆按项目共享,不按会话隔离。同一项目的任何会话都能改写其它会话的条目。
- 蒸馏权限:自动蒸馏只能新增条目,以及改写/删除它自己创建的
auto条目,无法改写manual条目。 - 错误处理:蒸馏失败的窗口不重试,这是有意的成本控制策略。