dsh-per-model-temperature:为 DSH 的 llm-pi-ai 路由按模型配置 temperature

前言

在 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 后的目录。

也可手工两步:

  1. 在 profile 的 package.json 里增加依赖:
{ "dependencies": { "dsh-per-model-temperature": "file:/绝对路径/dshModeltemperature" } }
  1. 把包名加入 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 恢复。

典型用法

  1. 在 DSH 设置页找到 per-model-temperature 一节。
  2. 每一行三个控件:
    - 提供商:选项来自活的 llm-pi-ai 路由表(服务端还会把运行时注册的路由写入插件设置文档,并辅以 remote 目录与静态段兜底)。
    - 模型:随提供商过滤;更换提供商时模型会清空。
    - 温度:预设 0 / 0.2 / 0.3 / 0.5 / 0.7 / 0.9 / 1 / 1.2 / 1.5 / 2,或选「自定义…」在失焦后写入。留空表示不下发,交上游默认。
  3. 在设置页改温度后,下一次 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 脚本),可在无浏览器环境下自测。

链接

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

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

Xiaoye