前言¶
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 仓库。