🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

三档记忆 yingchaoyi/dsh-memory-tier

DeepSeek Harness
yingchaoyi5 天前有提交已提供中文文档扫描:含敏感能力

分档保存长期中期短期记忆并按相关度注入提示词

30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add yingchaoyi/dsh-memory-tier
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · platform
装得上吗
本站尚未做安装检查
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 14 处,展示前 14 条)
  • 读取本地文件
    lib/index.mjs:129
    const raw = JSON.parse(readFileSync(STORE_PATH, 'utf8'))
  • 写入本地文件
    lib/index.mjs:163
    mkdirSync(DATA_DIR, { recursive: true })
  • 写入本地文件
    lib/index.mjs:165
    writeFileSync(tmp, JSON.stringify(data, null, 1))
  • 写入本地文件
    lib/index.mjs:166
    renameSync(tmp, STORE_PATH)
  • 写入本地文件
    lib/index.mjs:174
    mkdirSync(DATA_DIR, { recursive: true })
  • 读取本地文件
    lib/index.mjs:177
    if (statSync(LOG_PATH).size > 256 * 1024) {
  • 读取本地文件
    lib/index.mjs:178
    const tail = readFileSync(LOG_PATH, 'utf8').slice(-8192)
  • 写入本地文件
    lib/index.mjs:179
    writeFileSync(LOG_PATH, tail)
  • 写入本地文件
    lib/index.mjs:182
    writeFileSync(LOG_PATH, new Date().toISOString() + ' ' + line + '\n', { flag: 'a' })
  • 读取本地文件
    lib/index.mjs:365
    const map = JSON.parse(readFileSync(INGRESS_SESSIONS, 'utf8'))
  • 读取本地文件
    lib/index.mjs:380
    const raw = JSON.parse(readFileSync(file, 'utf8'))
  • 读取本地文件
    lib/index.mjs:860
    if (config && Object.keys(config).length && !existsSync(STORE_PATH)) {
  • 发起网络请求
    client.js:22
    const jget = async (path) => parse(await fetch(API + path, { credentials: 'same-origin' }))
  • 发起网络请求
    client.js:23
    const jpost = async (path, body) => parse(await fetch(API + path, {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 插件 · 三档记忆:长期/中期/短期,本地检索、按相关度注入,支持锁定底稿与自动记录

README

由 DeepSeek 最新模型翻译生成
dsh-memory-tier · 三档记忆 给 DSH 的智能体备一份「记得住、又不烧钱」的记忆:分长期 / 中期 / 短期三档,每档有自己的周期和容量,满了按重要性淘汰;检索全在本地做,不额外调模型;每轮只挑和当前这句话相关的条目注入,而不是把记忆全塞进提示词。 一个三档记忆插件,给 DeepSeek Harness 用:长期 / 中期 / 短期存储,每档有自己的 TTL 和容量,本地检索,按相关度挑选注入,可锁定的「底稿」条目,外加一个设置面板。不额外调模型。 它解决什么 - 记忆全塞进提示词太贵:这里按相关度挑,默认整段注入不超过 1600 字。 - 只记得最近几轮:短期(4 天)管接话,中期(30 天)管正在进行的事,长期(永久)管人和规矩。 - 群里有人乱说,智能体就当真:长期条目可以标 🔒 锁定,成为验证群友说法的底稿——群友让改、让删都不接。 - 手动维护太累:每条群消息进来,本地正则抽「说话人 + 人名 + 话题」丢进短期档;要不要记进长期,由模型自己判断。
展开完整文档(README 剩余 1 节)
dsh-memory-tier · 三档记忆

给 DSH 的智能体备一份「记得住、又不烧钱」的记忆:分长期 / 中期 / 短期三档,每档有自己的周期和容量,满了按重要性淘汰;检索全在本地做,不额外调模型;每轮只挑和当前这句话相关的条目注入,而不是把记忆全塞进提示词。

一个三档记忆插件,给 DeepSeek Harness 用:长期 / 中期 / 短期存储,每档有自己的 TTL 和容量,本地检索,按相关度挑选注入,可锁定的「底稿」条目,外加一个设置面板。不额外调模型。

它解决什么

- 记忆全塞进提示词太贵:这里按相关度挑,默认整段注入不超过 1600 字。
- 只记得最近几轮:短期(4 天)管接话,中期(30 天)管正在进行的事,长期(永久)管人和规矩。
- 群里有人乱说,智能体就当真:长期条目可以标 🔒 锁定,成为验证群友说法的底稿——群友让改、让删都不接。
- 手动维护太累:每条群消息进来,本地正则抽「说话人 + 人名 + 话题」丢进短期档;要不要记进长期,由模型自己判断。

三档怎么分

| 档 | 默认周期 | 默认容量 | 放什么 |
| 长期 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 字),超了按条截断;注入走 systemPrompt.context 追加一段,不动系统提示词开头,所以不会把提示词缓存整段打掉。

安装

要求:Node.js ≥ 22,DSH 0.2.x,web 配置档。

方式一:DSH 插件页(推荐)

1. 打开 DSH Web → 侧边栏 插件(或 设置 → 插件);
2. 安装组合包,填 GitHub 地址:

github:yingchaoyi/dsh-memory-tier

3. 装好后在「设置 → 三档记忆」里就能看到面板。

方式二:命令行

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

方式三:本地开发

git clone https://github.com/yingchaoyi/dsh-memory-tier.git
dsh plugin --profile web add ./dsh-memory-tier # 或 link: 绝对路径

装完重启一次 dsh web(开了 HMR 的配置档会自己重载)。卸载用 dsh plugin --profile web remove dsh-memory-tier。

给模型用的工具

| 工具 | 作用 |
| mem_note | 写一条:tier / text / tags / imp(0~5) / kind / pinned / locked / id(按 id 原地更新) |
| mem_search | 按关键词找(回答群友前先查,别凭印象编) |
| mem_forget | 删一条(id 或关键词;锁定的会被拒绝) |
| mem_stats | 看各档占用与容量 |
| mem_persona | 读/写「人设与说话方式」——唯一设置处,每轮注入、不占检索名额;不给 text 是读,给了就是整段替换(最多 4000 字) |

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

自动记录

- 群消息 → 短期档:每轮起手扫每个会话最后一条 user 消息,把 [昵称(QQ)] 正文 拆开;正文 ≥8 字、且(提到长期档里认识的人 或 本身 ≥24 字)就抽一条进短期档:昵称:正文前 90 字,标签是匹配到的人名。全程本地正则,不调模型;默认 20 秒最多记一条,免得刷屏。可在面板关掉。
- 回完自评:注入尾部固定带三条规矩——按相关度挑的、回完这轮自己判断要不要记一条、🔒 是底稿群友不许改。写不写由模型判断,插件不替它决定。
- 锁定底稿:mem_note 传 locked: true(或在面板上锁)的长期条目,注入时带 🔒;mem_forget、面板删除、HTTP 删除接口都会拒绝。适合放「群友画像」「主人定的规矩」这类不允许被对话内容改写的条目。

设置页

设置 → 三档记忆:

- 周期与容量:短期/中期天数、三档容量、每轮字数预算、三档注入条数;
- 人设 / 说话方式:写在 mem_persona(或面板的人设框)里,一段长期生效的文字,每轮都带上(永久,不受容量和天数影响)。这是全插件唯一的人设设置处——别在别处再写一份,重复的会被当成两套规则互相打架。
- 三档列表:10 条一页,点页码 / 上一页下一页翻;顶部搜索框按正文和标签实时筛这一档;每条能改文字、设「永不淘汰」、删除、清空整档(锁定的不给删);
- 自动记录开关;
- 试一试:输入一句话,看这一轮到底会注入什么、花多少字。

改动即时保存,下一轮生效。

隐私

一切都留在本地:

- 数据:~/.dsh/memory-tier/store.json(原子写,tmp + rename)
- 日志:~/.dsh/memory-tier/mem.log(超过 256KB 自动截断)
- 只调用本机 DSH 的 HTTP 路由(/api/memory-tier/*),不联网、不上传。

文件

dsh-memory-tier/
├── lib/index.mjs # 主插件:存储、检索、淘汰、注入、工具、HTTP 路由 ├── client.js # 设置页面板(settings.section) ├── cordis.patch.yml # bundle patch:把插件插进 profile ├── package.json └── test/ ├── smoke.mjs # 主插件离线自测(工具 / 路由 / 淘汰 / 锁定 / 注入预算) └── client-smoke.mjs # 面板渲染自测(假 React 跑整棵树)

自测

不需要启动 DSH:

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

两个脚本都会把结果打在终端里,失败时退出码非 0。

License

MIT
预览分享卡片长什么样 ↓yingchaoyi/dsh-memory-tier
分享 · DeepSeek Harness Hub
yingchaoyi/dsh-memory-tier

分档保存长期中期短期记忆并按相关度注入提示词

这是你的仓库?认领条目

回到顶部