dsh-context-compactor

DSH PLUGIN记忆与知识

仓库 kusesad-1122/dsh-context-compactor

记忆与知识 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH 上下文压缩插件:80% 自动详细总结压缩,硬性保证 token 下降,overflow 自动恢复,提供 /compact 与 /context-status 命令及输入框上方一键按钮。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 3 复刻 0 · 未关闭 issue 未标注
最近更新 2026-08-16 创建于 2026-08-16
README 8.7 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:kusesad-1122/dsh-context-compactor#v0.5.7
兼容 DSH 版本0.2.0-rc.2 等 11 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-context-compactor:DeepSeek Harness 的上下文压缩与总结插件

  • 80% 自动详细总结
  • 压缩后验保证变小
  • overflow 自动恢复
  • 工具结果裁剪
  • 一键压缩与增强

适用场景

记忆文件读写

上游标签

dshdsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

记忆与知识
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方kusesad-1122仓库 dsh-context-compactor · 默认分支 未标注
分类记忆与知识memory
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证NOASSERTION商用或二次分发前请确认条款原文
星标 / 复刻 / issue3 / 0 / 未标注收录时的数值,非实时
创建 / 更新2026-08-16 · 2026-08-16最后推送 未标注
本站收录2026-08-18首次进入本站目录的时间

README 全文

8.7 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-context-compactor

开箱即用的 上下文压缩 / 上下文总结 插件。它把 DSH 官方 dsh-compaction-basic
压缩引擎 + 工具结果裁剪器一次性装配进 profile,解决「对话满了不会自动压缩、模型
直接报 maximum context length 导致本轮失败」的问题。

功能

1. 80% 自动触发(总结最优先 + 压缩后验)

  • 通过 ctx.tokenMeter 估算当前会话 token 用量;
  • 达到模型窗口 80%(thresholdRatio 默认 0.8)时,下一步前自动先做详细总结:
    把全部较早历史用 LLM 压缩成一份详尽中文 checkpoint,替换旧消息,只保留最近
    retainRatio(默认 16%)的原样尾巴;
  • 本引擎的监听器以 prepend 注册,会抢在任何 preset 默认压缩引擎之前执行,
    保证“总结最优先”且用的是详细版总结;
  • 压缩前后都有会话日志事件(compaction/start、compaction/summary、compaction/end)。

1.5 硬性保证:压缩必须真的变小

  • 每次压缩都会做 before/after 校验:压缩后 totalTokens 必须严格小于压缩前;
  • 自动压缩:
  • 目标 = 低于 80% 阈值(所以 80% → 必须 < 80%,不是“压完还是 80%”);
  • overflow 恢复:目标 = 低于压缩前;
  • 若第一次没达标,会自动逐级降保留尾巴(16% → 8% → 4% → 0%)并
    逐级降总结预算(12288 → 6144 → 3072 → 1024)反复压缩全部较早历史;
  • 手动 /compact(包括按钮):同样做 before/after 校验;若总结反而变大,
    自动降低总结预算重试,最多 4 次;仍不能下降就明确报错,绝不“假压缩”;
  • 日志会打印 before → after tokens(xx% reduced),方便确认真的压缩了。

1.6 真实上下文窗口(modlens / 第三方 provider 适配)

  • 部分 provider(如 modlens-qwen)会向 DSH 上报一个很大的 contextWindow
    (例如 1,000,000),但真实可用窗口只有 256k。这会导致阈值算错、永远“不到 80%”。
  • 插件现在的窗口解析顺序:
    1. modelPolicies[].contextWindow(显式覆盖,最优先);
    2. 会话请求头里 ≥100k 的 maxTokens(视为真实窗口兜底,如 256000);
    3. 适配器上报的 contextWindow(最后回退)。
  • 需要手动指定时,在 profile 的插件 config 里加:
modelPolicies:
- provider: modlens-qwen
model: DeepSeek-V4-Flash-0731
contextWindow: 262144   # 按真实窗口填
thresholdRatio: 0.8

2. 全局详细总结 + 双份保存

  • 全局,不是只压一段:每次触发都把“全部较早历史”(从最早消息到保留尾巴之前)
    一次性做成一个全局 checkpoint;若历史里已有旧 checkpoint,会与本次新消息
    全局合并——仍然成立的事实保留,已解决/过时的删除,相同内容只保留一份。
  • 总结严格按保留/删除策略执行:
  • 必须保留:① 核心任务与当前进度 ② 关键决策及理由 ③ 待解决问题
    ④ 重要文件或代码位置(精确路径/函数/类位置,必要时保留简短关键片段);
  • 必须删除:详细调试过程(只留结论)、已解决的错误(不保留报错原文与排查过程)、
    客套话与所有重复内容。
  • 保存 1:会话日志持久化 checkpoint 节点(可回放);
  • 保存 2:额外写 Markdown 到
    ~/.dsh/storages/dsh-context-compactor/summaries/.md(默认开启,
    可关 saveSummaryFile: false);
  • 总结调用生成上限默认 maxTokens: 12288(详细预算,可调大)。

3. context-overflow 自动恢复(专治 context length 报错)

  • provider 明确报上下文超限时,先详细总结压缩,再自动 retry 本轮请求;
  • 默认最多连续恢复 maxOverflowRetries 次。

4. 超大工具结果裁剪(辅助手段,不替代总结)

  • 超过 pruneThresholdChars(默认 8192 字符)的工具输出,保留头 + 标记 + 尾;
  • 只裁剪工具结果文本,对话历史一律走详细总结,绝不粗暴截断。

