用 dsh-tool-turbo 按轮自动调节 DeepSeek Harness 的推理档位

前言

DeepSeek Harness(dsh)把模型、工具、会话、循环都做成插件,智能体跑起来之后,真正耗时的往往不是某一次 readbash,而是模型在每一次工具调用前重新思考。作者 Electricitysheep 在仓库 README 里用一个例子说明这个现象:一条五十步左右的工具链,可能有好几分钟花在工具与工具之间的思考上,而不是花在工具本身。

2026 年 8 月 13 日前后,DeepSeek 的对话接口把思考强度做成了可调参数 reasoning_effort。官方适配器 @deepseek-ai/dsh-llm-deepseek 把它落到请求配置里,可选 off / low / high / max,省略时默认 high;并且明确写了:agent/request 可以在每一步对话替换这个值。换句话说,插件有正规入口去改下一轮思考档位,而不用改任务提示词,也不用改 Harness 源码。

dsh-tool-turbo 做的就是这件事:看最近几轮工具调用像不像「简单、确定的读写」,简单就降到 low,活变重再抬回去。任务本身不用改。

这是什么

dsh-tool-turbo 是一个 DeepSeek Harness 主机插件,维护者是 Electricitysheep,仓库在 Electricitysheep/dsh-tool-turbo。社区目录把它归在「工作流与自动化」,主要语言是 TypeScript,当前版本在 package.json 里是 0.1.0,要求 Node.js 20 及以上。截至 2026-08-18,目录页和 GitHub 都显示 4 颗星。

它解决的问题很具体:长工具链里,简单步骤也按高档思考,墙钟时间会被思考阶段拖住。插件接入 dsh 的 agent/request 瀑布流,根据当前步骤最近的 tool/call 记录,给下一次模型请求注入它认为合适的 reasoningEffort。目录页的概括是:简单工具链用低档、重活再提档,对任务本身零改动。

需要先说清楚生态位置。DeepSeek Harness 官方理念是「一切皆插件」,源码在 deepseek-ai/deepseek-harness。本文用的检索入口 deepseek-harness-plugin.com 是独立的社区目录,站点自己也写了:与 DeepSeek、幻方没有官方从属或赞助关系,不托管插件代码,条目只指向维护者仓库。不要把它当成官方应用商店。

工作原理

官方 LLM 适配器在每一步都会重新解析请求配置。dsh 的 agent 循环允许插件在 agent/request 里提出下一轮的 GenerateOptions(插件源码指向 packages/core/agent-loop/src/agent.tsbuildRequest)。dsh-tool-turbo 挂在这个入口上,流程可以分成三步。

1、观察。从当前会话的 session.events 里,倒序收集最近的 tool/call 记录,窗口大小是 8 条,再按时间正序交给决策函数。每条样本只保留工具名和参数字符长度,不改工具参数本身。

2、决策。纯函数 decideEffort 根据最近调用的「简单工具占比」和「最重载荷」选出 low / high / max。源码把「简单、确定」的工具名做成正则,前缀包括 fsbashreadwritegrepglobedit 以及常见的 ls / cat / mkdir 等;参数字符数达到 800 就不算小载荷。这段逻辑没有外部依赖,仓库用 Vitest 单独测。

3、注入。监听器先 await next() 拿到下游已经拼好的请求配置,再覆盖其中的 reasoningEffort,并打一行 [tool-turbo] agent/request: ... 日志。任务提示、工具列表、会话内容都不动。

同一份插件还挂了 agent/tool,在工具 start / end 之间记墙钟耗时,写到 host 日志。README 路线图里,「把耗时呈现在 UI / agent 上下文」还没做,目前只能在日志里看。

决策策略

决策表以 README 为准,并和 src/effort-decision.tstests/effort-decision.spec.ts 对过。规则可以记成下面几条。

最近的工具调用 决策
无(全新提示,还没有工具调用) 保持用户选择的档位
至少 75% 是简单工具、参数较短,且允许降档 low
混合工具或重工具,且允许升档 high
单次参数达到约 3200 字符(源码阈值是 800×4),且允许升档 max
其他 保持用户选择的档位

默认配置在 src/index.tsDEFAULT_CONFIG 里:

  • enabledtrue(插件加载后默认工作)
  • allowDowngradetrue(允许从基线往下降)
  • allowUpgradefalse(默认不升到 max,偏保守)
  • baselinehigh

README 把这三个开关称为规划中的 settings 命名空间(走 dsh-settings)。路线图对应项仍是未完成,所以现在不要指望有一块现成的设置面板;若要改开关,需要看 Cordis 插件配置怎么传到 apply(ctx, config),而不是把它写成已经交付的 UI。

单元测试覆盖了几件关键行为:全新提示保持基线;bash / fs_read / fs_write 这类小参数调用会降到 low;关掉 allowDowngrade 后不再降档;超大载荷只有在 allowUpgrade 打开时才升到 maxweb_searchmcp__db 这类混合调用会抬到 high。仓库声称 6/6 测试通过,并且 tsc --noEmit 干净。README 还贴过真实 dsh 实例里的日志:基线 high、尚无工具调用时保持 high,出现 write 之后变成 low

