前言¶
DeepSeek Harness(DSH)里若启用了上下文压缩,常见疑问是:输入 token 确实少了,最终回答会不会丢事实、多绕轮次或工具失败变多?社区里已有面向生产会话的压缩策略与监控类插件,它们更擅长「怎么压」和「省了多少」的统计;若要在同一模型、同一场只读对话里,只切换「压缩关 / 压缩开」做对照,并把 token、轮数、工具成功率、事实覆盖和答案差异写进一份可复现报告,就需要专门的量具而不是再做一个压缩策略。
下面介绍维护者 dingchenhui0618-arch 发布的 dsh-compress-bench(分类:模型推理)。它在 DSH 会话顶部提供「跑分」页签,用固定 fixture 沙盒镜像跑两遍,输出 JSON 与 SVG 对比图;插件以当前 DSH 进程权限运行,安装前应自行查看源码与 MIT 许可证。
这是什么¶
dsh-compress-bench 是装在 DSH 里的本地镜像 A/B 基准工具:同一只读场景、同一模型、同一组可验证事实,压缩关闭跑一遍、压缩开启再跑一遍,汇总输入 token(本地估算)、轮数、工具调用成功率、事实覆盖、最终答案差异,并生成 JSON 报告与对比 SVG。
它不是又一个压缩插件,也不承诺固定节省比例;优先使用宿主暴露的 toolResultPruner.pruneContent(blocks),若无则回退内置 line-reducer。项目独立实现,未 fork drscrewdriver/dsh-context-compression-improved 的代码;插件骨架沿用作者自己的 dsh-warden 约定。
核心功能¶
镜像 A/B 与只读沙盒¶
两侧各自新建消息数组,system、task、工具 schema、模型、temperature: 0 完全相同,固定顺序先关后开,跑完即销毁。场景仅允许 list / read / grep,只读 $DSH_HOME/compress-bench/fixtures/ 下生成的 fixture;绝对路径、.. 与符号链接逃逸会被拒绝,不写真实工作区、不起子进程。
事实埋点与答案评测¶
large-read 在手册头、中、尾各埋一个可验证值;multi-file 需跨 12 个模块汇总 TODO 总数、最高版本和最长文件名。事实按不区分大小写的完整值匹配;最终答案再做归一化 bigram 相似度与逐行 diff。事实覆盖下降、工具成功率下降、轮数增加、输出 token 明显增加或答案只在一侧出现的行,会进入 verdict 或 warnings。
指标与预算¶
头条对比使用两侧同一把尺的本地估算输入 token(启发式:CJK ≈ 1 token/字,其余 ≈ 4 字符/token);provider 上报的 usage 仅作参考——同一轮可能出现 cache-miss 统计与本地估算不一致,不宜跨侧直接当「真实输入」比较。
每轮模型调用前检查累计输入 token、轮数、工具调用数、墙钟时间;超限将该侧标为 budget-stopped。默认预算(可由 host 配置覆盖):输入 token 60,000 / 轮数 6 / 工具调用 12 / 墙钟 180 s。
产物¶
运行结果写入 $DSH_HOME/compress-bench/runs/:
<id>.json:schemadsh-compress-bench/report@1<id>.svg:880×560 自包含对比图
仓库内示例:docs/sample-report.json、docs/sample-chart.svg。
README 记载的单次本机实测(2026-10-28,large-read,chenyuzhiyun/deepseek-flash)为:本地估算输入 token 63,029 → 6,927(−89.0%),轮数 3→3,事实覆盖 3/3→3/3,最终答案相似度 1.00;该次压缩器为 line-reducer。这是单个场景、单次运行结果,不是通用结论。
安装与启用¶
环境要求(来自 package.json 与 README):
- DSH:
>=0.2.1-rc.2 <0.3.0 - Node:24(CI 用 22 验证兼容)
若从源码目录安装,需先构建:
node scripts/build.mjs
node --test test/*.test.mjs
然后在 DSH 插件管理里安装本仓库(本地目录或 github:dingchenhui0618-arch/dsh-compress-bench),启用后打开任意会话,顶部页签会出现「跑分」。
桌面版 profile 由 Electron 托管时,CLI 的 dsh plugin --profile desktop 会拒绝管理插件;请走应用的插件管理界面。安装或启用后若页签未出现,重载插件或重启 DSH。
典型用法¶
- 打开任意 DSH 会话,点顶部「跑分」。
- 选择场景:单文件长上下文(
large-read)或多文件中段聚合(multi-file)。 - 点「开始 A/B 跑分」。运行中可取消;同一时间只允许一个运行。
- 完成后查看结论条、五个指标、对比图、逐项账本、答案差异和 warnings。
- 在下方历史运行中打开旧报告,可下载 JSON / SVG。
适用场景与注意¶
适合:想在换模型、换压缩器或调 host 配置前后,用固定只读压力场景对比「省 token」与「事实 / 工具 / 答案」代价的 DSH 开发者;需要可归档的 JSON + SVG 证据而非口头估算时。
注意:
- 场景为合成 fixture,主要代表长工具结果类压力,不代表日常短会话;单次运行、固定先关后开,无统计显著性保证。
- 不同 reducer(
toolResultPrunervsline-reducer)的数字不宜混比;JSON 中runs.on.compression.reducer会如实记录。 - 插件不保存完整消息记录与绝对路径,仅保存 fixture 指纹与统计;报告不含凭据,详见仓库 SECURITY.md。
- 社区目录 SkillHub 插件页 与 GitHub 仓库为独立分发与源码入口,与 DeepSeek 官方无隶属关系;DSH 生态理念是「一切皆插件」,安装前请核对版本与权限边界。
结尾¶
dsh-compress-bench 用「先量,再信」的方式回答:同一场对话里压缩打开后 token 是否下降,以及事实覆盖、工具成功率和答案是否随之变差。需要进一步了解实现与局限时,可阅读仓库 README 与 sample 报告。
- 目录页:https://www.skillhub.cn/plugins/dingchenhui0618-arch/dsh-compress-bench
- GitHub:https://github.com/dingchenhui0618-arch/dsh-compress-bench