前言¶
在 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