dsh-memory-tier:三档记忆与本地检索注入

前言

在 DeepSeek Harness(DSH)里跑群聊或长会话 agent 时,常见做法是往 system 里堆历史摘要或全量记忆。上下文越长,每轮 token 越贵;只保留最近几轮又容易接不上话、记不住人和规矩。社区插件 dsh-memory-tier(维护者 yingchaoyi,分类:记忆)把记忆拆成长期、中期、短期三档,在本地做相关度检索,每轮只追加一段有字数上限的上下文,并支持锁定底稿与可选的自动记录。下面介绍它解决什么问题、怎么装、怎么用。

这是什么

dsh-memory-tier 是面向 DSH 的三档记忆插件:长期 / 中期 / 短期各有默认周期与容量,满了按规则淘汰;检索与注入都在本机完成,不额外调模型。数据与日志落在 ~/.dsh/memory-tier/,通过 DSH Web 设置里的「三档记忆」面板和一组 agent 工具读写。

与「把记忆整段塞进提示词」相比,它默认整段注入不超过 1600 字,且走 systemPrompt.context 追加,不动系统提示词开头,避免把提示词缓存整段打掉。

三档怎么分

档 默认周期 默认容量 典型内容
长期 long 永久 120 条 群友身份与关系、主人定的规矩、人设与说话方式等
中期 mid 30 天 240 条 约定、进行中的事、梗的来龙去脉
短期 short 4 天 60 条 近期趣事与话题,用于接话

中期、短期到期会在注入前清理;容量满时按「重要度 × 2 + 新近度 + 命中次数」淘汰,长期里标了 pinned 的不会被容量挤掉。内容近似会合并;locked 条目不删、不覆盖,注入时带 🔒 前缀。容量、天数、注入条数、字数预算可在设置页修改,持久化在 ~/.dsh/memory-tier/store.json。

省 token 的三件事

  1. 本地检索:问题切字符二元组,结合标签命中算相关度,不调模型。
  2. 分档挑选:长期按重要度取前 N;中期按「相关度 × 4 + 重要度 + 新近度」取前 N;短期按时间倒序取前 N。
  3. 硬预算:整段注入有默认 1600 字上限,超出按条截断。

给模型用的工具

工具 作用
mem_note 写一条:支持 tier / text / tags / imp(0~5) / kind / pinned / locked / id(按 id 更新)
mem_search 按关键词检索
mem_forget 删除(锁定条目会被拒绝)
mem_stats 各档占用与容量
mem_persona 读/写「人设与说话方式」——插件内唯一人设设置处,每轮注入、不占检索名额;无 text 为读,有 text 为整段替换(最多 4000 字)

kind 取值:person / fact / event / persona / rule。

自动记录与锁定底稿

  • 群消息 → 短期档:每轮扫描会话最后一条 user 消息,解析 [昵称(QQ)] 正文;正文 ≥8 字且(提到长期档认识的人或本身 ≥24 字)时,本地正则写入短期档,默认 20 秒最多一条,可在面板关闭。
  • 回完自评:注入尾部会带规矩,由模型自行判断是否再记一条;插件不替模型决定。
  • 锁定底稿:mem_note 传 locked: true 或在面板锁定;适合群友画像、主人规矩等不允许被对话改写的条目。mem_forget、面板删除、HTTP 删除对锁定条目均拒绝。

贴吧语料参考(可选)

若本机有「刷贴吧」插件维护的 ~/.dsh/tieba-duty/bar-styles.json,可在设置 → 贴吧语料参考中开启「在 QQ 群里也参考贴吧语料」,并用群号白名单控制;认群依赖 ~/.dsh/dsh-astrbot-ingress/sessions.json 中的会话 id。语料有 60 秒缓存,路径可在设置中覆盖。

安装与启用

要求:Node.js ≥ 22,DSH 0.2.x,web profile。package 当前版本为 0.1.4,许可证 MIT。

方式一:DSH Web(推荐)

  1. 打开 DSH Web → 侧边栏 插件(或 设置 → 插件);
  2. 安装组合包,填写:
github:yingchaoyi/dsh-memory-tier
  1. 装好后在「设置 → 三档记忆」打开面板。

方式二:命令行

dsh plugin --profile web add github:yingchaoyi/dsh-memory-tier

装完需重启一次 dsh web(开启 HMR 的 profile 可能自动重载)。卸载:

dsh plugin --profile web remove dsh-memory-tier

本地开发可参考仓库 README 中的 git clone 与 dsh plugin --profile web add ./dsh-memory-tier 说明;生产环境安装前请自行审阅源码与许可证。插件以当前 DSH 进程权限运行,写入本机 ~/.dsh/memory-tier/,只调用本机 /api/memory-tier/*,不上传外网。

设置页与自测

设置 → 三档记忆 可改周期与容量、字数预算、三档注入条数、人设框、自动记录开关,并支持分页浏览、搜索、改文、pinned、删除(锁定除外)及「试一试」预览本轮注入。改动即时保存,下一轮生效。

不启动 DSH 也可在插件目录执行:

DSH_HOME=/tmp/mt-test npm test
node test/client-smoke.mjs

适用场景与注意

适合需要长期记住群友人设与规矩、中期跟踪约定与话题、短期接话,且希望控制每轮上下文成本的 DSH Web agent 场景。不适合把插件当成云端同步或多机共享记忆——数据默认只在安装 DSH 的本机。

社区目录页与仓库:

  • 目录:https://www.skillhub.cn/plugins/yingchaoyi/dsh-memory-tier
  • GitHub:https://github.com/yingchaoyi/dsh-memory-tier

DSH 生态强调「一切皆插件」;SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系。安装前请核对仓库 README 与许可证,并按自身合规要求处理群内个人信息写入本地 JSON 的问题。

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

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

小夜