DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
M

dsh-model-lock

Model Lock

在设置页固定共享默认模型(并可选接管 mnemon 任务代理模型),在会话模型选择器保存默认值前拦截写入

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:hZsFN/dsh-default-model-lock#de5bc832a8a9a5a4db4743c26129af6b50e6b474
README兼容性版本

兼容性与来源证明

Model Lock 以 dsh-model-lock 发布,当前版本为 0.2.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/11/2

版本

0.2.0stable
2026/11/2
0.1.1stable
2026/10/29
0.1.0stable
2026/10/24

相关插件

正在加载相关插件…

最新版
0.2.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/11/2
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 models-usage 分类下经过校验的插件。

Experimental Cot Translation Bundle@deepseek-ai/dsh-experimental-cot-translation-bundle扩展推理的实验性机器翻译Whale Widgetdsh-whale-widgetDSH Web 界面右下角的 DeepSeek 余额小鲸鱼挂件:余额/今日已用/峰谷定价、自定义泡泡点击序列(文本/余额/今日/峰谷/图片/随机语句与并列加权选择)、逐行样式与字体、悬浮快捷编辑、音效与每轮消耗、自定义角色/动图/音效、吸附与翻转自定义Our Free Model@ebony-vinyl/dsh-our-free-modelOur Free Model — 在 dsh 里装上这个插件即可,无需登录、注册或填 API Key,就能使用包括 DeepSeek V4.1 Flash、Kimi K3 在内的前沿模型,桌面端另有 EAC 协付渠道;2.0 起接入 LobsterAI、Qoder、TRAE、Cline、Loomy、Raccoon、MiniMax、ZCode、Gemini 十个账号渠道(原有匿名免费通道保留)(登录、账号池、积分领取、本地 OpenAI 网关与局域网转发、数据看板与运行日志),六页毛玻璃界面统一呈现。Connect Workbuddydsh-connect-workbuddy把本机登录的 WorkBuddy 模型(国内版与国际版)接入 DeepSeek Harness:每次刷新按上游目录自动读取每个模型的积分倍率,支持逐模型图片输入开关、多账号切换与账号池自动换号,并提供每日签到、卡片与输入框里的胶囊积分读数等只读积分概览。

README

默认模型锁定

为 DeepSeek Harness 提供一把共享默认模型的锁:在设置页选好 provider、model 和推理档位,启用保存后,共享默认值被钉死。

起因:在 UI 里切一次模型,会把 cordis.yml 里的默认模型一起改掉(还会丢掉 reasoningEffort 行),于是心跳、看板定时任务、新会话全都跟着换模型。本插件把这件事变成显式开关。

安装

已发布到 npm:dsh-model-lock(当前 0.1.1)。 在 DSH 的插件页面按包名安装即可;也可以从源码装进指定 profile:

# 先看会做什么(不写任何文件)
pwsh -File scripts/install-profile.ps1 -DryRun

# 装进目标 profile(自动备份 package.json 与 cordis.patch.yml)
pwsh -File scripts/install-profile.ps1 -Profile "$env:USERPROFILE\.dsh\profiles\desktop"

重载插件后,设置页出现「默认模型锁定」一节;改源码后必须重载/重启 DSH 才生效(刷新页面不够)。 卸载与还原步骤见 docs/INSTALL.md。

行为

  • 聊天里仍可自由切换模型:session.selectModel() 只影响当前会话。
  • 但切不动共享默认值:saveSelection() 在进入原服务保存队列之前就被拦下,写入直接 fulfilled。
  • currentSelection() 返回配置里的精确选择;新会话、headless、心跳、定时任务读到的是锁定值。
  • 关闭锁定即恢复官方行为,并把 provider/model 从配置里 unset,官方默认值重新生效(插件从不改写官方默认模型配置)。
  • 推理档位留空 = 交给模型适配器的默认档;填了就按填的。
  • 无效 provider/model fail closed:不猜、不 fallback、不写任何东西。
  • 只在加载了本插件的 profile 里生效。

同时接管 mnemon 的任务代理模型

