前言¶
DSH 在開發智能體時,通常會把一個大任務拆解成許多小任務(todo_write 清單裏的條目)。這些小任務性質各異:有的是規劃拆分,有的是寫函數,有的只是改個名字。如果統一使用 DeepSeek 的高推理等級(max),會浪費 token;如果統一使用低等級,遇到複雜邏輯又容易出錯。dynamic-thinking-chain 插件的作用,就是監聽每次模型請求前的上下文,根據當前正在做的那個小任務的難度,自動選擇最合適的推理等級。
插件概覽¶
- 名稱:
dynamic-thinking-chain - 描述:讓 DeepSeek 模型「按任務難度自動思考」的 DSH 插件
- 維護者:LovelyDazai
- 分類:模型推理
- 許可證:MIT
工作原理¶
插件在每次模型請求前介入,通過監聽 agent/request 瀑布流,只修改 reasoningEffort 一個字段。它通過分析 todo_write 裏的 in_progress 小任務文本、最新的人類指令、工具報錯次數等信號,計算任務難度,進而映射到 off/low/high/max 四個等級。
安裝¶
- 進入插件目錄並打包:
cd dynamic-thinking-chain
npm pack
- 安裝到指定 profile:
dsh plugin --profile desktop add file:D:/workplace/dynamic-thinking-chain/dynamic-thinking-chain-0.1.2.tgz
安裝後需重啓 DSH 進程(桌面版需先退出後臺再打開,Web 版需重啓 `dsh web`)。
配置¶
在對應 profile 的 C:\Users\<你>\.dsh\profiles\<profile>\cordis.patch.yml 中覆蓋配置:
- id: dynamic-thinking-chain
config:
enabled: true # 總開關
lowThreshold: 0.30 # 難度分 < 0.30 → low
highThreshold: 0.60 # 難度分 < 0.60 → high,否則 max
debug: false # 打印決策細節
常用配置項還包括 baseScore、lengthSteps、hardWeight、hardKeywords 等,具體可見 src/classifier.js 的 DEFAULTS。
推理等級與適用場景¶
插件根據任務難度自動分配以下等級:
max:最深思考- 適用場景:規劃/拆分大任務、算法、併發、安全、排查調試
high:較深思考- 適用場景:寫函數、單元測試、改代碼、寫文檔
low:輕度思考- 適用場景:打印 Hello World、改個名字這類瑣碎小任務
off:關閉思考- 適用場景:默認禁用(DeepSeek 限制,見下方注意事項)
注意事項¶
- 模型兼容性:插件只會對「支持推理等級」的模型生效。請確認當前會話模型爲 DeepSeek 系列(如
deepseek-v4-pro、deepseek-v4-flash),否則會被自動跳過。 - DeepSeek 會話限制:DeepSeek 規則規定,會話中途關閉思考會報
INVALID_REQUEST。因此插件默認不會使用off等級(除非是會話第一條請求)。 - 零依賴:插件本體零運行時依賴。
結語¶
該插件通過動態調整 reasoningEffort,實現了在保證複雜任務質量的同時,節省簡單任務的開銷。如需查看完整列表或源碼,可訪問目錄頁或 GitHub 倉庫。