dsh-memory-plugin:DeepSeek Harness 的分层长期记忆插件

前言

DeepSeek Harness(DSH)运行时提供了插件化架构,但原生没有跨项目的长期记忆能力。开发者在多个 DSH 进程或不同仓库之间协作时,很难复用历史会话、项目上下文或个人偏好,只能依赖 LLM 自身的上下文窗口或外部存储方案。dsh-memory-plugin 提供了四种物理隔离的存储层,配合渐进式披露和零 LLM 核心模式,让 DSH 的记忆管理更可控、可审计。

插件定位

dsh-memory-plugin 是一个 Cordis 插件,为 DeepSeek Harness 提供跨项目的长期记忆能力。它由维护者 x-000001 开发,当前版本为 0.1.0,采用 MIT 许可证。插件的核心价值在于将记忆分层存储,并通过确定性管道管理用户习惯的采集与采纳,同时保持对 LLM 的零依赖模式。

核心功能

插件提供三种能力,每个能力都对应一组工具和存储层:

1. 跨项目长期记忆

四种物理隔离的存储层,路径默认在 $DSH_HOME/memory/ 下:

  • Session:会话级记忆,仅对当前 DSH 进程可见。
  • Project:项目级记忆,随仓库移动,多进程共享同一仓库时可复用。
  • Global:全局偏好,跟随 DSH_HOME 配置,所有项目共享。
  • Habit:习惯级记忆,独立于其他存储,用于存储用户行为模式。

物理隔离是硬约束,插件启动时会校验这四个根路径不能嵌套或别名,避免运行时错误。

2. Token 高效召回

插件采用渐进式披露策略,通过以下机制降低 Token 消耗:

  • 硬上限的驻留索引:内存中只保留一个经过截断的索引,索引内容以字节稳定的方式注入系统提示词。
  • 按需召回与扩展:通过 memory_recall 和 memory_expand 工具在需要时加载更多内容。
  • 缓存友好:注入的索引文本在内容签名不变时保持字节一致,避免频繁刷新。

索引内容变化仅发生在写入、遗忘、合并或健康状态切换时,不会在单轮对话中动态收缩可见的工具表。

3. 用户习惯适应管道

习惯的采集与采纳采用确定性、可审计的管道:

observe → threshold → judge (可选) → candidate → human gate 1 → suggested → human gate 2 → auto
  • observe:订阅 session/event,读取 user/message 内容。
  • threshold:设定触发习惯采集的阈值条件。
  • judge(可选):默认关闭,通过 LLM 判断是否为习惯模式,失败时保持开放。
  • candidate:生成候选习惯条目。
  • human gate 1:人工确认候选是否采纳。
  • suggested:将确认的条目标记为建议。
  • human gate 2:人工最终确认是否自动应用。
  • auto:模型永远无法自我提升习惯,所有提升都需人工介入。

习惯条目有自己的存储和墓碑文件,HTTP UI 路由 /dsh-memory/habits 提供人工审核界面。

安装与启用

插件已包含编译后的 lib/ 目录,无需构建步骤即可安装。在 DSH 配置的插件目录下,执行:

dsh plugin add https://github.com/x-000001/dsh-memory-plugin/archive/refs/tags/v0.1.0.tar.gz

安装后插件会自动加载,并在 $DSH_HOME/memory/ 下创建四个存储根目录。插件依赖 DSH 版本 >= 0.2.0-rc.1 和 Node.js >= 22.6。

典型用法

写入记忆

通过 memory_remember 工具向指定存储层写入内容:

{
  "store": "project",
  "key": "project-config",
  "content": "本项目使用 TypeScript 5.9.2,依赖 @deepseek-ai/dsh-tools ^1.0.0"
}

召回记忆

通过 memory_recall 工具从索引中检索相关内容:

{
  "store": "project",
  "key": "project-config",
  "limit": 5
}

扩展记忆

当需要加载更多内容时,使用 memory_expand:

{
  "store": "project",
  "key": "project-config",
  "offset": 5
}

忘记记忆

通过 memory_forget 移除指定条目:

{
  "store": "project",
  "key": "project-config"
}

习惯管理

习惯管理默认通过 HTTP UI 路由 /dsh-memory/habits 完成,插件不提供工具参数用于确认或提升习惯,这是比 actor 检查更严格的边界设计。

零 LLM 模式

在未配置 LLM 路由的情况下,插件的核心功能(写入、召回、注入、遗忘、合并、健康报告、整个习惯管道)仍可正常工作。可选的 judge 模型默认关闭,配置后若 LLM 不可用会失败开放。

适用场景与注意

适合在以下场景使用:

  • 多 DSH 进程协作,需要跨项目复用上下文。
  • 需要严格审计习惯采集与采纳流程。
  • 希望在零 LLM 调用下也能运行完整的记忆管道。

注意:

  • 插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。
  • 插件对 DSH 版本有硬性要求(>= 0.2.0-rc.1),低版本无法启动。
  • 四个存储根路径不能嵌套,否则插件拒绝启动。
  • 习惯的采纳路径仅通过 HTTP UI 实现,模型工具无法触发自我提升。

总结

dsh-memory-plugin 为 DeepSeek Harness 提供了分层长期记忆与可审计的习惯管理能力,通过渐进式披露降低 Token 消耗,支持零 LLM 核心模式。插件在 DSH 0.2.x 环境下运行,适合需要跨项目记忆、习惯学习和严格审计的开发场景。

  • 插件目录:https://www.skillhub.cn/plugins/x-000001/dsh-memory-plugin
  • GitHub:https://github.com/x-000001/dsh-memory-plugin
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye