dsh-rofm
DSH 长期记忆插件:上下文超过阈值时把最早的一段对话归档进 memory/ 回忆文件夹(v1.4.1 起每次归档至少压到 releaseTargetPercent 以下),之后按关键词(双向匹配)、确定性优先级 α(FAIR-DRI)与可选时间/事件约束自动回忆。 · DSH long-term memory: archives the earliest context into memory/ folders (with a v1.4.1 archive release floor), then recalls it deterministically by keywords, priority α, time windows and event constraints.
What it is
DSH 长期记忆插件:上下文超过阈值时把最早的一段对话归档进 memory/ 回忆文件夹(v1.4.1 起每次归档至少压到 releaseTargetPercent 以下),之后按关键词(双向匹配)、确定性优先级 α(FAIR-DRI)与可选时间/事件约束自动回忆…
How to install
Run this in the DSH web profile, then refresh the page.
$ dsh plugin --profile web add dsh-rofm@1.4.4
DSH versions accepted
Undeclared
Author and traction
wall1234567 · ★ 13 · Updated 2026-11-06
About this plugin
dsh-rofm · DSH 长期记忆 / 记忆回忆插件
> 给 DeepSeek Harness 加一套长期记忆:
> 上下文超过阈值时,把最早的一段对话纯确定性地归档成 memory/ 下的多个“回忆文件夹”;
> 之后用户开口时,按关键词命中 + 确定性优先级 α + 公平车道(FAIR-DRI)把相关回忆加回上下文。
> α、β 与关键词由当前会话模型结合当前语境调用 memory_judge 工具给出(归档本身不调用模型);
> 未评分的记忆不会参与回忆。注入的回忆块带 β 使用规则,重启后按 v3 快照恢复。
> 回忆块注入在系统提示词区块里(v1.1 形态;v1.2 曾试验“最早历史消息”,已按用户要求回退)。
> v1.2 另增 memory_recall(模型主动按关键词回忆)与 memory_image(按关键词/记忆 id/文件名找归档图片文件)。
> v1.4.2 再增 memory_group_recall:QQ 私聊主人可只读查询群聊历史记忆(私聊→群聊允许、群聊→任何禁止,见 §3.2.10)。
> v1.4.3 修复了 QQ 渠道下「记忆评分任务」摘要显示原始 JSON 而不是对话正文、导致模型普遍打低 α 的缺陷
> (新增模型可读渲染层,原地渲染、无需迁移,见下方 v1.4.3 说明)。
> v1.4.4 修复了评分摘要/复核原文等模型可见文本按 UTF-16 码元截断可能切断 emoji 代理对 → 请求体出现孤立代理项转义 → DeepSeek Messages 接口 400、会话永久卡死的缺陷
> (所有截断改为代理对安全 + 系统提示词/工具结果边界 U+FFFD 清洗;无需迁移,见下方 v1.4.4 说明)。
> 归档中的图片存入每会话的 images/;回忆时块里显示图片的文件路径(不重新上传附件),
> 模型用 read_image 读取。
> v1.2 把单次归档上限提高到 500 个文件夹、“记忆评分任务”每轮最多列 100 条待评分 + 100 条待复核;
> 文件夹标题优先取用户消息并在同一次归档内自动去重;多次归档的 checkpoint 注记合并为一条
> (N = 累计归档段数),归档不再把宿主会重新注入的 pinned 上下文写进注记;新增
> tools/selfcheck.mjs 独立自检工具(见 §7)。
>
> v1.4.4(补丁:emoji 代理对被截断 → 会话 400 永久卡死,必读)
>
> lib/message-text.js 的 160 字符评分摘要(conversationPreview)、4000 码元 JSON 行预览
> (pushPreviewLine)与工具参数 truncate 都用 slice 按 UTF-16 码元硬切;截点落在 emoji
> 代理对中间时留下孤立高代理项,JSON.stringify 把它转义成 \ud83e 这类非法 JSON 转义,
> DeepSeek Messages 接口(api.deepseek.com/anthropic/v1/messages)直接返回
> 400 Failed to parse the request body as JSON: system[0].text: unexpected end of hex escape。
> 坏摘要来自待评分记忆,而评分需要一次成功的模型回合,于是每轮都 400、该记忆永远评不上分,
> 重启也不恢复。
>
> v1.4.4 新增 safeSlice(截点落在代理对中间时整体让出该对,摘要仍 ≤160)与 toWellFormed
> (孤立代理项 → U+FFFD,Node 18 兼容),覆盖所有模型可见截断点(摘要、JSON 行、复核原文、
> judgeReason、跨群 snippet、图片消息正文),并在两个 systemPrompt section 注册处统一清洗;
> recall-state.json 的 block 与归档 checkpoint 注记同样清洗。不改数据格式、无需迁移:
> 旧 folder 下次生成任务区块即按安全截断显示,升级后卡死会话的下一轮请求即恢复。真实接口
> 复现/修复验证与测试见 docs/VERIFICATION.md §25 与 CHANGELOG 1.4.4。
>
> v1.4.3(补丁:评分摘要显示原始 JSON → 修复为对话正文,必读)
>
> QQ 渠道兼容(Derpyu520/qq-bridge 的 MCP 工具)会话里,归档的 tool 消息 content 是原始 JSON
> (qq_get_unread_messages 返回 `{"ok":true,"key":…,"messages":[{"seq":5,"messageId":"…",
> "sender":"私聊","text":"真实聊天内容"}]},qq_wait_for_messages 返回带 newMessages` 的同形 JSON)。
> 旧实现把归档消息 flatten 后 slice(0,160) 当摘要,前 160 字符全是 "seq"/"messageId" 等字段名,
> 模型看不到对话正文、只能凭字段名猜重要性 → α 普遍偏低(报告者实测 71 条真实对话 α 中位数 0.3;
> 353 个归档里 212 个(60%)摘要这样开头)。
>
> v1.4.3 新增 lib/message-text.js 模型可读渲染层(messagePreview / conversationPreview /
> messagesToReadableText):JSON 工具结果按 sender:text chat 行提取(丢弃 id/布尔标记),
> 用户消息内嵌 JSON 快照(QQ 唤醒提示「本次消息快照」)也按真实消息行提取;原地渲染
> (消息顺序不变),有可读对话时剔除纯 [tool-call …] 标记与解析不出正文的原始 JSON 残片,
> 无可读对话的 tool-only 文件夹摘要逐字节不变。待复核「原文」与 memory_group_recall 群聊摘要
> 同缺陷一并修复;类型 仅在完全无对话时为 tool。不改数据格式、无需迁移:旧归档下次
> 生成任务区块即按新渲染显示。验证见 docs/VERIFICATION.md §24(本机 1264 个真实文件夹:
> 188 个 JSON 摘要 → 23 个变可读对话、42 个摘要变化、1222 个逐字节不变;JSON 摘要文件夹
> α 中位数 0.05 vs 可读摘要 0.10,与报告方向一致)。
>
> v1.4.2(隐私修复 + 新工具:QQ 私聊 → 群聊记忆只读查询,必读)
>
> - memory_group_recall(仅 QQ 渠道兼容启用时注册):让主人在 QQ 私聊里按关键词 / 群号(或 chatKey)/
> 时间范围只读查询群聊历史记忆,或用 listGroups 列出“哪些群有记忆、各多少条、最近一条时间”。
Compare in this category
The five most-starred plugins in the same category.
| Plugin | Author | Stars | Version | Updated |
|---|---|---|---|---|
| EverOS | EverMind-AI | 13.9K | 0.0.0 | 2026-11-10 |
| billion-context | ranxianglei | 5.9K | 0.1.213 | 2026-11-10 |
| dsh-context | bowenliang123 | 4.8K | 0.83.1 | 2026-11-10 |
| memsearch | zilliztech | 2.9K | 0.0.0 | 2026-11-10 |
| dsh-mnemon | omdsh-dev | 957 | 0.5.43 | 2026-11-08 |