前言¶
DeepSeek Harness(DSH)的插件生态强调「一切皆插件」。在对话场景中,LLM 每轮都是新会话,上下文有限,模型很难记住之前的细节。现有方案要么存全文,要么完全依赖显式触发,前者耗 token,后者对隐含信息无能为力。dsh-fuzzy-memory 插件旨在在两者之间找平衡:只存「关键词 + 一句话印象」,不靠数据库,更像人的短期记忆。
插件定位¶
dsh-fuzzy-memory 是给 DeepSeek Harness 的记忆插件,由维护者 yang002li 开发。它适配 DSH 0.2.0-rc.2(用到 agent/pre-step、systemPrompt、tools 接口)。插件默认开启,不依赖 UI,所有开关与参数在 cordis.patch.yml 里覆盖。
核心能力¶
插件通过多机制实现记忆功能:
-
随机抽取:每句话有
sampleRate(默认 35%)的概率抽一个关键词,配一句话印象存到本地。这模拟人脑的随机回忆,避免每次都强行记忆。 -
核心档案:显式事实单独存成
profile,每段会话开头强制带上。例如「我叫阳阳 / 我喜欢喝乌龙茶 / 我住杭州」,这类信息不会靠运气。 -
显式记忆:句子里出现「记住 / 我喜欢 / 我叫 / 生日 / 下次」等触发词时,无条件记一条。
-
模型主动记:提供
fuzzy_remember工具,模型觉得值得记时自己调用。 -
按需想起:每轮对话前,用当前消息给所有记忆打分。命中一条就在对话里注入「你模糊记得:……」。分数低于阈值则不注入,这就是「想不起来」。
-
会遗忘:30 天没被想起,置信度打八折;低于阈值从检索里消失;库超过上限时按「可信度 × 新鲜度」淘汰。
-
主动回忆:提供
fuzzy_recall工具,模型想不起某事时可以翻记忆库。 -
可选人设:配置里填
persona会追加到系统提示词;打开personaComplete会替换整个系统提示词(陪伴模式)。
安装与启用¶
从商城安装:
dsh plugin --profile web add dsh-fuzzy-memory
或从 GitHub 安装:
dsh plugin --profile web add github:yang02li/dsh-fuzzy-memory
安装后重启 DSH,插件默认开启。关闭时编辑 data\profiles\web\cordis.patch.yml:
- id: dsh-fuzzy-memory
config:
enabled: false
重启 DSH 后生效。
配置说明¶
| 字段 | 默认 | 说明 |
|---|---|---|
enabled |
true | 总开关,关闭时插件不生效 |
persona |
空 | 基础人设文本 |
personaComplete |
false | true = 人设替换整个系统提示词;不要和自带 complete 人设的预设同时开 |
sampleRate |
0.35 | 随机记忆采样率,0 = 只记显式触发 |
threshold |
0.5 | 检索阈值,越高越不容易想起来 |
maxEntries |
300 | 记忆库上限 |
cooldownTurns |
2 | 同一条记忆至少隔几回合再出现 |
enableTools |
true | 是否注册 fuzzy_remember / fuzzy_recall;关掉省约 240 token/轮,自动记忆和注入照常 |
配置改动需要重启 DSH。
记忆存储与原理¶
记忆文件位于 <DSH_HOME>\fuzzy-memory\memories.jsonl,每行一条 JSON:
{"id":"...","kw":["三体"],"gist":"黑暗森林那段还是很震撼","kind":"impression","conf":0.55,"t":1792...,"hits":1}
纯本地文件,可直接查看或修改。
抽取逻辑:
- 中文没有分词器,用 2~4 字窗口 + 停用字过滤 + 取最长不重叠,抽到「三体」「黑暗森林」这类词;抽不到就跳过。
打分公式:
0.6 × 关键词重合 + 0.2 × 新鲜度 + 0.1 × 置信度 + 0.1 × 随机抖动
抖动是故意的:同一句话,有时想得起,有时想不起。
注入方式:命中时在用户消息后追加一条 user 快照消息,约 30 字。
衰减逻辑:只读计算,不反复改写文件;conf × 0.8^(天数/30)。
工具使用¶
fuzzy_remember(keywords, gist, kind?, confidence?)— 主动记一条fuzzy_recall(query)— 主动检索,返回最像的 3 条
成本与限制¶
成本项:
- 两个工具 schema:~240 token,每轮(enableTools: false 可去掉)
- 核心档案卡:~25 token,每段会话一次,之后随历史重发
- 命中记忆卡:~30 token,命中时一次,之后随历史重发
- 额外模型调用:0(抽取、检索、衰减全在本地)
限制:
- 中文关键词是启发式抽取,质量不如模型判断;重要的事让它调 fuzzy_remember。
- 注入的记忆是持久消息,会占一点上下文(约 30 token/次),只在命中时发生。
- 插件目前是 host 侧,没有独立 UI;开关和参数在「设置 → 插件」的表单里。
- 配置改动需要重启;未做热重载。
适用场景与注意事项¶
适合需要长期记忆但不想存全文的场景,例如陪伴模式、角色扮演、长期项目跟踪等。
插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
结尾¶
dsh-fuzzy-memory 提供了一种轻量、本地、可遗忘的记忆机制,让 DSH 在对话中更像一个会遗忘又偶尔想起的伙伴。更多细节与源码可在插件目录或 GitHub 查看。