DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
M

dsh-memory-loader

Memory Loader

为 DeepSeek Harness 提供确定性的两级记忆注入:全局和项目 MEMORY.md 以及今天的笔记,会自动加载到每个新会话中。v1.3.1 修复了 session-format-v4 的来源归属问题(DSH 0.2.0 桌面版拒绝已弃用的 kind:"plugin" 包装器,导致每个会话失败)。v1.3.0 默认将日

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:wuruihi/dsh-memory-loader#ef8b56f7d55613cfcbdebe2b2a4a41aa0920fea5
README兼容性版本

说明

为 DeepSeek Harness 提供确定性的两级记忆注入:全局和项目 MEMORY.md 以及今天的笔记,会自动加载到每个新会话中。v1.3.1 修复了 session-format-v4 的来源归属问题(DSH 0.2.0 桌面版拒绝已弃用的 kind:"plugin" 包装器,导致每个会话失败)。v1.3.0 默认将日记日志作为单行指针注入(dailyLogMode: pointer|full|off),使流程记录不再与 MEMORY.md 索引争夺空间;v1.2.0 限制了日记日志大小,并报告被跳过的超大文件。

兼容性与来源证明

Memory Loader 以 dsh-memory-loader 发布,当前版本为 1.3.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/10/8

版本

1.3.1stable
2026/10/8
1.0.0stable
2026/8/24

相关插件

正在加载相关插件…

最新版
1.3.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/8
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 memory-context 分类下经过校验的插件。

Experimental Session Search@deepseek-ai/dsh-experimental-session-search为 Agents 提供搜索和读取当前工作区早期会话的工具。Hindsight Coding Agents@vectorize-io/hindsight-coding-agents面向编程代理的仅反思式 Hindsight 长期记忆(可插拔支持多种运行框架:opencode、……),自动在后台导入(无需设置 CLI)。Contextdsh-context用于上下文洞察和管理的 DeepSeek Harness 插件,提供上下文仪表板和上下文命令,帮助了解上下文的构成及其演变过程。Memory Plugin@openviking/dsh-memory-plugin适用于 DeepSeek Harness 的 OpenViking 记忆与上下文套件

README

dsh-memory-loader

DeepSeek Harness(DSH)确定性记忆注入插件:每个新会话开始时,把两级记忆自动注入上下文——不依赖模型「自觉去 read」,对齐并超越 Claude Code auto-memory 的效果,且预算与层级可控。