5. 输入框上方的「压缩总结」+「提示增强」按钮

  • 浏览器半边通过 dsh.client 清单自动发现,注册到 conversation.input.dock
    (输入框正上方,与 goal/todo 工具条同一排);
  • 工具条实时显示上下文用量百分比(contextPressure 投影),到 80% 自动
    高亮提醒;
  • 左侧按钮「压缩总结」:点击通过 remote.commands.execute(sessionId, &#x27;/compact&#x27;)
    立即触发全局详细总结压缩,按钮会显示「压缩总结中…」并在条上回显结果;
  • 右侧按钮「提示增强」:这是合并自 LLM-Prompt-Enhancer
    的功能,点击读取输入框草稿,调用 DSH 当前模型增强为更清晰的提示词,
    自动写回输入框(无需额外 Groq Key);按钮显示「增强中…」并在条上回显结果;
  • agent 运行中按钮自动禁用;全新空白会话不显示。

6. 手动命令

命令 作用
/compact 立即【全局详细总结】并把全部较早历史压缩成一个 checkpoint
/enhance-prompt 用当前模型增强提示词(支持直接跟文本或 JSON {&quot;text&quot;:&quot;...&quot;})
/context-status 查看 token 用量、窗口、80% 阈值、风险与总结保存路径

默认配置

enabled: true
auto: true                      # 开启 80% 压力压缩 + overflow 自动恢复
thresholdRatio: 0.8             # 用量达到窗口 80% 触发【详细总结】压缩
retainRatio: 0.16               # 保留最近 16% 的原样对话
maxTokens: 12288                # 总结调用生成上限(详细预算)
compactionRetries: 1            # 一次压力压缩后仍超阈值时的追加尝试
maxOverflowRetries: 2           # context-overflow 恢复重试上限
saveSummaryFile: true           # 总结额外落盘到 ~/.dsh/storages/dsh-context-compactor/summaries/
pruneToolResults: true          # 只裁剪超大工具结果;对话历史一律走总结
pruneThresholdChars: 8192
pruneHeadChars: 4096
pruneTailChars: 1024
registerCommands: true

也可以给指定模型写精确覆盖策略:

modelPolicies:
- provider: deepseek
model: deepseek-chat
thresholdRatio: 0.7
retainRatio: 0.2
maxOverflowRetries: 3

工作原理(与官方架构一致)

DSH 的 dsh-web-app 会禁用宿主层的压缩后端,压缩由每个 agent preset 决定。
本插件不跟宿主层抢位置:它监听 agent/created(并补扫已存活 agent),对没有压缩
引擎的 agent 在其 agent scope 内用独立 isolate 挂载 compaction-basic 和
tool-result-pruner——等价于官方 standard preset 里的

- id: compaction
name: cordis:group
group: true
isolate: { compaction: true, toolResultPruner: true }
config:
- id: compaction-basic
name: &#x27;@deepseek-ai/dsh-compaction-basic&#x27;
- id: command-compact
name: &#x27;@deepseek-ai/dsh-command-compact&#x27;
- id: tool-result-pruner
name: &#x27;@deepseek-ai/dsh-compaction-tool-result-pruner&#x27;

因此:

  • 每个 agent 一个独立槽位,不会抢占全局服务名;
  • 即使 preset 自带默认引擎,本引擎的 prepend 监听器也会在自动压缩中先执行,
    保证“详细总结优先”;
  • 引擎生命周期跟随 agent,agent 销毁即回收。

安装

# 1. 构建(host: src → lib/index.js;client: src/client → lib/client.js)
bash scripts/build.sh

# 2. 加入 profile(写入 dependencies + bundles,重启后自动装配)
#    profile 包名:@dsh-external/dsh-context-compactor
#    根入口 index.js 同时兼容「按包根 index.js 导入」的 loader 约定。
#    浏览器按钮无需额外配置:clientModules 会通过 dsh.client 清单 +
#    exports[&quot;./client&quot;] 自动发现并伺服 lib/client.js。

# 3. 热装配(当前进程立即生效)
#    dev_install_package / dev_inject_plugin 指向本目录
#    若遇到 loader 模块缓存中毒,重启 DSH 即可(bundle 路径不依赖热装配)。

装配后刷新页面,输入框上方会出现「压缩总结」工具条;输入
/context-status 可查看用量与阈值。

说明

  • 总结调用会优先复用当前会话实际路由的 provider/model;也可用
    summarizationProvider + summarizationModel 指定专门的总结模型。
  • 单条消息本身就超过模型窗口时,任何表面压缩都无法修复——这种情况需要
    换更大窗口的模型或拆小输入。

常见问题

7 问
答案由本站依据条目字段整理,不引用上游原文
dsh-context-compactor 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:kusesad-1122/dsh-context-compactor#v0.5.7` 即可。

dsh-context-compactor 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-context-compactor 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-context-compactor 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.7-alpha.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2。版本较多,只列出前 8 个。

dsh-context-compactor 用的是什么许可证?

上游标注为 NOASSERTION。商用或二次分发前请到仓库确认许可证原文。

dsh-context-compactor 有哪些功能?

80% 自动详细总结、压缩后验保证变小、overflow 自动恢复、工具结果裁剪、一键压缩与增强。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

记忆与知识
按星标排序,可作替代方案

ruflo

ruflo

L3 · 安装规范通过 7.4 万 星

OpenViking

OpenViking

面向 DeepSeek Harness 的 OpenViking 记忆与上下文插件:pre-step 自动召回与画像注入、会话捕获、`vik

L3 · 安装规范通过 3.9 万 星

WeKnora

WeKnora

把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己

L4 · 沙盒安装通过 3.3 万 星

distilly

distilly

Distilly — Distill how they think into reusable Skills for any Agent o

L4 · 沙盒安装通过 2.5 万 星

EverOS

EverOS

L4 · 沙盒安装通过 1.3 万 星

MemOS

MemOS

L4 · 沙盒安装通过 1.2 万 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。