设置页第二块「mnemon 任务代理」可以把 mnemon 插件(dsh-mnemon)的 taskAgentModel 一起纳入同一页管理,省得手改 cordis.patch.yml:

  • 与默认模型锁互相独立:主锁关着也能单开这一块。
  • 勾选后必须选好 provider + model(同样 fail closed:目录里没有就拒绝保存)。
  • 写的是 mnemon 插件自己的配置 taskAgentModel = { mode: 'fixed', provider, model },落盘位置就是该 profile 的 cordis.patch.yml。
  • 走 configEditor.edit() 直接改插件配置,因为 mnemon 的 taskAgentModel 不是 settings volatile 字段,settings.mutate 写不进去。
  • 幂等:值没变就不写,profile reconcile 不会再触发一次写入(避免回环)。
  • 改不动:另有一层纯内存拦截 —— 在 root 上监听 internal/config,mnemon 每次解析配置时把 taskAgentModel 换回锁定值。就算有人直接改 cordis.patch.yml 或从 mnemon 自己的设置页改,mnemon 实际拿到的仍是锁定路由(第一次拦到会打一行 warn)。这层不写盘。
  • 关闭只解除接管(把 mnemonTaskAgent 整块 unset),不会回滚已经写进 mnemon 的 taskAgentModel。

拦截点

包装 @deepseek-ai/dsh-agent-default-model 服务实例上的 currentSelection() 与 saveSelection():

  • 用 Cordis 的 symbols.original 取回原始服务对象,在实例上包装 own methods —— 覆盖普通 ctx 属性、ctx.get()、root、headless 的同形读取,以及已缓存的服务对象。
  • 不改 prototype、不改磁盘、不调模型接口。
  • 卸载时恢复原 descriptor;服务重建时自动重新安装。

设置页

settings.section 槽位注册(经 ctx.slots.inject),页面读真实目录:ctx.remote.session.modelCatalog() → Typert { ok, value } → { groups[{ id, name, models[{ id, name, reasoning: { efforts[{ id, name }], defaultEffort } }] }] }。

  • provider → model → effort 三级联动,只显示目录里真实存在的东西。
  • 保存走一次原子 mutate(ops, revision),SettingsPathOpView 操作,带 revision fence。
  • 目录加载失败 → 显示错误、不给选项,此时只能关闭锁定。
  • 已保存的模型若已不可用 → 标「不可用」,不自动替换。
  • 关闭锁定时允许 provider/model 为空。

设置服务存在时,插件会调 settings.configure({ auto: false }) 隐藏官方自动生成的通用表单,保证设置页只有这一个入口;设置服务本身按可选注入处理(缺席时不报错,锁定照常工作)。

已在独立 DSH_HOME + 端口 3199 的真实 Electron carrier 上跑通完整链路(真实 Loader 加载、Config 投影、settings/update 落盘、currentSelection() 拦截生效、官方配置零写入、解锁复原),结果见 docs/INSTALL.md 第 6 节。

目录

index.js               插件入口 + Config schema(volatile 字段)
core.mjs               锁的实现(服务实例方法包装)+ mnemon 任务代理镜像
lib/client.js          客户端产物:手写 __ModuleLoader__ 模块(无构建步骤)
client/types.ts        真实 DSH 契约类型(参考,不参与安装)
client/index.tsx       初稿的迁移记录(已废弃)
test/core.test.mjs     后端 10 项:真 Cordis + 真 AgentDefaultModel + mnemon 镜像与拦截
test/client.test.mjs   前端 10 项:直接加载 lib/client.js
scripts/install-profile.ps1    装进 profile(默认 dry-run,自动备份)
scripts/restore-backup.ps1     按备份回滚(只删 junction,不删源码)
scripts/isolation-probe.mjs    隔离验证探针(独立 DSH_HOME + 3199)
docs/INSTALL.md        安装、边界与隔离验证结果

自检

npm run check   # node --check:骨架与产物语法
npm test        # 20 项全绿

兼容性与边界

目标 DSH 0.2.1-rc.2 / Cordis 4.0.5;升级 DSH 后需重新验证包装契约。已经提交进原保存队列的写入无法撤销 —— 锁定生效前那一刻排队的那次保存仍会落盘;此外,别的插件若在包装前缓存了方法引用,也可能绕开包装。插件不改核心源码,也不采用「监听配置变化再写回」的方案。

安装与实机验证见 docs/INSTALL.md。