前言¶
在 DeepSeek Harness(dsh)里跑多步智能体时,模型在每次工具调用前都会经历一段推理(thinking)阶段,这部分往往占掉大部分墙钟时间。若把 reasoning_effort 固定为 high,连 cat package.json 这类轻活也会拖慢;固定为 low 又容易在迁移、排错等重任务上想不够。社区里已有按会话级工具调用历史来调档的插件;本插件把主信号改成「当前这一轮用户到底在问多难的事」,工具活动只作修正。
下面介绍维护者 lion231226 发布的 dsh-auto-reasoning-effort(分类:模型推理)。它是 dsh-thinking-levels 4.4.8(MIT)的 fork,替换调度逻辑而非简单改名;上游 UI、配置管道等保留,调度语义由「会话工具史」改为「任务难度优先」。
这是什么¶
dsh-auto-reasoning-effort 是面向 dsh 的插件:在会话模型选择器里选 Auto 时,针对每一次 agent/request,根据当前任务难度在模型支持的线级 low、high、max 之间选档,并注入 reasoningEffort;你仍可在选择器、插件配置或消息里的 [effort: …] 标记中手动固定档位,手动选择优先于调度器。
- 目录页:https://www.skillhub.cn/plugins/lion231226/dsh-auto-reasoning-effort
- 源码与文档:https://github.com/lion231226/dsh-auto-reasoning-effort
- 许可证:MIT(fork 保留上游 LICENSE / NOTICE)
- npm 包版本(资料中 package.json):
0.1.0
核心功能¶
每次 agent/request,插件大致按下列顺序工作(资料原文步骤):
- 取当前轮最新用户消息,做难度分类(
trivial/simple/moderate/complex,以及显式 override)。 - 将难度映射为基础档位(
low/high/max)。 - 若本轮工具采样不少于 2 条,可用本轮工具活动微调档位。
- 用滞后(hysteresis)避免档位在相邻请求间来回跳。
- 钳制到模型实际宣告的档位;不支持时优先取邻近更低的一档(与上游 fork 差异之一)。
- 写入
reasoningEffort,并在日志中记录决策及reasons[](例如len:812、kw:重构、stack-trace)。
与上游 dsh-thinking-levels 的主要区别(摘要):
| 维度 | dsh-thinking-levels 4.4.8 | dsh-auto-reasoning-effort |
|---|---|---|
| 主信号 | 会话级工具调用历史 | 当前 prompt 难度(长度、关键词、结构、错误等) |
| 采样窗口 | 整会话一个 ring buffer | 按轮隔离,新 prompt 清空窗口 |
| 失败回退 | 回退到低档 | 默认 safeFallback 为 high,避免静默降档 |
| 不可解释性 | 主要输出档位 | 每决策附带 reasons[] |
若模型选择器、插件 level 配置或消息中的 [effort: …] 已指定手动档位,调度器跳过。
安装与启用¶
环境要求(README):Node.js 22.19+(或 24+);dsh 版本需在 package.json 声明的 peer 范围内(截至资料列举的 rc 项至 0.2.1-rc.3);使用随 pnpm 11 提供的 dsh CLI。
1. 从 GitHub 安装(会执行 prepare 构建)
dsh plugin --profile web add github:lion231226/dsh-auto-reasoning-effort
2. 从 npm 安装(预构建 lib/,无需本地 build)
dsh plugin --profile web add dsh-auto-reasoning-effort
3. 从 dsh-market(GUI)
在 dsh-market 插件浏览器中搜索 dsh-auto-reasoning-effort 安装;若尚未上架,用上面 CLI 方式。
安装后需重启宿主进程(运行中的 dsh web 不会热加载新 bundle):
dsh web
实用说明:
- web profile 是 pnpm workspace 根目录;若
dsh plugin add报 workspace 相关错误,可在命令后加-w。 - 从 GitHub 安装会跑包的
prepare;pnpm ≥ 10 默认阻止依赖构建脚本,可能需在 profile 的pnpm-workspace.yaml里批准allowBuilds;若不想授权,可改用 npm 或打包 tarball 安装。 - 安装前请移除已装的 dsh-thinking-levels——两个调度器同时写同一请求的
reasoningEffort会冲突。
更完整的先决条件、验证与排错见仓库 INSTALL.md 与 INSTALL.zh.md。
配置要点¶
配置有两处入口,共用同一 schema:profile 合成文件(cordis.yml)里插件行的 config:,以及 Settings → Plugins 里由 .volatile() 生成的表单字段(改后下一请求生效,无需重启)。关键词列表与 models 需在 composition 层编辑。
| 键 | 类型 | 默认 | 含义 |
|---|---|---|---|
enabled |
boolean | true |
总开关;关闭时不注入 |
level |
见 README | auto |
会话未选时的默认;auto 表示按请求调度 |
allowDowngrade |
boolean | true |
允许调度器在简单任务或简单工具主导时选 low |
allowUpgrade |
boolean | false |
允许对 complex 与重工具负载选 max;关闭时 complex 封顶 high |
hysteresisSteps |
1–10 | 2 |
连续相同决策多少次才真正改线级;1 即关闭阻尼 |
safeFallback |
low | high | max |
high |
无法读取会话投影或难度输入解析失败时的档位 |
难度相关关键词可在 difficulty.complexKeywords、heavyKeywords、simpleKeywords、trivialKeywords 中定制;默认值见 README 中的 YAML 片段。models 可按 provider/model 覆盖 vision、thinking、efforts、contextWindow 等能力。
典型用法¶
- 按上文任选一种方式安装插件,重启
dsh web。 - 在会话模型选择器中选择 Auto(或将插件
level设为auto)。 - 正常对话:轻量查询倾向
low,带栈 trace、重构/迁移等关键词的重任务倾向high或max(受allowUpgrade等约束);查看日志中的档位与reasons[]核对调度理由。 - 需要固定档位时:在模型选择器里手动选线级、在插件配置里设
level,或在用户消息中使用[effort: …]标记——这些都会跳过自动调度。
适用场景与注意¶
适合在 dsh 智能体开发中希望按请求平衡推理耗时与任务复杂度、又不想手工每轮改 reasoning_effort 的开发者。与固定高档或纯工具计数调度相比,本插件强调「用户当前在问什么」。
使用前请注意:
- 插件在当前 dsh 进程权限下运行;从 GitHub / npm 安装前建议阅读源码与 MIT / NOTICE,确认与现有 dsh-thinking-levels 不并存。
- DeepSeek Harness 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
- 本介绍事实来自项目 README 与
package.json;行为细节以仓库当前文档为准。
结尾¶
dsh-auto-reasoning-effort 在 dsh 的 Auto 模式下,用任务难度(辅以本轮工具信号与滞后、钳制)为每次请求选择 low / high / max,并保留手动定档与可解释的 reasons[]。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库。