前言¶
在 DeepSeek Harness(DSH)中,思考强度不是任意运行时开关,而是严格的模型能力声明(reasoningEfforts)。官方目录中的模型(如 DeepSeek Reasoner、OpenAI o1/o3)自带该声明,在 DSH 的模型选择器中会直接显示二级菜单「Reasoning Effort >」。但第三方或自定义模型(如 StepFun 的 step-5-preview、智谱的 glm-5.3,或代理网关)在 DSH 的自定义模型设置界面中不暴露 reasoningEfforts 字段,导致 DSH 将其当作纯文本模型处理,隐藏了思考强度选择器。若强行发送参数,上游网关会返回 UNSUPPORTED_REASONING_EFFORT 错误。
dsh-think-intensity 是一个 DSH 思考强度策略插件,通过在已声明模型中补充 reasoningEfforts 声明,让 DSH 原生显示「Reasoning Effort >」菜单。插件由 fengzhiyushui 维护,当前版本为 0.1.0,采用 MIT 许可证。
插件定位¶
- 名称:dsh-think-intensity
- 维护者:fengzhiyushui
- 分类:模型推理
- 仓库:https://github.com/fengzhiyushui/dsh-think-intensity
- 简介:在模型已有档位之上决定每次请求用哪一档思考强度,支持可观测、可回滚
核心功能¶
- 原生菜单激活:通过补充
reasoningEfforts声明,让 DSH 在模型选择器中显示「Reasoning Effort >」二级菜单。插件不使用浮层或自定义滑块,而是完全使用 DSH 官方原生 UI 组件。 - 明确选择优先级:当用户在 UI 中手动选择某一档时,插件 100% 保持该选择,不做覆盖。
- 默认策略注入:当用户未手动选择时,插件根据配置注入默认档位。支持全局默认档位(
defaultLevel)、子代理会话专用档位(subagentLevel)以及按任务目的映射(purposeLevels)。 - 自愈回退机制:在会话中自动记录被上游网关拒绝的档位,并在后续请求中避免重试,防止无限循环。
- 可逆与隔离:安装与卸载不会留下残留覆盖,卸载后配置回归 DSH 原生行为。
安装与启用¶
插件依赖 DSH 版本 >=0.1.7-rc.1 且 <0.3.0,Node.js 版本 >=22.19.0 或 >=24。推荐通过 npm 安装。
- 安装插件
桌面应用安装:
dsh plugin --profile desktop add dsh-think-intensity
Web 应用安装:
dsh plugin --profile web add dsh-think-intensity
- 通过 GitHub Release 标签安装(锁定版本)
dsh plugin --profile desktop add github:fengzhiyushui/dsh-think-intensity#v0.1.0
- 通过本地目录安装
dsh plugin --profile desktop add /path/to/dsh-think-intensity
- 卸载插件
dsh plugin --profile desktop remove dsh-think-intensity
# 验证卸载干净
dsh --profile desktop --dump-config
典型用法¶
- 配置文件路径
DSH 在各操作系统下将配置补丁存储在对应配置文件中:
| OS | Desktop App (desktop profile) |
Web App (web profile) |
|---|---|---|
| Windows | %USERPROFILE%\.dsh\profiles\desktop\cordis.patch.yml |
%USERPROFILE%\.dsh\profiles\web\cordis.patch.yml |
| macOS | ~/.dsh/profiles/desktop/cordis.patch.yml |
~/.dsh/profiles/web/cordis.patch.yml |
| Linux | ~/.dsh/profiles/desktop/cordis.patch.yml |
~/.dsh/profiles/web/cordis.patch.yml |
- 基础配置示例
在对应配置文件中添加 think-intensity 插件配置:
- id: think-intensity
config:
defaultLevel: high # 未手动选择时的全局默认档位;空 = 不干预
subagentLevel: max # 子代理会话的专用档位;空 = 回退到 defaultLevel
providers: [] # 白名单路由;空 = 所有路由
purposeLevels: # 按内部任务目的映射档位
compaction: low # 内存压缩时降低思考强度以节省 token
session-title: off # 会话标题生成时不开启思考
backfillEnabled: true # 自动回填缺失的 reasoningEfforts 声明(默认为 dry-run)
- 手动声明 reasoningEfforts(不使用自动回填)
如果不想启用自动回填,也可在 cordis.patch.yml 中手动为模型添加 reasoningEfforts 字段:
- id: llm-pi-ai
name: "@deepseek-ai/dsh-llm-pi-ai"
config:
providers:
stepfun:
models:
- id: step-5-preview
name: step-5-preview
contextWindow: 1024000
reasoningEfforts:
off: null # off 表示不发送任何思考参数
low: low
medium: medium
high: high
max: max
重启 DSH 后,模型选择器中的「Reasoning Effort >」菜单将立即生效。
适用场景与注意¶
- 适用场景:需要为第三方或自定义模型统一管理思考强度档位、希望避免手动拼接
reasoningEfforts声明,或在子代理、特定任务(如会话标题生成、内存压缩)中差异化控制思考强度的场景。 - 注意事项:
- 插件以当前 DSH 进程权限运行,安装前应检查仓库源码与许可证(MIT)。
- 升级 DSH 时需确认版本范围(>=0.1.7-rc.1 <0.3.0)与插件兼容性。
- 配置项中
defaultLevel与subagentLevel可为空,此时插件不会干预,仅依赖 DSH 原生行为。 - 插件通过
cordis.patch.yml修改配置,修改后建议重启 DSH 以确保生效。
结尾¶
dsh-think-intensity 提供了一套可观测、可回滚的思考强度管理方案,在不改变 DSH 原生 UI 交互的前提下,为第三方模型补全能力声明。如需查看更多细节或贡献代码,可访问插件目录页或 GitHub 仓库。