前言¶
在 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 的三件事¶
- 本地检索:问题切字符二元组,结合标签命中算相关度,不调模型。
- 分档挑选:长期按重要度取前 N;中期按「相关度 × 4 + 重要度 + 新近度」取前 N;短期按时间倒序取前 N。
- 硬预算:整段注入有默认 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(推荐)
- 打开 DSH Web → 侧边栏 插件(或 设置 → 插件);
- 安装组合包,填写:
github:yingchaoyi/dsh-memory-tier
- 装好后在「设置 → 三档记忆」打开面板。
方式二:命令行
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 的问题。