源码注释里,作者认为简单任务大约九成墙钟时间花在思考阶段,并把 high 降到 low 可能把思考时间缩到原来的几分之一。这是仓库作者的判断,本文没有独立复测,当背景说明即可,不要当成已经公布的基准成绩。

安装与启用

社区目录页给出的安装命令如下,在 DeepSeek Harness 终端里运行即可:

dsh plugin add github:Electricitysheep/dsh-tool-turbo

dsh CLI 会从 GitHub 解析插件并装进当前配置。目录页同时提醒:如需可复现安装,请固定 commit 哈希。截至 2026-08-17,仓库 main 最新提交是 d29e7d9d73032516e37797ea69592ce18e0fe05f(这次提交补上了 dsh.bundle 清单和 cordis.patch.yml,以便走 dsh plugin add)。固定写法是:

dsh plugin add github:Electricitysheep/dsh-tool-turbo#d29e7d9d73032516e37797ea69592ce18e0fe05f

仓库自带的 cordis.patch.yml 会插入 id: dsh-tool-turboname: dsh-tool-turbo。README 里还有一套本地 clone + link: 注册到 ~/.dsh/profiles/web 的写法,适合改源码调试;那份说明里的插件 id 写成了 tool-turbo,和仓库文件不一致,以 cordis.patch.yml 原文为准。README 也写了:headless / TUI 等其它 profile 的安装文档还在路线图上,目前示例以 web 为主。

安装后按 README 重启对应 profile,例如:

dsh web

package.json 声明的 peer 依赖是 @deepseek-ai/cordis ^4.0.1、@deepseek-ai/dsh-agent@deepseek-ai/dsh-settings^0.1.0-rc.6。dsh 仍处于开发者预览,核心插件和 API 会继续变,装之前应对一下本机 Harness 版本。

典型用法

这个插件没有单独的「开始加速」命令。装上并重启之后,照常给智能体派活即可。它只在已经出现工具调用的步骤上改下一轮思考档位;第一条用户提示、还没有任何 tool/call 时,会保持你选的基线。

适合拿来观察的,是那种会连续 read / write / grep / bash 的仓库任务:改几个文件、搜一圈符号、再跑一条短命令。按默认策略,这类小参数、高简单工具占比的轮次会被降到 low。一旦后面出现 web_search、MCP 类工具,或参数变得很长,决策会停止降档;若你显式打开 allowUpgrade,特别重的载荷才可能升到 max

要确认它在工作,看 host 日志里有没有类似下面的行(README 提供的真实运行记录):

[tool-turbo] agent/request: baseline=high calls=[]                    => reasoningEffort=high
[tool-turbo] agent/request: baseline=high calls=[{"name":"write",}] => reasoningEffort=low

工具耗时则是另一类日志,格式是 [tool-turbo] tool <callId> took <ms>ms

适用场景与注意事项

更适合已经在 dsh 里跑长工具链、且大量步骤是读文件、写文件、搜索、短命令的人。它不替代模型选择,也不改工具实现,只是把「这一轮到底要不要高档思考」从固定配置变成按最近工具调用自动选。

下面几件事安装前要心里有数。

1、插件以当前 dsh 进程的权限运行,安装时可能执行代码。目录页把这条写在安装区,安装前应自己打开源码和许可证,而不是只看简介。package.json 与 README 声明许可为 MIT;GitHub 仓库元数据目前没有识别到独立的 LICENSE 文件,若合规上需要文件级声明,应向仓库确认。

2、默认不允许升档allowUpgradefalse 时,混合工具不会自动抬到 high(会保持你选的基线),超大载荷也不会自动变成 max。想让重活主动加思考,需要改配置,不能假定装上就会全程自适应到 max

3、「简单工具」是按名字前缀判断的。web_search、各类 mcp__... 不在简单集合里;参数一长,即便名字看起来像文件工具,也不会按小载荷处理。策略是启发式,不是对任务难度的精确分类。

4、settings 面板、UI 里的耗时展示、非 web profile 的安装说明,README 路线图里都还没勾完。当前能核实的是:决策核心、瀑布流注入、host 日志遥测。

5、reasoning_effort 最终还要过官方适配器的校验。适配器把 off 做成关闭思考,low / high / max 才会作为官方的 reasoning_effort 发出去;不支持的值会在发网前以 UNSUPPORTED_REASONING_EFFORT 失败。这个插件注入的是后三档。若部署把思考锁成 thinking: disabled,再注入 low 也没有意义。

小结

dsh-tool-turbo 把 DeepSeek 已经提供的思考档位,接到了 dsh 每一步都会走的 agent/request 上:简单工具链降到 low,重活再考虑抬回去,任务提示不用改。它是社区维护的早期插件(0.1.0,星标 4),设置项和界面还没做完,但安装命令、决策表和源码路径都可以在目录页与 GitHub 上对上。

目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-tool-turbo/

GitHub:https://github.com/Electricitysheep/dsh-tool-turbo

羽毛球分组比赛记分
小程序二维码

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

小夜