dsh-aux-degrade:讓 DSH 輔助調用更省更完整

前言

除了主對話,DSH 會後臺運行一系列輔助 LLM 調用,比如壓縮摘要、生成會話標題、增強提示。它們共享主對話的模型,但往往不指定推理努力級別,從而繼承了較高的推理設置,把輸出預算全消耗在推理上。結果就是:壓縮摘要被 max_tokens 截斷,截斷是靜默的,下一輪對話直接缺失部分上下文;會話標題寫到一半變成半個單詞。

dsh-aux-degrade 掛在 llm/stream 流水線上,在輔助調用發送前將其降級處理。

這是什麼

這是一個 DSH 1.5 輔助模型降級插件,由 xiamubumu 維護。它解決的是輔助調用(壓縮摘要、會話標題等)在默認高推理級別下被靜默截斷的問題。目前僅支持 DSH 1.5(>=0.1.5-rc.2 <0.2.0),後續會跟進更新。

核心功能

插件在同一個 llm/stream 掛鉤中完成四件事:

1. 降低推理努力到 off

當滿足以下任一條件時,調用被標記爲輔助調用,其 reasoningEffort 被覆蓋爲 off:

  • 按用途:purpose 在配置的 purposes 列表中(默認包含 compaction、session-title、title)
  • 按發起插件:發起方在 auxPlugins 列表中(默認識別 dsh-prompt-enhance)
  • 按形狀:未聲明 purpose 且 tools 不是數組

如果調用方自己明確指定了 reasoningEffort,則不覆蓋,尊重調用方的意圖。

若要使用不同級別(非 off),可通過 config.effort = 'low' 等配置。

2. 將 maxTokens 提升到至少 1024

某些調用會設置極小的 maxTokens(最差情況爲 1),同時伴隨高推理級別,導致正文還沒開始就被截斷。插件設置了一個下界:不小於 1024。

可通過環境變量覆蓋:

DSH_AUX_MAXTOKENS_FLOOR=2048    # 使用不同下界
DSH_AUX_MAXTOKENS_FLOOR=0       # 關閉此項

3. 向壓縮指令追加兩個忠實保留要求

壓縮摘要最大的風險不是”短”,而是”丟失信息”。在壓力下,摘要生成器會優先敘事,丟棄路徑、命令、錯誤碼、約束等硬信息。

當 purpose === 'compaction' 時,插件會在壓縮指令末尾追加兩個節:

## Standing facts & constraints (MUST keep verbatim)

## Commands & outcomes (MUST keep verbatim)

如果指令已包含這兩節,則不再重複追加(冪等)。

4. 清除壓縮調用的 tools

壓縮摘要不需要調用工具。保留工具定義既佔用提示空間,又可能讓模型”順手多調用幾個工具”,把本應是純文本摘要生成變成多次往返。

當 purpose === 'compaction' 時,插件會清除 tools。可通過 config.noTools = false 關閉此行爲。

安裝與啓用

在 DSH 的 profile 中配置 cordis.patch.yml:

- id: aux-degrade
  config:
    enabled: true
    purposes: []
    models: []
    effort: off

配置說明:

  • enabled:控制 #1(降低推理努力)。默認爲 false,但在本倉庫的 cordis.patch.yml 中被設置爲 true
  • purposes:按用途識別輔助調用,默認爲 ['compaction', 'session-title', 'title']
  • auxPlugins:按發起插件識別輔助調用,默認爲 ['dsh-prompt-enhance'];傳入 ['__none__'] 可完全禁用此標準
  • models:指定生效的模型列表,不填則對所有模型生效
  • effort:降級後的推理努力級別,默認爲 'off'
  • noTools:是否對壓縮調用清除 tools,默認爲 true

⚠️ enabled: false 並不等於”零副作用”。它只停止 #1;#2、#3、#4 在代碼中在 enabled 檢查之前執行,一旦滿足條件即生效。要關閉 #2,使用 DSH_AUX_MAXTOKENS_FLOOR=0;要關閉 #4,使用 config.noTools = false;#3 沒有單獨開關。

官方補丁要求

插件要求應用一個官方補丁 pi-ai-max-tokens-floor,修改 @earendil-works/pi-ai 的 dist/api/simple-options.js。上游 pi-ai 會將 max_tokens 限制爲 1,導致輔助調用返回 1~2 個字符,摘要真正丟失的信息不會出現在上下文中。

補丁由本插件通過對話框通知,用戶可通過三種方式之一應用:

  • 方式 A:點擊”複製提示”,交給自己的 agent 執行
  • 方式 B:運行 node apply.mjs --check 檢查,再運行 node apply.mjs --apply --only pi-ai-max-tokens-floor
  • 方式 C:手動用 git apply -p1 應用

補丁庫地址:https://github.com/xiamubumu/dsh-patch-library

檢測機制:使用內容哈希(pristine / patched)配合 *.orig 備份。當無法判斷時,插件會顯示”cannot tell”且不會猜測”已應用”。補丁應用後對話框不再出現,”不再提醒”是永久記錄的,不影響後續新增補丁的通知。

適用場景與注意

適合需要穩定壓縮摘要和會話標題的場景,尤其是默認推理級別較高、容易出現靜默截斷的環境。

本插件以 DSH 進程權限運行,安裝前建議檢查源碼與許可證(MIT)。

小結

dsh-aux-degrade 通過降低推理努力、設置輸出額度下界、強制保留關鍵信息和清除冗餘工具調用,讓壓縮摘要、會話標題等輔助調用既節省資源又完整可靠。它只在輔助調用上生效,不影響主對話請求,與同類插件衝突風險很低。

  • 目錄頁:https://www.skillhub.cn/plugins/xiamubumu/dsh-aux-degrade
  • GitHub:https://github.com/xiamubumu/dsh-aux-degrade
羽毛球分组比赛记分
小程序二维码

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

小夜