dsh-fuzzy-memory:给 DeepSeek Harness 的模糊记忆插件

前言

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 里覆盖。

核心能力

插件通过多机制实现记忆功能:

  1. 随机抽取:每句话有 sampleRate(默认 35%)的概率抽一个关键词,配一句话印象存到本地。这模拟人脑的随机回忆,避免每次都强行记忆。

  2. 核心档案:显式事实单独存成 profile,每段会话开头强制带上。例如「我叫阳阳 / 我喜欢喝乌龙茶 / 我住杭州」,这类信息不会靠运气。

  3. 显式记忆:句子里出现「记住 / 我喜欢 / 我叫 / 生日 / 下次」等触发词时,无条件记一条。

  4. 模型主动记:提供 fuzzy_remember 工具,模型觉得值得记时自己调用。

  5. 按需想起:每轮对话前,用当前消息给所有记忆打分。命中一条就在对话里注入「你模糊记得:……」。分数低于阈值则不注入,这就是「想不起来」。

  6. 会遗忘:30 天没被想起,置信度打八折;低于阈值从检索里消失;库超过上限时按「可信度 × 新鲜度」淘汰。

  7. 主动回忆:提供 fuzzy_recall 工具,模型想不起某事时可以翻记忆库。

  8. 可选人设:配置里填 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 查看。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye