dsh-super-memory
跨压缩记忆:同一个超长会话被压缩多次后,早前问过/定过的事仍能被检索到并作为参考注入。压缩时入库(0 模型调用),提问时本地检索、命中才注入。 适合在超长会话中需要检索和注入早期压缩上下文的用户。
설치
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:kkwings/dsh-super-memory默认配置
| 键 | 默认 | 说明 |
|---|---|---|
enabled | true | 总开关 |
injectRecap / injectRecall | true / true | 两个注入开关,都关 = 零注入 |
ingestSummary / ingestRawText | true / true | 两层入库开关,都关 = 不写盘 |
compactionRecapMaxTokens | 300 | 压缩后总览 token 上限(0 = 不注入) |
maxTokensPerTurn | 500 | 单轮注入上限(0 = 不注入) |
maxItems | 2 | 单轮最多条数(0–5) |
maxCharsPerItem | 300 | 每条最大字符 |
sessionBudgetRatio | 0.02 | 会话累计注入上限(窗口比例;0 = 关闭全部自动注入) |
recapPersist | true | 总览在本次压缩窗口内保持稳定(省一次上下文快照,且整段窗口都看得到);关 = 压缩后只注入一轮 |
minScore | 0.28 | 命中阈值(见下面的标定) |
observationTurns | 3 | 查询拼接最近几条用户消息 |
preferSummaryChunks | true | 先 L1 摘要块,分数不够再 L2 原文块兜底 |
dedupe | true | 同块永不重复注入;连续两轮同话题不重复 |
cooldownTurns | 1 | 同话题连续轮次的最小间隔 |
storeDir | .dsh-compaction-memory | 相对工作区;也可填绝对路径集中存放 |
includeToolResults | false | 默认不存工具调用 / 工具结果(深度思考永不入库,没有开关) |
includePrune | false | 是否也记录 compaction/prune |
maxRawCharsPerCompaction | 400000 | 单次压缩 L2 入库字符上限(超出均匀抽样) |
backfillOnStart | true | 插件中途装上时,把本会话已有压缩补进库(0 token) |
trashEnabled | true | 删除先进回收站 |
protectRecentDays | 7 | 删除保护期天数(0 = 不保护,需警告确认) |
trashAutoPurgeEnabled / trashAutoPurgeDays | true / 7 | 回收站自动清空开关与天数(≥1) |
logScores | true | 写打分日志 |
minScore 的标定
用真实会话(3.8 MB / 5388 事件 / 2 次压缩 / 404K+308K token 被压掉)实测:
| 查询类型 | L1 摘要块 top 分 | L2 原文块 top 分 |
|---|---|---|
| 与已压缩内容相关的历史问题(12 条抽样) | 0.02 – 0.48 | 0.72 – 1.50 |
| 完全不相关的问题(3 条) | 0.00 – 0.07 | 0.07 – 0.14 |
两者分得很开,默认 0.28 落在中间偏保守的一侧。跑几天后可以看「诊断 → 打分日志」里 hit:false reason=below-threshold/... 的 topScore 分布,漏召多就往下调。