为 DSH 提供动态模型切换与思考深度调节:set_model / list_models 两个 Agent 工具让模型按任务难度自主切换 provider、model 与 reasoningEffort(思考深度),强制附带切换理由,带 Provider 白名单与上下文窗口 Token 水位护栏,活跃模型注入运行时上下文;进入 Plan 规划模式自动切换到配置的规划模型,退出自动恢复日常执行模型。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-set-model
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:john-walks-slow/dsh-set-model
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
为 DeepSeek Harness(DSH / cordis plugin)提供动态模型与思考深度切换的插件:Agent 通过 set_model / list_models 工具按任务难度自主切换 provider、model 与 reasoningEffort,插件把活跃模型注入运行时上下文,并随 Plan 模式自动升降级模型。
攻坚疑难问题时升到高推理档位,日常执行保持高性价比档位——不再需要用户手动改配置。
模型看到什么
插件通过 systemPrompt.context 在每个 step 的 Runtime Context 快照尾部注入一行当前活跃模型(cache-safe 追加,模型随时自查、无需调用工具):
[Current active model: deepseek/deepseek-chat · reasoning: low]
处于 Plan 模式时附带状态标记:
[Current active model: deepseek/deepseek-reasoner · reasoning: high] [Plan Mode Active]
工具:set_model
set_model({ provider?, model?, reasoningEffort?, reason }) —— reason 必填(每次切换都会使会话 KV cache 失效,工具说明要求 Agent 给出理由、避免频繁切换):
{ "model": "deepseek-reasoner", "reasoningEffort": "high", "reason": "疑难并发问题排查,需要深度推理" }
工具返回:
Model successfully switched to deepseek/deepseek-reasoner · reasoning: high. Effective from the next step.
Reason: 疑难并发问题排查,需要深度推理
工具:list_models
list_models({ provider? }) 列出已注册 Providers 与模型能力(推理档位、上下文窗口):
# Available Providers & Models:
## Provider: deepseek
- **deepseek-reasoner** (DeepSeek Reasoner) | Reasoning: [low, high, max] | Context: 128000
- **deepseek-chat** (DeepSeek Chat) | Context: 128000
切换自下一个 step 生效:插件向会话写入 model/selection 事件(与 GUI 模型选择器同一机制),Web UI 状态同步。
Plan 模式自动升降级
插件监听 agent/pre-step 的 Plan 投影状态变迁,零人工干预:
- 进入 Plan 模式(
/plan on):暂存当前日常模型,自动切换到配置的planModel(高智力规划模型); - 退出 Plan 模式(
exit_plan_mode批准 //plan off):自动恢复进入前的日常模型(autoRestorePlanModel,默认开启); - 自动切换失败仅 warn 降级,绝不打断 step。
安全护栏
Provider 白名单:
allowedProviders非空时,白名单外的切换请求直接拒绝;上下文窗口护栏:当前会话 token 水位超过目标模型 contextWindow 时拒绝切换,并提示先压缩上下文(如 clear_mind):
Current session token pressure (70000 tokens) exceeds target model context window (65536 tokens). Please compact context (e.g. clear_mind) before switching to this model.路由校验:候选组合经 DSH 核心
ctx.llm.resolveCallConfig校验(provider 适配器存在、模型合法、reasoningEffort 受支持),非法组合返回明确错误,不写入任何会话状态;仅根 Agent:工具只注册给根 Agent(subagent 不提供自主调模);
enableAgentTools: false可整体关闭。
配置
Settings 命名空间 dsh-set-model(Web Settings UI 可视化配置,改动运行时动态生效):
dsh-set-model:
planModel: # 可选:进入 Plan 模式自动切换的目标模型
provider: deepseek
model: deepseek-reasoner
reasoningEffort: high
autoRestorePlanModel: true # 退出 Plan 模式自动恢复日常模型(默认 true)
enableAgentTools: true # 是否注册 set_model / list_models 工具(默认 true)
allowedProviders: [] # 可选:可切换 Provider 白名单(空 = 不限制)
安装
dsh plugin --profile web add dsh-set-model
安装后无需手动改配置,插件自带的 cordis.patch.yml 自动挂载生效。
从 GitHub 直装(源码安装,pnpm ≥10 需允许构建脚本):
dsh plugin --profile web add github:john-walks-slow/dsh-set-model
# 首次 add 会被 pnpm 拦截:把 pnpm 提示的包名加入
# ~/.dsh/profiles/web/pnpm-workspace.yaml 的 allowBuilds 后重跑
权限与兼容
- 零直接副作用:无外部服务、无插件自身网络请求(模型路由与能力查询均经由 DSH 核心
llm服务)、无直接文件系统写入;仅通过会话事件 API 写入model/selection事件(由 DSH 会话系统落盘)并注入一行 Runtime Context - 依赖:
@deepseek-ai/cordis4.0.2 /@deepseek-ai/dsh-agent、dsh-llm、dsh-session、dsh-tools0.1.2-rc.1(与 dsh 0.1.2-rc.1 锁定版本对齐)、zod^3.24.2;Node ≥ 22.5 - 失败降级:Plan 模式自动切换失败只 warn 不打断 step;工具校验失败向 Agent 返回明确错误,不污染会话状态
本地开发
npm install
npm run build # tsc → dist/src
npm test # tsc(含 test) + node --test dist/test/*.test.js
License
MIT
发新版
改动入库后一条命令完成测试、版本号、打包(npm version 会自动 commit 并打 tag):
npm run release # patch;较大更新改用:npm version minor 或 major
然后指纹发布并推送:
node ~/.agents/skills/npm-publish/scripts/publish-webauthn.cjs /tmp/dsh-set-model-<新版>.tgz
git push --follow-tags
发布后 npm view dsh-set-model version 复验。批量发多个包时,在指纹页勾选“5 分钟内同 IP 不再挑战”,一次指纹即可连发。
链接
同类插件
V1ki/dsh-plugin-subscriptions★ 373
把 ChatGPT(Codex)、Claude、Grok 订阅当作 DeepSeek Harness 的 LLM 提供方:设置页登录、模型目录、用量展示,以及 image_generate、video_generate 与 x_search 工具。
Mars-Sea/dsh-commandcode-provider★ 289
非官方 Command Code 模型接入插件:注册 `commandcode` 路由,带实时模型目录与推理强度支持。
corrinehu/dsh-workbuddy-connect★ 140
将 WorkBuddy 桌面 App 包含的模型自动接入 DeepSeek Harness,在 DSH 对话窗口里零配置使用。
volcengine/ark-cli#ark-plan-api★ 133
在 DSH 原生模型选择器中注册方舟 Agent Plan、Coding Plan 与后付费模型路由。
franksong2702/dsh-codex-connect★ 114
通过 ChatGPT OAuth 将 OpenAI Codex 模型接入 DeepSeek Harness,并提供可选的搜索与图片工具。
Stormycry-cryp/dsh-AuthInOne★ 104
为 DeepSeek Harness 47f 提供账号登录、API 与自定义 Provider 配置、模型切换、纯文本模型图片兜底,以及 Token 与费用归因。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。