前言¶
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