前言¶
在 DeepSeek Harness(DSH)里,provider 与 model 可以配 reasoningEfforts、contextWindow、maxTokens、input、compat、headers 等,但配置模型里没有 temperature 字段。链路本身支持把 GenerateOptions.temperature 一路传到 pi-ai 请求体,缺的是谁在 agent 请求提案里写入这个值。agent loop 播种的 seedConfig 只带 provider、model、reasoningEffort、maxTokens,且 agent/request 交给监听器的提案是 deep-frozen,不能就地改,只能返回新对象。
下面介绍社区插件 dsh-per-model-temperature(仓库 deepmean/dshModeltemperature):一个设置页加一个 agent/request 监听器,按 provider + model 精确匹配,在请求发出前注入或清理 temperature。
这是什么¶
- 维护者:deepmean
- 包名:
dsh-per-model-temperature(package.json版本 1.1.0,private: true,不在 npm 分发) - 定位:给 DSH 中
llm-pi-ai路由的每个模型单独配置温度,并在每次 agent 请求前写入或移除temperature - 许可证:MIT
DSH 生态强调「一切皆插件」;SkillHub 目录页 是社区收录站点,与 DeepSeek / 幻方无官方从属关系。
核心行为¶
插件按 provider + model 精确匹配,每次请求重新判定:
| 情况 | 结果 |
|---|---|
| 命中,且配了温度 | 注入该温度 |
| 命中,但温度留空 | 移除 temperature,走上游默认 |
| 没命中 | 移除 temperature,走上游默认 |
第三行用于避免会话中途切换模型时,上一个 step 留下的温度跟着带到新模型;配置清空后也不会让旧值残留。
本插件只管 temperature。README 说明 top_p / top_k 在 GenerateOptions、LlmCallConfig 与 adapter 链路中不存在,且提案在派发前 deep-frozen,插件无法扩展这些字段;推理档位与输入模态应使用 provider 自带的 llm-pi-ai 配置入口。
安装与启用¶
该包不在 npm 上。分发方式是 clone 仓库后通过本地 file: 安装。插件以当前 DSH 进程权限运行,安装前请自行审阅源码与 MIT 许可证。
新环境(首次安装):
git clone https://github.com/deepmean/dshModeltemperature.git
dsh plugin --profile web add "file:/绝对路径/dshModeltemperature"
将 /绝对路径/dshModeltemperature 换成你本机 clone 后的目录。
也可手工两步:
- 在 profile 的
package.json里增加依赖:
{ "dependencies": { "dsh-per-model-temperature": "file:/绝对路径/dshModeltemperature" } }
- 把包名加入
dsh.profile.bundles数组(顺序即加载顺序)。
插件自带 cordis.patch.yml,装载时会插入自己的配置行。
兼容性(README):对 @deepseek-ai/dsh 声明 >=0.2.0(optional peer);在 0.2.1-alpha.4 上实测通过。
dsh 更新之后¶
每次更新 DSH 后建议先跑:
node scripts/check-compat.mjs
脚本检查 23 项上游接口;全绿再继续。本插件依赖老式 ctx.settings.register();自 dsh 0.2.1-alpha.5 起上游可能不再自带该 API,部分环境需通过 dsh-purge 的 #42 补丁 SETTINGS_LEGACY_API 恢复。更新可能冲掉补丁或未重启进程,表现为设置页无数据、监听器未挂上且不一定有明显报错。修复步骤见仓库 README:重新打补丁、重启 dsh、若使用目录联接则 node scripts/relink.mjs,再跑 check-compat.mjs。
若用 file: 安装,pnpm 会把源复制进存储;希望改源码立即生效时,需在 node_modules 用目录联接指向源目录,且源目录需自带 node_modules(npm install --omit=dev)。dsh update 可能把联接换回副本,可用 node scripts/relink.mjs 恢复。
典型用法¶
- 在 DSH 设置页找到 per-model-temperature 一节。
- 每一行三个控件:
- 提供商:选项来自活的llm-pi-ai路由表(服务端还会把运行时注册的路由写入插件设置文档,并辅以 remote 目录与静态段兜底)。
- 模型:随提供商过滤;更换提供商时模型会清空。
- 温度:预设0 / 0.2 / 0.3 / 0.5 / 0.7 / 0.9 / 1 / 1.2 / 1.5 / 2,或选「自定义…」在失焦后写入。留空表示不下发,交上游默认。 - 在设置页改温度后,下一次 agent 请求即生效,无需重启。
注意:不要手工编辑 settings-legacy.yaml 改温度;legacy 文档只在启动时读入内存,手改既读不到也可能在保存时被覆盖。服务端 index.js 改动后通常需复制到 profile 副本并重启,或依赖 profile 重新组合时的 HMR,以你部署方式为准。
适用场景与注意¶
适合:同一 DSH 部署里多条 llm-pi-ai 路由、多个模型,希望按模型固定创意度(例如代码模型偏低、对话模型略高),又不想改 harness 本体。
注意:
- 安装命令必须使用
file:路径,不要臆造dsh plugin add github:owner/repo一类命令(除非上游日后明确支持)。 - 依赖 legacy settings API 的环境在 DSH 大版本升级后务必跑
check-compat.mjs。 - 仓库提供
npm test(串联 compat、客户端与多个 probe 脚本),可在无浏览器环境下自测。