前言¶
除了主對話,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中被設置爲truepurposes:按用途識別輔助調用,默認爲['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