English summary: a DSH plugin that deterministically injects your two-level memory (global ~/.dsh/memory/ + project <cwd>/memory/, each MEMORY.md plus today's YYYY-MM-DD.md) into every new agent session via the agent/pre-step seam, with an independent byte budget.

为什么需要它

DSH 原生只自动加载指令文件链(AGENTS.md / CLAUDE.md),不加载 memory/ 目录;指令文件里写的「会话开始先读记忆」依赖模型自觉,是概率性的。本插件把这一步变成 harness 级确定性注入。

注入内容与顺序(broad → specific)

  1. ~/.dsh/memory/MEMORY.md(全局长期)
  2. ~/.dsh/memory/YYYY-MM-DD.md(全局当日,若存在)
  3. <cwd>/memory/MEMORY.md(项目长期,若存在)
  4. <cwd>/memory/YYYY-MM-DD.md(项目当日,若存在)

cwd 取 agent.session.header.cwd,不硬编码任何项目路径。

内容策略:什么值得占用「每个会话」的槽位

注入是每次会话都要付的成本,而会话开始时任务还没出现——所以判据不是"有没有用",而是**"模型不知道它,会不会做错事"**:

内容处理为什么
MEMORY.md ×2整份注入它本身是指针(索引)。不知道索引 = 不知道 memory/ 下有哪些文件,记忆库对模型等于不存在
当日日志 YYYY-MM-DD.md默认只注入一行指针(条数/体积),正文按需 read日志是写侧流水,真正的读者是策展流程(沉淀/做梦),不是随手打开的工作会话;它增长最快、密度最低,却最容易挤掉索引
rules_*.md / context/不注入,走 AGENTS.md 钩子 + skill 前置必读按需读只在相关任务里才有用,放进每个会话就是噪声——但"知道去哪找"必须确定

dailyLogMode 取值:pointer(默认,只注入指针)|full(v1.2 行为,注入被字节上限截断的正文)|off(完全不提日志)。指针模式保留了"确定性知道日志存在"这一半价值,把正文成本推迟到真正需要时。

安装

方式 A:plugin add(bundle 形态,推荐)

dsh plugin --profile web add https://github.com/wuruihi/dsh-memory-loader/archive/refs/heads/main.tar.gz

方式 B:单文件 file:// 挂载

把 dsh-memory-loader.mjs 放到 ~/.dsh/profiles/web/ 下(该目录能解析 @deepseek-ai/dsh-llm 裸包名),然后在 ~/.dsh/profiles/web/cordis.patch.yml 追加:

- insert:
    - id: dsh-memory-loader
      name: file:///<绝对路径>/~/.dsh/profiles/web/dsh-memory-loader.mjs
      config:
        maxBytes: 16384
        maxSourceBytes: 65536
        dailyLogMode: pointer

patch 变更由 watchUserPatches 热应用,无需重启。

方式 C:桌面版 GUI(DSH 0.2.0 桌面版用这条)

桌面版把装插件做成了侧栏的插件页:添加插件 → 填本地绝对路径(本仓库根目录)→ 安装 → 启用。该页面只接受「组合包」形态,本仓库已在 package.json 里声明 dsh.bundle.patch,符合要求。装完落点是 ~/.dsh/profiles/desktop/node_modules/,且以链接指向本仓库——改本仓库源码就等于改了已安装的插件。改 .mjs 需要重启桌面 App 生效;改插件配置(config 段)由 patchReload 热生效。

版本边界(2026-09-30 实测):DSH 0.2.0 的会话格式升到 v4,注入消息必须携带 producer-owned source kind。v1.3.0 及更早写的是已废弃的 { kind: "plugin", plugin },会让桌面版每个会话报错 format v4 message requires a producer-owned source kind;v1.3.1 起改为 plugin:dsh-memory-loader(与 v3→v4 迁移给旧行分配的 kind 一致)。

配置

键默认说明
maxBytes16384注入帧总预算(字节),独立于 AGENTS.md 链的 64KB
maxSourceBytes65536单文件读取上限,超限视为不存在(并报 skipped)
dailyLogModepointer当日日志处理:pointer 只注入一行指针/full 注入被截断正文/off 不提
dailyLogMaxBytes4096仅 dailyLogMode: full 生效:日志正文的注入上限

预算策略与官方 dsh-agent-instructions 一致:超限时先整文件丢弃最不特定者,最后截断最特定文件并附提示。

这些数字的来历(别当物理常数):16KB 是从官方 instructions 插件沿用的约定,不是按上下文压力测出来的——它真正的作用是逼出信息密度 + 保护索引(若理由是上下文稀缺,那 AGENTS.md 链拿 64KB 就说不通)。4096 = 16384 ÷ 4 是四个候选文件等分的启发式。两个已知取舍:①截断是保头部、砍尾部,对追加型日志方向相反(最新结论在尾部 → 这正是默认改指针的原因之一);②"越泛的先丢"承自 instructions 场景,对记忆并不完全成立(全局 MEMORY.md 是最耐久的索引,却排在最先被丢的位置)。

设计要点

  • 标记缺失则注入:一个规则覆盖新会话 / resume / 子代理 / fork 继承四种场景;帧内含固定标记,扫描会话历史去重,不会重复注入
  • 注入 seam 与官方 instructions 插件同源:agent/pre-step 包装下游 decision,createUserMessage(from @deepseek-ai/dsh-llm)构造 durable user 消息,紧跟用户首条 prompt
  • 安全:内容中字面 </system-reminder> 被转义,防止记忆内容逃逸帧;任何内部错误只降级为放弃注入,不影响会话
  • 只读不写:沉淀仍按你自己的记忆协议走,插件不碰写回

验证

node selfcheck.mjs

53 项自检覆盖:四文件加载顺序、预算整丢/截断策略、当日日志三种模式(pointer 默认/full/off,含"关掉指针则正文回灌"的反证)、帧转义、日期文件名、有界读取、幂等标记。v1.3.1 起另有 6 项(T14a–f)钉住注入消息的 source:必须是 producer-owned kind、不得再出现已废弃的 kind: "plugin"。本机另有端到端验证记录(headless 会话哨兵注入 + 会话存储解压取证 + 回滚对照),见交付报告。

License

MIT