DSH Hub
dsh-memoir cover

Qinling-Melon-Farmers/dsh-memoir

dsh-memoir

UIWeb UI37 GitHub stars· updated 2026-10-19

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

Install

npx @deepseek-ai/dsh plugin --profile web add [email protected]

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

README badge

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

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

From the README

Excerpt from Qinling-Melon-Farmers/dsh-memoir, cleaned of badges and images.

dsh-memoir

0.9.3:适配官方 npm DSH 0.2.1-rc.2,保留 0.2.0-rc.1 / rc.2 与 0.2.1-alpha.1 / alpha.2 支持。修复 #16 的存储保护与 Hot Memory 预算边界,以及 #17 的记忆模板字面量阻断 prompt 组装问题。升级并重新加载插件即可保护旧快照,无需删除快照或改写原始记忆;#14 的旧日志故障仍须单独恢复。

中文 · English · 更新日志 · Releases

DeepSeek Harness(DSH)的本地优先、跨会话项目记忆插件。 它把 Agent 已确认的工作结论、经验教训和后续行动持久化,在新会话中注入有界且缓存友好的 Hot Memory,并通过本地 BM25 排序召回长尾历史。

无需 embedding、向量数据库或云端记忆服务;npm 包零捆绑运行时依赖,DSH 与 Zod 4 peer 由宿主环境提供;Zod 用于验证宿主会话投影,不捆绑进插件。

[!WARNING] #14 旧日志恢复边界:0.8.1–0.9.0 写入的旧回执可能导致会话重新打开失败。 0.9.3 保留 0.9.1 起阻止新增异常回执的修复,但升级不自动重写旧日志;npm 包内置 dsh-memoir-repair 命令。旧会话仍打不开时,按恢复说明先只读检查、停机备份后再显式恢复;不要删除日志或降级数据格式。恢复前停止旧插件写入,仅关闭自动蒸馏不能阻止手动工具写入。 #17 的 prompt 输出防护不修复任意旧日志。恢复 CLI 的后端与格式支持须以恢复说明列出的已审计范围为准;仅升级 DSH 也不会修复已有异常日志。

[!IMPORTANT] 0.9.3 要求 DSH >=0.2.0-rc.1 <0.3.0-0 || >=0.2.1-alpha.1 <0.2.1,开发 SDK 基线为 0.2.1-rc.2;保留官方 0.2.0-rc.1 / rc.2 与 0.2.1-alpha.1 / alpha.2 兼容线。版本范围不代表其中所有版本均已验证。保留首屏导引、原生设置、四种 Agent 语言、独立蒸馏回合与冻结快照。DSH 0.1.7 兼容线为 0.8.2,但仍受 #14 影响;使用本版修复须先升级宿主,再安装 0.9.3。

[email protected] 修复重启和内存淘汰后旧会话快照丢失(#10),支持 DSH 0.1.5-rc.1 / rc.2。要求 >=0.1.5-rc.1 <0.1.6-0;请先核对宿主版本。旧 DSH 0.1.2 用户固定使用 0.6.2,0.1.1-rc.2 用户固定使用 0.5.6;这些旧版未包含本次修复。

npm install --global @deepseek-ai/[email protected]
dsh plugin --profile web add [email protected]

升级后重新加载插件,或重启 dsh web。#17 防护会在后续 prompt 组装时生效;无需手工删除旧快照。记忆不会随插件升级或卸载自动删除。

0.9.3 更新摘要

  • 存储保护(#16):遇到未来 store 格式、读取错误或损坏文件备份失败时,报错并拒绝继续加载或覆盖(fail closed)。只有成功保留损坏原文件后才允许建立空库;Windows 临时占用导致的 rename 失败采用有界重试,耗尽后仍报错。
  • Hot Memory 预算(#16):候选超出剩余硬预算时跳过并继续寻找较小条目;首条过大时按渲染后的完整块缩短正文,必要时缩短标题。连最小块也放不下则跳过,长标题不能突破 hotMemoryMaxTokens。
  • 模板字面量(#17):通过官方 PromptSection 的 interpolate: false 关闭记忆 section 的变量插值,使 {{...}} 等字面量按原文进入 system prompt,避免被求值或导致组装失败。新记忆、进程内旧快照与磁盘恢复的旧快照均按原文输出;花括号、原始记忆 JSON、PROJECT_MEMORY.md 与磁盘快照保持原样。感谢 mikemikimike 在 PR #18 中的报告、输出边界分析及旧快照方案对问题定位的帮助。
  • DSH rc.2 适配:SDK 基线更新至 0.2.1-rc.2,适配 JSONL 后端的具名 apply 导出及 generation(日志代际)恢复协议。项目记忆仍绑定会话原始项目,切换执行目录不转移归属。恢复 CLI 支持的五个官方 SDK 版本和安全边界见恢复说明;运行时兼容不等于任意历史日志均可恢复。

为什么选择 dsh-memoir

能力用户得到什么
本地优先JSON 单一事实源与项目内 PROJECT_MEMORY.md;不上传记忆,不依赖外部服务
自动蒸馏提醒顶层 Agent 完成有效工作回合时提醒归纳,由 memoir_record 透明落盘;跳过 idle、aborted、subagent 和已记录回合
有界 Hot Memory只把高价值记忆放进 system prompt,受 token 预算硬限制;同一会话冻结前缀以提高 prompt-prefix cache 命中
BM25 排序召回中文短语、英文关键词、代码标识符和路径都可检索;跨项目 Top-K 与查询 LRU 缓存共用同一引擎
可治理的记忆重要度、置顶、标签、归档、恢复和 supersede 生命周期;相似写入必须显式更新、替代或并存
可追溯Agent 写入记录可信 session/turn 来源,Web 面板可复制并尽力跳回原会话
完整 Web GUI中英双语项目/全局浏览、排序搜索、编辑、Hot Memory 预览、诊断和实时设置;可独立选择 Agent 侧中文、英文、德语或俄语

适合需要“新 Agent 接手时继续理解项目”的个人或本地开发工作流。它不是原始聊天记录备份、多人云同步服务或向量语义知识库。

界面预览

0.9.0 组件界面预览,使用演示数据。 顶部常驻插件身份、GitHub、文档与记忆设置入口,无需滚过长列表。

工作原理

…

Related plugins