dsh-startup-model:让 DSH 记住上次使用的模型

前言

DeepSeek Harness(DSH)的理念是「一切皆插件」,可插拔的特性带来了灵活度,也意味着一些细碎的默认行为需要自己补齐。默认情况下,DSH 新会话使用 profile 模板里定义的默认模型;用户在会话里切换模型后,退出重开或新建会话时得重新点选。次数多了就成了固定摩擦。

dsh-startup-model 就是为消除这个摩擦而生的小插件。它在退出时记录最后一次主动选用的模型,下次启动时注入为默认模型。下面介绍它的来源、能力、安装方式和适用场景。

这是什么

dsh-startup-model 是一个 DSH 插件,仓库位于 zxzc114514/dsh-startup-model,由 zxzc114514 维护,协议为 MIT,包版本 1.0.0,作者标为 ImportCoffee。社区目录 SkillHub 把它归入「记忆」分类。

它解决的问题很单一:把「上次退出前用哪个模型」这件事持久化,免去每次启动重复切换。

核心功能

插件的工作方式是监听持久化会话事件,把最后一次用户主动选用的模型写入本地状态文件,下次启动时平滑注入为默认模型。具体能力包括:

  • 纯 Host 端实现:纯 Node.js 服务,不依赖前端 Client,不侵入渲染层,避免渲染端脚本异常导致 Web Boot 白屏。
  • 子代理隔离:识别会话上下文中的 origin: subagent 或 delegationDepth > 0,子代理临时切换的轻量模型不会污染主配置。
  • 落盘保护:内置 500ms 事件防抖,配合进程级临时文件原子替换(Atomic rename),降低高频写盘和意外断电造成的状态文件损坏风险。
  • 启动前降级校验:恢复前检查模型 Provider 是否仍处于注册路由状态;若该服务已被卸载或停用,插件跳过本次恢复并保留当前配置,避免陷入死循环。
  • 保留思考深度档位:记录与恢复 reasoningEffort(如 high / medium / low)。

安装与启用

方式一,在 DeepSeek Harness 插件管理器中搜索 dsh-startup-model 并安装。

方式二,手动引入。在 DSH profile 的 package.json 中声明依赖,并把包加入 dsh.profile.bundles:

{
  "dependencies": {
    "dsh-startup-model": "https://github.com/zxzc114514/dsh-startup-model/releases/latest/download/dsh-startup-model.tgz"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "dsh-startup-model"
      ]
    }
  }
}

插件自带 bundle patch,随安装自动挂载,不需要额外手工步骤。

配置

插件开箱即用,无需配置。若要调整,在 profile 的 cordis.patch.yml 中写入:

- id: startup-model
  name: 'dsh-startup-model'
  config:
    enabled: true
    trackSubagents: false
    # stateFile: 'C:/custom/path/model-memory.state.json'

配置项说明:

配置项 类型 默认值 说明
enabled boolean true 是否启用启动模型记忆功能
trackSubagents boolean false 是否跟踪子代理派生会话中的模型变更(默认关闭以保护主模型)
stateFile string ~/.dsh/model-memory.state.json 状态持久化文件存放路径

工作原理

1、录制。普通用户会话派发 model/selection 或 request/header 事件时,插件提取并规范化模型三元组(provider、model、reasoningEffort),经 500ms 防抖后原子写入状态文件。

2、恢复。DSH 启动时,插件通过 ctx.inject(['agentDefaultModel']) 挂载,校验本地状态有效性与 Provider 可达性后,调用 agentDefaultModel.saveSelection() 恢复启动默认值。

适用场景与注意

适合长期使用固定模型组合、且对启动体验有要求的 DSH 用户,尤其是需要区分主模型与子代理轻量模型的场景。

需要注意三点。第一,插件以当前 DSH 进程的权限运行,安装前应先检查源码与许可证(MIT),判断是否有权限和合规风险。第二,它依赖 DSH 的 agentDefaultModel 注入与 profile bundle 机制,版本不匹配时功能可能静默失效,装完要验证一次。第三,状态文件默认落在 ~/.dsh/model-memory.state.json,多套 profile 共用同一路径时需自行指定 stateFile,避免相互覆盖。

结尾

dsh-startup-model 的价值很集中:把「每次启动重新选模型」这一步消除掉,顺带给出子代理隔离、防抖落盘和 Provider 降级,实现成本只是一个不侵入渲染层的 Host 端服务。对希望 DSH 开箱即用、维持上次工作状态的用户来说,这是一个值得尝试的小插件。

  • 目录页:https://www.skillhub.cn/plugins/zxzc114514/dsh-startup-model
  • GitHub:https://github.com/zxzc114514/dsh-startup-model
羽毛球分组比赛记分
小程序二维码

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

小夜