DSH Hub
dsh-hybrid-memory cover

Frog755/dsh-hybrid-memory

dsh-hybrid-memory

UIMemory1 GitHub stars· updated 2026-08-26

dsh-hybrid-memory is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add @frog755/dsh-hybrid-memory@latest

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-hybrid-memory DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-hybrid-memory.svg)](https://dshhub.dev/plugins/dsh-hybrid-memory)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from Frog755/dsh-hybrid-memory, cleaned of badges and images.

dsh-hybrid-memory

融合 Hermes 轻量快照记忆Noema 可检索知识库 的 DeepSeek Harness 记忆插件。

Hybrid memory plugin for DeepSeek Harness — combining Hermes-style frozen-snapshot memory with Noema-style searchable knowledge base.

为什么有这个插件(Why)

  • Hermes 的记忆MEMORY.md / USER.md)轻量、省 token、保 prefix cache,但不可检索、无审核。
  • Noema(dsh-noema)可检索、可导入、可解释,但需要 Rust 二进制服务端、每次召回动 prompt。
  • dsh-hybrid-memory 各取所长:
抄谁做什么
L1 常驻快照HermesMEMORY.md/USER.md,会话组装时冻结注入 system prompt;中途写入不改已注入内容(保 prefix cache);字符上限(与模型无关)
L2 知识库Noemafacts/ 一事实一文件 + node:sqlite FTS5 索引 + 实体抽取;按需 memory_recall/search/browse
L3 导入Noema从 Hermes / Claude Code / Codex / WorkBuddy 导入既有记忆,内容哈希账本去重

数据位置(重要)

记忆数据放在 D 盘,绝不落 C 盘:

D:\Develop\DeepSeek Harness\memory\
├── MEMORY.md        ← L1 agent 笔记(环境事实/项目约定/工具怪癖)
├── USER.md          ← L1 关于用户(偏好/沟通风格/习惯)
├── facts/           ← L2 一事实一文件(人类可读 Markdown,active 状态)
├── pending/         ← 审核队列:review=true 的内容先进这里,接受后移到 facts/
├── index.db         ← L2 SQLite FTS5 索引
└── imports.json     ← L3 导入去重账本

可用环境变量 DSH_HYBRID_MEMORY_ROOT 覆盖默认根目录。

Hermes 导入路径:插件会自动探测 Hermes 记忆位置——优先 HERMES_HOME 环境变量,其次常见安装路径(D:\Develop\hermes~/.hermes~/hermes),取第一个存在 memories/ 目录的位置。你的机器实测是 D:\Develop\hermes\memories\

安装

# 从 npm(发布后)
dsh plugin --profile web add @frog755/dsh-hybrid-memory@latest

# 或本地开发(源码目录)
dsh plugin --profile web add link:D:\Develop\DeepSeek Harness\projects\dsh-hybrid-memory
dsh web

首次安装需要重启一次 DSH(全新插件必须进入启动树);之后热重载即可。

模型工具(11 个)

工具作用
memory_addL1新增常驻条目(memory=agent 笔记 / user=关于用户)
memory_replaceL1按标题替换常驻条目
memory_removeL1按标题删除常驻条目
memory_rememberL2保存知识库事实(默认 auto-accept;review=true 进审核队列)
memory_searchL2FTS5 + 实体加权全文检索
memory_browseL2浏览知识库目录 / 按 tag 过滤
memory_recallL1+L2融合召回:快照 + 检索结果按 token 预算打包
memory_importL3从 Hermes/Claude/Codex/WorkBuddy 导入
memory_status管理数据根、字符用量、事实数、待审数、账本大小
memory_review_list / memory_review_decide审核查看/接受/拒绝/编辑候选记忆

设计要点

  • 冻结快照 + prefix cache:L1 在首轮 system prompt 组装时读文件,会话中途 memory_add 等写入落盘但不改动已组装内容 → KV cache 前缀不失效,省 token。
  • 字符上限而非 token 上限:L1 限制(agent 4000 / user 2000 字符)与模型无关,跨模型一致(Hermes 原设计)。
  • 中文检索:FTS5 的 unicode61 不切中文,插件在写入索引前用 2 字滑窗预分词,memory_search 按词匹配。
  • 威胁扫描:写入内容检测提示注入 / 外泄 / 危险指令,命中即拒。
  • 原子写 + 漂移检测:写文件走临时文件 + rename;磁盘内容被外部编辑破坏结构时拒绝写入并留 .bak 快照。
  • 审核队列:默认 auto-accept(Hermes 风格直接写);需要时 memory_remember(review=true) 写入 pending/(文件 + SQLite status=pending),memory_review_decide(accept) 会把 Markdown 移到 facts/ 并转正,edit 会同步重建 FTS 索引。

记忆注入(无需手动调工具)

除了 11 个工具,插件还通过 Cordis 事件自动注入记忆:

  • agent/pre-step:会话首步(turn=1, step=1),或用户消息命中记忆触发词(记忆 / memory / recall / 之前 / 上次 / 偏好 / 记得 / 我们聊过 / context)时,按查询召回 L2 事实并作为 memory-injection 消息追加进 step;首步无命中时注入记忆库目录(最新事实标题),让模型"读过"记忆库、知道可以主动 memory_search
  • tools/post-executeskill 工具成功加载后,把与该 skill 相关的 L2 事实拼进工具结果内容(绝不使用 additionalContexts——那会被 agent-loop 插进 next-step 队列触发自动下一轮,造成自激循环)。

L1 本身通过 systemPrompt.section 常驻注入,两层记忆都无需手动调用即到达模型。

HTTP 端点(可选)

插件还在 DSH web server 上暴露两个端点:

  • GET /__hybrid-memory/status — 状态 JSON(数据根、L1 字符用量、L2 事实/待审数、账本大小)
  • POST /__hybrid-memory/import — 触发导入,可选 body { "sources": ["hermes", ...] }

开发

Related plugins