dsh-compact-value:一個設置項把壓縮閾值鋪到所有 Agent 模式

前言

在 DSH 裏,上下文窗口占滿到一定比例時會觸發自動壓縮,閾值由 compaction-basic.thresholdRatio 控制,上游默認是 0.8。這套參數寫在每個 Agent 預設自己的 composition 裏:標準、創造、極簡、ptc 各有一份。內置預設是部署自帶的聲明,用戶不能直接改 composition,若希望「所有模式都在 0.4 觸發壓縮」,只能手工複製多份 composition 並分別註冊——維護成本高,也容易漏改某一檔。

下面介紹社區插件 dsh-compact-value(維護者 ycm50):用一張設置卡片統一配置閾值與保留比例,按勾選的內置源模式自動生成帶新閾值的副本預設,並可選擇保存後把默認 Agent 模式切到優先生成的壓縮副本。

這是什麼

dsh-compact-value 是 DeepSeek Harness 的 Web 側插件(當前版本 0.4.0,MIT 許可證)。它不改變內置預設本身,而是讀取裝載器裏源模式的 composition,只改寫含 compaction-basic 的那一行的 thresholdRatio(其餘字段原樣保留,源組合不會被就地修改),再 agentPresets.register() 成新預設,id 形如 <源id>-compact-<閾值>(例如 standard + 0.4 → standard-compact-4,命名不允許小數點)。

參考宿主爲 DSH 0.2.0-rc.1,同時通過運行時探測兼容 0.1.5-rc.x 與 0.1.7+ 兩代設置模型。倉庫與安裝標識統一爲 dsh-compact-value(與目錄線索中的別名不同,以 README 與 package.json 爲準)。

核心功能

對每個源模式做什麼

對設置裏勾選的每個源模式,插件會:

  1. 從裝載器條目讀取源模式的組合(預設聲明行裏的 config 是交給 agentPresets.register() 的權威來源);
  2. 遞歸定位 compaction group 內的 compaction-basic,僅替換其中的 thresholdRatio;
  3. 註冊新預設並保留 register() 返回的註銷函數;閾值或勾選項變化時重新註冊,取消勾選或關閉總開關時通過註銷函數回收舊副本。

默認模式與優先級

生成的副本若無人選用意義不大,因此插件可選地在保存後把 新會話默認模式 指向其中一個副本(寫 agent-preset-registry 的 volatile selectedDefault)。多個副本同時存在時,優先級爲:標準 > 創造 > 極簡 > ptc(即 standard > cordis > minimal > ptc;表外自定義源排在四者之後,同檔按 id 穩定排序)。帶顯式閾值的副本會優先於未設置閾值的模式;若不想被改寫默認模式,可在卡片裏關閉「保存後設爲默認模式」(adoptDefault)。

設置項

設置入口在宿主 UI 中對應 設置 → 壓縮閾值。可寫字段共五個:

字段 默認 說明
enabled true 關閉並保存會回收本插件生成的全部副本
thresholdRatio 0.4 上下文佔用達到窗口的這個比例即觸發自動壓縮;必須 ∈ (0, 1)
retainRatio 0.16 壓縮後保留的最近上下文比例;必須小於 thresholdRatio
sourcePresets standard, minimal, ptc, cordis 要擴展哪些模式
adoptDefault true 保存後把默認模式切到生成的壓縮模式

不滿足 0 < retainRatio < thresholdRatio 時會拒絕對設置的寫入。profile(cordis.patch.yml)裏與本插件相關的持久寫入通常只有 selectedDefault 這一處指針;副本列表、跳過原因、接管前的默認模式等留在插件進程內存,重啓後「釋放時恢復用戶原選擇」可能退化爲 unset。

明確不做的事

  • 不劫持內置預設 ID;運行中的會話不會因閾值變更而重讀 composition(僅新建會話生效)。
  • 極簡模式 composition 裏沒有 compaction-basic 行時會跳過並打日誌,不會硬塞壓縮棧,因此不會生成 minimal 的壓縮副本。
  • 除默認模式指針外,不向 profile 寫入插件狀態。

安裝與啓用

在已配置 DSH Web profile 的環境中執行:

dsh plugin --profile web add github:ycm50/dsh-compact-value

安裝完成後需要重啓 dsh web,新增插件纔會加載;然後在 設置 裏打開「壓縮閾值」卡片。宿主 peerDependencies 對 @deepseek-ai/dsh-* 有 semver 預檢,不滿足會拒絕安裝(incompatible-version);本包已聲明支持到 ^0.2.0-rc.1。

典型用法

  1. 安裝並重啓 dsh web 後,打開 設置 → 壓縮閾值。
  2. 保持 enabled 爲開啓,按需調整 thresholdRatio(默認 0.4)與 retainRatio(默認 0.16)。
  3. 在 sourcePresets 中勾選需要擴展的模式(默認包含 standard、minimal、ptc、cordis;無壓縮棧的源會被跳過)。
  4. 若希望保存後新會話默認使用壓縮副本,保持 adoptDefault 爲 true;若需保留手選的默認模式,將其設爲 false 後再保存。
  5. 保存後,預設選擇器應能見到形如 standard-compact-4 的新模式(插件會在 roster 變化時補發相關設置事件,一般無需整頁刷新)。

卸載或禁用插件時,插件會撤銷對 selectedDefault 的接管(寫回接管前的值或 unset),避免指針指向已不存在的副本導致新會話解析失敗。

適用場景與注意

適合希望在 不手工複製 composition 的前提下,讓多個 Agent 預設共享同一套壓縮閾值(例如統一從 0.8 降到 0.4)的 DSH Web 用戶。也適合需要壓縮後保留比例與閾值一併校驗、並通過一張卡片管理源模式列表的場景。

使用前請注意:插件以當前 dsh 進程權限 運行,會註冊內存中的 Agent 預設並可能修改用戶層的默認模式指針;安裝前應自行查看 GitHub 倉庫 源碼與 MIT 許可證。DSH 生態強調「一切皆插件」;SkillHub 目錄頁 爲社區收錄站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-compact-value 把「給每個 Agent 模式單獨設 compression 閾值」收成五個設置字段:自動生成 -compact-<閾值> 副本、可選接管默認模式,並在卸載時清理懸空指針。需要進一步瞭解實現細節與兩代宿主差異,可直接閱讀倉庫 README。

  • 目錄頁:https://www.skillhub.cn/plugins/ycm50/dsh-compat-val
  • GitHub:https://github.com/ycm50/dsh-compact-value
羽毛球分组比赛记分
小程序二维码

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

小夜