前言¶
在 DeepSeek Harness(DSH)里跑长会话时,上下文压缩会触发官方 @deepseek-ai/dsh-compaction-tool-result-pruner:对超长工具结果做头尾保留。上游实现对每个文本块用 Array.from(text) 展开成码点数组,再 slice().join(''),长字符串会多分配整串临时数组。工具调用频繁、结果又大时,这部分 CPU 与分配会叠在压缩路径上。
Harzva 维护的 dsh-leet-accelerator(当前发布版 0.4.1,MIT)是独立可选 bundle:在 patch 生效范围内替换 toolResultPruner provider,保留官方 pruneSession(影子计价、token 计量、回放)。默认 enabled: false 时完全委托上游,输出与行为不变;打开优化开关后再走分配更克制的实现。项目与 OpenBot 无关,也不是 DeepSeek 官方插件。
这是什么¶
一句话:面向 DSH 的工具结果裁剪 provider 替换层,附带四项独立配置开关,其中两项可在 Web 对话界面切换。
- 维护者:Harzva
- 仓库:github.com/Harzva/dsh-leet-accelerator
- 社区目录页:skillhub.cn/plugins/Harzva/dsh-leet-accelerator(第三方站点,与 DeepSeek / 幻方无官方从属关系)
- 分类:模型推理(目录归类);本质是 compaction 路径上的算法可选实现
DSH 生态采用「一切皆插件」;Discover 等索引由用户自行添加第三方 index.json。README 写明本项目尚未被任何具体 DSH 市场索引收录,GitHub dsh-plugin topic 仅便于检索。
相对上游改了什么¶
上游参考实现位于 DeepSeek Harness 仓库中的 compaction-tool-result-pruner。本插件通过 cordis.patch.yml 在同一作用域注册自己的 provider,并会禁用该作用域下的官方 tool-result-pruner 行——不要对同一 toolResultPruner 作用域同时启用两个 provider。
四个配置开关(enabled × fastLength × shortCircuit × sessionMetrics 共十六种组合均有测试):
| 开关 | 默认 | 作用 |
|---|---|---|
enabled |
false |
为 true 时用线性 UTF-16 扫描代替 Array.from,同遍记录是否存在有效代理对;无代理对时边界 O(1)。为 false 时走 super.measureContent / super.pruneContent,与官方一致。 |
fastLength |
false |
实验项,依赖 enabled。无相邻代理对时用正则探测,以 text.length 作码点数、跳过扫描;含代理对仍完整扫描。文档建议除非你自测负载,否则保持关闭。 |
shortCircuit |
true |
0.3.0 起:各文本块 text.length 之和是码点总数上界;上界已在阈值内则 pruneContent 返回 null、不扫文本,measureContent 仍精确。 |
sessionMetrics |
true |
0.4.0 起:单次 pruneSession 内用短生命周期、结构校验的 WeakMap 减少重复测量,并由已算位置推导 charsAfter;预算内会话惰性不建缓存。false 时回到 0.3.0 路径。 |
0.4.1 为加固版本:模块加载时对 PRUNE_MARKER 做纯 ASCII 断言(assertSafeMarker()),上游若改成非 ASCII 会 fail fast;无新增算法开关。Web 客户端在 conversation.hero.options 注册 线性裁剪 与 快速计数(实验) 两个按钮,通过官方 agentPresets.select 切换派生 preset,不 monkey-patch 上游。shortCircuit 与 sessionMetrics 无 Web 按钮,靠 provider 默认或 --patch 覆盖。
安装与兼容范围¶
parity 测试针对 DSH 0.2.2-rc.1;package.json 声明 engines.dsh 为 >=0.2.2-rc.1 <0.3.0,范围内其它版本未验证。Node >= 24.9.0。peer 需与运行实例一致:@deepseek-ai/dsh-compaction-tool-result-pruner 0.2.2-rc.1、@deepseek-ai/schemastery ~3.19.0。
纯 JS、无构建步骤;Git 安装不需要 prepare 或 pnpm allowBuilds,仍建议固定 tag 或 commit SHA。
下面按 README 中文说明安装(将 YOUR_WEB_PROFILE 换成你的 profile 名):
# Git 源码安装,固定到发布 tag(不需要构建许可)
dsh plugin --profile YOUR_WEB_PROFILE add github:Harzva/dsh-leet-accelerator#v0.4.1
# ...也可以改用精确的 commit SHA 固定
# 或安装发布 tarball
dsh plugin --profile YOUR_WEB_PROFILE add ./dsh-leet-accelerator-0.4.1.tgz
# 查看组合层,然后启动
dsh --profile YOUR_WEB_PROFILE --dump-config
dsh --profile YOUR_WEB_PROFILE
# 升级 / 卸载
dsh plugin --profile YOUR_WEB_PROFILE update dsh-leet-accelerator
dsh plugin --profile YOUR_WEB_PROFILE remove dsh-leet-accelerator
--dump-config 只证明配置层组合,不能证明 Web 会话实际用了哪个 provider;细节见仓库内 VERIFICATION.md。
安全与权限:插件以当前 DSH 进程权限运行,bundle patch 会改 compaction provider。安装前应阅读源码与 MIT 许可证,确认信任维护者与固定版本。
典型用法¶
1. 默认保守:仅安装,不打开优化¶
安装后若 patch 中 enabled 仍为默认 false,行为与官方 pruner 一致,适合先验证会话与回放无差后再开优化。
2. Web 界面切换算法路径¶
从 standard 派生三份 preset(id 固定,勿与自定义预设冲突):
| 预设 id | 含义 |
|---|---|
leet-comparison-off |
仅官方 provider |
leet-comparison-linear |
enabled: true,fastLength: false |
leet-comparison-fast |
enabled: true,fastLength: true(实验) |
按钮对当前空白会话及之后新建会话生效;已锁定 preset 的会话会被 Host 拒绝切换。卸载插件前宜把相关会话切回 standard,否则曾用 leet-comparison-linear / leet-comparison-fast 的历史会话可能无法恢复裁剪 provider 组合。
3. 非 Web:bundle patch 或本地 control¶
不想动 user profile 时,可:
- 在
cordis.patch.yml或后续--patch中写入dsh-leet-accelerator行并设enabled: true等字段;patch 会替换整份config,需把thresholdChars、headChars、tailChars及非默认开关一并写全。 - 在插件目录执行
npm run control,用本地 HTTP 写control/accelerator.patch.json,启动示例:
dsh --profile NAME --patch /absolute/path/to/control/accelerator.patch.json "任务"
该文件供下次启动读取,不检测已运行实例;勿暴露到公网,勿多进程同时编辑。
适用场景与注意¶
适合谁:在 DSH 0.2.2-rc.1 上开发智能体,会话里经常出现触达裁剪阈值的长工具输出,希望在保持与官方输出一致的前提下,降低 measureContent / pruneContent / pruneSession 路径上的分配与重复扫描;并希望在 Web UI 上对比「官方 / 线性 / fastLength」而不改上游代码。
不必指望什么:README 与 VERIFICATION.md 反复强调——文档中的 benchmark 是算法局部测量(如 benchmark/compare.js、benchmark/session-compare.js),不是真实模型任务、端到端耗时、Token 用量或成功率。尚未有可靠的真实模型前后对照;一次真实请求曾返回 HTTP 402,未触发 pruner。
其它限制摘要:
fastLength在 emoji 密集、混合、多块输入上收益不稳定,默认关闭。shortCircuit主要惠及预算内内容;超阈值长结果仍要完整扫描,由sessionMetrics优化会话内重复测量。- Web 顶层 bundle patch 不控制 Web 会话隔离的 compaction 组;Web 请用派生 preset。
- 社区目录页星标等信息可能与 GitHub 不同步;以仓库 tag 与
package.json版本为准。
结尾¶
dsh-leet-accelerator 把工具结果裁剪做成可关、可分段验证的替换 provider:enabled: false 时上下文保护与官方一致,打开后配合 shortCircuit 与 sessionMetrics 针对长文本与超阈值会话减少无用扫描。若你在 Harness 上压测 compaction,可先固定 v0.4.1 安装,用 Web 按钮或 patch 做小范围对比,再决定是否长期启用 fastLength 等实验项。
- 目录页:https://www.skillhub.cn/plugins/Harzva/dsh-leet-accelerator
- GitHub:https://github.com/Harzva/dsh-leet-accelerator