dsh-leet-accelerator:DSH 工具結果裁剪的可選加速補丁

前言

在 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 對話界面切換。

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 時,可:

  1. 在 cordis.patch.yml 或後續 --patch 中寫入 dsh-leet-accelerator 行並設 enabled: true 等字段;patch 會替換整份 config,需把 thresholdChars、headChars、tailChars 及非默認開關一併寫全。
  2. 在插件目錄執行 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