前言¶
DeepSeek Harness(DSH)原生只自动加载指令文件链(如 AGENTS.md / CLAUDE.md),不加载 memory/ 目录。在指令文件中写「会话开始先读记忆」依赖模型的自觉,是概率性的。dsh-memory-loader 插件把这一步变成 harness 级确定性注入,确保每个新会话开始时自动加载两级记忆。
插件定位¶
这是一个 DeepSeek Harness(DSH)确定性记忆注入插件。它通过 agent/pre-step seam 在每个新会话开始时,自动注入两级记忆——全局 ~/.dsh/memory/ 和项目 <cwd>/memory/ 下的 MEMORY.md 以及当日 YYYY-MM-DD.md。该插件不依赖模型「自觉去 read」,且支持独立的字节预算控制。
核心功能¶
- 两级记忆注入:自动加载全局和项目的长期记忆(
MEMORY.md)及当日笔记(YYYY-MM-DD.md)。 - 自动注入当日笔记:根据当前日期匹配
YYYY-MM-DD.md文件。 - 独立字节预算控制:总预算 16KB,单文件上限 64KB。
- 会话注入去重机制:通过标记检测并避免重复注入。
- Markdown 内容转义安全:防止记忆内容逃逸帧。
- 超限处理策略:文件超限直接丢弃或截断。
- 只读不写:插件仅负责读取记忆,不触碰写回操作。
安装与启用¶
推荐使用 bundle 方式安装。在终端执行以下命令:
dsh plugin --profile web add https://github.com/wuruihi/dsh-memory-loader/archive/refs/heads/main.tar.gz
若需使用 file:// 挂载方式,需将 dsh-memory-loader.mjs 放入 ~/.dsh/profiles/web/ 目录,并在 ~/.dsh/profiles/web/cordis.patch.yml 中追加配置。变更会由 watchUserPatches 热应用,无需重启。
配置说明¶
插件支持通过配置项控制预算:
| 键 | 默认值 | 说明 |
|---|---|---|
maxBytes |
16384 | 注入帧总预算(字节),独立于 AGENTS.md 链的 64KB |
maxSourceBytes |
65536 | 单文件读取上限(字节),超限视为文件不存在 |
预算策略与官方 dsh-agent-instructions 一致:超限时先丢弃最不特定的文件,最后截断最特定的文件并附提示。
典型用法¶
安装完成后,插件会自动在每次新会话开始时注入记忆。用户无需在指令文件中手动添加读取记忆的逻辑,记忆内容会作为 durable user message 紧跟用户首条 prompt 之前注入。
适用场景与注意¶
该插件适合需要长期维护上下文连贯性、希望记忆管理自动化的开发者。使用前请确认源码与许可证,确保符合项目安全要求。插件以当前 DSH 进程权限运行,应确保目录读写权限正确。