dsh-suzu-memory
为 DeepSeek Harness 提供会话独立的长期记忆、记忆管理、人设设置和压缩提示词。
安装
dsh plugin --profile web add dsh-suzu-memory
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✓ |
| 2 列装 | ✓ |
| 3 挂载 | ✓ |
| 4 启动 | — |
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
README
<p align="center">
<picture>
<source media="(max-width: 600px)" srcset="docs/images/banner-mobile.svg">
<img src="docs/images/banner.svg" alt="DSH Suzu Memory:让 DeepSeek Harness 的会话,记得你们聊过的事。" width="1120">
</picture>
</p>
<p align="center">
<a href="#记忆效果"><img src="https://img.shields.io/badge/LoCoMo-89.87%25-9365cb" alt="LoCoMo 准确率 89.87%"></a>
<a href="https://github.com/eryucheng/dsh-suzu-memory/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/eryucheng/dsh-suzu-memory/ci.yml?branch=main&label=CI&logo=github" alt="CI 构建状态"></a>
<a href="https://github.com/eryucheng/dsh-suzu-memory/releases/latest"><img src="https://img.shields.io/badge/release-v0.7.0-9365cb" alt="版本 0.7.0"></a>
<a href="https://github.com/deepseek-ai/deepseek-harness"><img src="https://img.shields.io/badge/DSH-0.2.1--rc.3-4d6bfe" alt="适配 DSH 0.2.1-rc.3"></a>
<a href="package.json"><img src="https://img.shields.io/badge/node-22.19%2B%20%7C%2024%2B-5fa04e?logo=nodedotjs&logoColor=white" alt="Node.js 22.19+ 或 24+"></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-777bc4" alt="Apache License 2.0"></a>
</p>
<p align="center">
<a href="#记忆效果"><b>记忆效果</b></a> ·
<a href="#快速开始"><b>快速开始</b></a> ·
<a href="#工作原理"><b>工作原理</b></a> ·
<a href="#使用指南"><b>使用指南</b></a> ·
<a href="#数据与隐私"><b>数据与隐私</b></a> ·
<a href="#高级配置"><b>高级配置</b></a>
</p>
<br>
长对话经过几轮压缩,早先聊过的细节往往只剩一句摘要。DSH Suzu Memory 是 DeepSeek Harness 的插件,它把 Suzu Memory 长期记忆装进 DSH 的会话里:照常聊天,内容积累到一定长度后分批后台整理,压缩时处理剩余内容。模型需要回想时自己发起检索,每条记忆都能追溯到当时的原话。
它还可以接管压缩摘要的写法:摘要只负责接住当前的话题,被压缩掉的细节交给长期记忆保存。
记忆效果
在 LoCoMo 的 10 组英文长对话、1540 道问答题上,模型通过 suzu_memory_search 按需检索 Suzu Memory,准确率达到 89.87%,是直接阅读完整对话(93.51%)的 96%。时间类问题的准确率还高于阅读完整对话。
<p align="center">
<picture>
<source media="(max-width: 600px)" srcset="docs/images/locomo-overview-mobile.svg">
<img src="docs/images/locomo-overview.svg" alt="LoCoMo 对照评测:无历史 0.39%,Suzu Memory 89.87%(每题累计 4,375 token),完整对话 93.51%(每题 21,490 token,随对话增长)。Suzu Memory 达到完整对话准确率的 96.1%,各组对话的每题输入保持在 4,033–4,664 token,时间类问题高于完整对话 0.93 个百分点。" width="1120">
</picture>
</p>
记忆注入的量不随对话变长。 每次检索都有条数和字符上限。LoCoMo 中对话长度翻了一倍,完整对话的每题输入从约 1.3 万涨到 2.5 万 token,记忆组一直保持在约 4 千 token。DSH 会话越聊越长,压缩会丢掉细节,按需检索可以用固定的少量输入把它们找回来。
<p align="center">
<picture>
<source media="(max-width: 600px)" srcset="docs/images/locomo-input-mobile.svg">
<img src="docs/images/locomo-input.svg" alt="作答输入与对话长度:10 组对话从 52,707 到 106,835 字符。完整对话组每题输入从 12,990 增至 24,533 token,与长度的相关系数为 0.99;Suzu Memory 每题输入保持在 4,033–4,664 token,相关系数为 0.09。" width="1120">
</picture>
</p>
评测在 Suzu Memory 上游仓库中进行:三组使用同一作答模型(deepseek-v4-flash)、提示词和裁判,类别 5 不计分。模型、提示词、逐题结果与离线复核见评测报告。
特性
<table>
<tr>
<td width="50%" valign="top">
一个会话,一份记忆<br>
每个会话默认关闭,手动开启后才会采集和整理。各会话有独立的记忆库、人设和压缩设置;分支会话从自己的日志区间建立记忆,不读取父会话的记忆库。
</td>
<td width="50%" valign="top">
按需回想,不占上下文<br>
模型通过 suzu_memory_search 自行决定何时检索,还可以用返回的记忆 ID 继续查关联。每次检索默认最多返回 5 条、约 1.2 万字符,会话再长,注入的内容也不会跟着膨胀。
</td>
</tr>
<tr>
<td valign="top">
整理时机由你决定<br>
提供随时整理、仅在波谷时段整理和手动整理三种模式。默认的波谷时段避开 DeepSeek 公布的工作日高峰。
</td>
<td valign="top">
长对话也压得动<br>
可以给会话换上聊天用的压缩提示词。较长的压缩材料按模型容量分段摘要再合并,被压掉的细节交给长期记忆。
</td>
</tr>
<tr>
<td valign="top">
记忆图谱与审核台<br>
在独立网页中用三维图谱浏览记忆和关联,点开节点就能看到原话来源;审核台可以核对证据、人工审核和创建备份。
</td>
<td valign="top">
会话级人设<br>
为单个会话指定人设,替换 DSH 原生的人设位置,从下一次模型请求开始生效。
</td>
</tr>
<tr>
<td valign="top">
装上就能用<br>
安装包自带 Memory 核心,不用另外部署服务。默认沿用会话的模型与认证,Embedding 是可选项。
</td>
<td valign="top">
数据留在本地<br>
记忆库和原话证据保存在 DSH 的 profile 目录下。只有整理和向量化时,才会把所需材料发给你使用的服务商。
</td>
</tr>
</table>
工作原理
<p align="center">
<img src="docs/images/workflow.svg" alt="工作原理:原文提交时暂存,内容足量后分批整理,压缩时处理尾批。DSH 压缩只把旧消息换成摘要,原话仍在记忆库中;模型需要时通过 suzu_memory_search 检索相关记忆。" width="1120">
</p>
原话在每条消息提交时就已经进了记忆库,所以压缩只会缩短模型眼前的上下文,记忆库里一条都不会少。压缩摘要和长期记忆各管一段:
· 压缩摘要 · 长期记忆
负责 · 让当前对话接得上 · 保存经历、人物认识和原话
何时产生 · 上下文过长时,由 DSH 触发 · 内容足量后分批后台整理,压缩时收尾,也可手动整理
保留什么 · 当前话题、约定、未完成的事 · 事件、偏好与状态、关系、原话证据
如何使用 · 直接放在上下文里 · 需要时调用 suzu_memory_search,可用返回的记忆 ID 继续查关联
插件负责 · 按会话替换压缩提示词(可选) · 收录、整理和检索
内置的聊天模板就是按这个分工写的:摘要用于承接对话,不罗列与当前交流无关的旧记忆。
记忆系统
记忆的提取、整理和检索都由 Suzu Memory 完成。它是一个本地优先的长期记忆引擎,插件只负责把 DSH 会话接上去,核心算法与上游保持一致。
- 每条记忆都有出处:保留原话、发言者和时间,召回的记忆可以追溯到当时的原话。
- 认识会变,历史留着:用十二类人物认识组织偏好、习惯、目标和关系。新证据可以补充、纠正或取代旧认识,原来的状态和正反证据都保留。
- 听得懂时间:解析“前几天”“两周前”“last time”这类中英文表达,按精度调整排序,日期对不上的相关记忆不会因此被排除。
- 带着依据召回:组合词法、BM25、实体与可选的向量线索,沿关联展开原话和支持、反对证据,在预算内返回。
<p align="center">
<picture>
<source media="(max-width: 600px)" srcset="docs/images/retrieval-mobile.svg">
<img src="docs/images/retrieval.svg" alt="Suzu Memory 多路检索示意:组合词法、BM25、实体和可选向量线索,经过门控、融合及关系与证据展开,按意图和预算返回有界上下文。" width="960">
</picture>
<br>
<sub>图源:<a href="https://github.com/eryucheng/suzu-memory">Suzu Memory</a></sub>
</p>
想了解原理,可以从这些上游说明读起。插件内置源码位于 [vendor/suzu-memory/](vendor/suzu-memory/),对应的固定提交记录在 [UPSTREAM.json](UPSTREAM.json)。
主题 · 内容
记忆评测 · LoCoMo 对照评测与完整报告
工作方式 · 记录经历、后台整理、按需召回的完整流程
多路检索与证据展开 · suzu_memory_search 背后的检索算法
听得懂时间 · 中英文时间表达如何影响召回排序
人物认识的十二个维度 · 偏好、习惯、目标、关系等认识如何区分和组织
状态演化与来源追溯 · 认识如何随新证据更新,事件如何接续,原话如何追溯
兼容性
项目 · 版本
插件 · 0.7.0
DeepSeek Harness · >=0.2.1-rc.2 <0.3.0-0
开发与测试使用 · 0.2.1-rc.3
No
…(truncated)
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:5,最后更新 2026-11-01