dsh-model-control

DSH PLUGIN模型与账号接入

仓库 uio-o/dsh-model-control

模型与账号接入 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 提供统一模型控件:接管输入框模型座位,集成模型选择器、渠道与模型能力管理及推理档位建议。

一句话选型结论

按资料字段整理

dsh-model-control 是模型与账号接入类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类模型与账号接入 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 未标注
最近更新 2026-10-08 创建于 2026-10-07
README 11.7 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:uio-o/dsh-model-control#v0.2.2
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.0-rc.2;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.0-rc.2版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-model-control:DeepSeek Harness 的统一模型控制插件

  • 输入框模型座位统一接管
  • 双区弹窗分离选模型与档位
  • 渠道与模型能力管理页
  • 内置 65 条推理档位建议
  • 收藏、搜索与全键盘操作

上游标签

cordisdeepseek-harnessdshdsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-09): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.0-rc.2),按版本装不容易报错。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在模型与账号接入场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-model-control当前 L5 · 运行验证通过 低风险 0 0.2.0-rc.2 有
archify L4 · 沙盒安装通过 低风险 8.0 万 未标注 有
DeepSeek-Reasonix L4 · 沙盒安装通过 低风险 3.6 万 未标注 有
nocobase L3 · 安装规范通过 低风险 2.5 万 0.1.1-rc.2 无
learn-harness-engineering L4 · 沙盒安装通过 低风险 2.0 万 未标注 有
dsh-our-free-model 未做沙盒验证 未标注 8,064 未标注 无

仓库档案

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方uio-o仓库 dsh-model-control · 默认分支 未标注
分类模型与账号接入ai
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 未标注收录时的数值,非实时
创建 / 更新2026-10-07 · 2026-10-08最后推送 未标注
本站收录2026-10-08首次进入本站目录的时间

README 全文

11.7 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-model-control

面向 dsh Web GUI 的统一模型控件,接管输入框里的模型座位
(conversation.input.model),并在设置里提供一整套模型管理。

安装

dsh plugin --profile <你的 profile 名> add dsh-model-control

装完重启应用——bundles 是启动时读入的,只刷新页面不够。

其他安装方式

从 GitHub 安装(还没发 npm 时用这个):

dsh plugin --profile web add https://github.com/uio-o/dsh-model-control/archive/refs/tags/v0.2.2.tar.gz

手工改 profile 的 package.json:

{
"dependencies": {
"dsh-model-control": "^0.2.2"
},
"dsh": {
"profile": {
"bundles": ["dsh-model-control"]
}
}
}

依赖与 bundles 两处都要写:前者让包被装上,后者让它在启动时被加载。

本地开发用 link:"dsh-model-control": "link:D:/path/to/model-control"。

⚠️ 与旧插件冲突

本插件整合并取代下面两个,不要同时启用:

  • dsh-model-picker
  • dsh-better-reasoning-effort

座位是单占用槽位,三方都往那里注册,后注册的会让先注册的失效。迁移时把前两个从
dsh.profile.bundles 里移除即可,依赖声明留着无妨。

设计

双区触发按钮把「选模型」和「选推理档位」拆成两个独立弹窗:

区域 点击 弹窗内容
左侧(模型名) 打开模型选择器 顶部搜索框(自动聚焦)、左栏供应商、右栏模型列表
右侧(档位) 打开档位选择器 推理档位列表 + 推荐默认档

鼠标悬停任一区域会说明它将要做什么。模型区显示 供应商 · 模型名:同一个模型 id 常常
由多个供应商提供,光看名字说不清模型跑在哪里。

选择器

供应商徽标

供应商的首个字符紧跟在模型名前面——DeepSeek 是 D,智谱 GLM 是 智——关闭状态的
触发器上
和列表的每一行都会显示,所以还没打开选择器就能看出模型来自哪里。

每个供应商还有一个由其路由 id 推导出的固定底色。没有它的话,17an-db、17an-anbot、
17an-mumiao 都会只显示一个 1,看起来像同一个供应商。

供应商折叠

若某个供应商的名字等于另一个供应商的名字加上一个括号包裹的能力后缀,它就折叠进基供应
商那一行。modlens 会把视觉能力注册成独立的路由(DeepSeek (modlens vision)),不折叠
的话左栏每个供应商都会多出一行近似重复项。

折叠只影响展示:每一行始终保留「模型 + 真正服务它的路由」的配对,所以选中折叠行里
的模型,提交的仍是该模型自己的供应商 id。

分组列表

右栏始终是同一个分组列表:收藏(置顶的镜像副本),然后是每个供应商的分组。左栏是这
个列表的目录。滚动右栏时,左栏会高亮「钉在列表顶边」的那个分组;分组标题是
position: sticky 的,所以高亮始终和你看得见的标题一致。点击左栏的供应商会直接跳到对
应分组。搜索状态下,点击供应商改为缩小结果范围。

收藏

每个模型行在「名称与信息条之间」都有一个 ☆ / ★ 切换。收藏以路由
(provider/modelId)为键,而不是单纯的模型 id:同一个模型 id 常常由多个已配置的供应
商提供,收藏其中一条路由并不代表其他几条也被收藏。

被收藏的模型在列表里出现两次:一次在它所属供应商的分组里,一次在置顶的「收藏」分组
里。数据存在 localStorage 的 dsh.modelControl.favorites 下。

搜索

查询同时作用于两栏:供应商按显示名、路由 id、或「至少有一个模型匹配」来命中;左栏收
窄到匹配的供应商,每个徽章显示该供应商的命中数。未选中任何供应商时,模型列表横跨所有匹
配的供应商,并给每行标注其供应商。

键盘操作

焦点始终留在搜索框里,整个弹窗不需要 Tab 穿过每一行就能全程用键盘操作。

  • ↑ / ↓ 移动一行,PageUp / PageDown 移动十行,Home / End 跳到两端
  • Enter 提交光标所在行并关闭弹窗,把焦点交还给触发器
  • 光标的样子是悬浮底色加上行左边缘的品牌色竖条;对勾表示正在使用的模型,光标表示下一次
    Enter 会落在哪里,两者是分开的
  • 搜索框用 aria-activedescendant 指向光标所在行,所以即使 DOM 焦点从不移动,读屏软件
    也能播报当前位置

模型信息

座位读到的浏览器端目录只有 id / name / description / reasoning——没有上下文长度,也
没有输入模态。两者都在 Host 的 llm 服务上,所以由 host 半段通过一条回环路由重新发布,
弹窗给每行标注上下文长度胶囊(1M、384K)与图片图标。

视觉能力有两种图标:实心表示模型自己就能读像素;半透明表示这条路由之所以接受图片,
是因为 modlens 做了桥接——模型其实看不见,modlens 先把图片转写成文字。判断依据是图标,
不是名字。

模型管理

设置里新增「模型管理」页,同时接管官方「模型」页——两者做同一件事,留着两个入口只会
有两个真相来源。接管是可逆的:禁用或卸载插件时接管补丁随之消失,官方页立刻回来;也可以
在插件页里关掉接管开关切回官方页。

两层弹窗

设置页本身只放渠道列表:一行一个渠道,显示名 + 自定义/内置徽标 + 模型数 + 「编辑」。

点「编辑」打开第一层弹窗:这个渠道的配置与模型列表。模型行右侧的「设置」再打开第二
层弹窗
:那一个模型的档位与能力。

两层都支持点遮罩关闭、右上角 × 关闭,Esc 先关上层再关下层。

打开弹窗不拉模型

打开渠道弹窗时,列表直接显示这个渠道已经持有的模型——自建渠道读 llm-pi-ai 文档,
内置渠道读适配器列表,纯本地读取,不发网络请求。看一眼模型列表不该依赖端点在线。

「拉取可用模型」是主动点击才发生的动作,结果只进下方的候选面板(虚线框,可随时收
掉),勾选后「保存选择」才写进渠道。候选面板不会顶掉已有列表——这是两件事:

> 列表 = 渠道持有的;拉取 = 往候选里添

添加渠道

创建是向导式的,创建放最后一步:测试连接 → 拉取模型 → 勾选 → 创建。

这个顺序来自一条上游硬约束:pi-ai 拒绝 models 为空的渠道,因为内置目录不认识自定义路
由,没有默认值可回退,于是「先建空壳渠道、之后再拉模型」走不通。渠道必须与它的模型一次
写入。

「测试连接」用填好的地址、协议、密钥实际调一次,不写任何东西;端点能连但不返回模型也是
明确的答案,与「连不上」分开报。

模型能力

每个模型可以单独声明:

  • 文本输入(固定)与图片输入 / 识图
  • 上下文窗口
  • 最大输出

这三项是 pi-ai 聊天模型条目支持的字段。模型条目里没有「是否支持工具调用」,也没有
「是否支持生成图片」——工具调用是每个协议都假定的能力,文生图走的是另一个独立的注册表,
不在聊天模型条目里。

思考档位

  • 知识库建议:内置 65 条档位表,覆盖 DeepSeek / Claude / GPT / GLM / Kimi / Qwen /
    Gemini / MiMo 等 16 族,按最长边界命中匹配
  • 未命中时按厂商家族与协议推断,并标注置信度:高(知识库)、中(厂商推断)、低(通用)
  • 每模型默认档:档位弹窗底部可设为默认,按 provider/model 存储
  • 写入声明:按 pi-ai 硬规则校验后写入,可备份、可精确撤销

槽位与注入契约

注入 conversation.input.model(由 @deepseek-ai/dsh-client-ui-conversation 声明)。
该座位是单占用的——这就是上面「与旧插件冲突」的根因:注册时崩溃会让输入框完全失去
模型控件。

宿主半用 ctx.effect 注册 17 条回环路由,禁用时释放,不会留下重复路由。

测试

npm test

跑两半:

  • scripts/check-client.mjs —— 浏览器半的语法、注册形态、以及两条静态防线:每个
    useState setter 都解析到声明(防「引用了不存在的 setter」这类崩溃),每个 i18n key
    在中英两套文案里都存在
  • scripts/test-host.mjs —— 用桩 llm / settings / credentials 驱动真实的 17 条路由
    处理器:pi-ai 文档读写、渠道增删改、能力写入、档位声明与撤销、暗号明文落库、内置渠道的
    自身配置、接管开关、以及禁用后重启用不产生重复路由

纯函数模块各自有独立测试:test-engines.mjs(建议引擎与分组)、test-store.mjs
(sidecar 读写、损坏降级、BOM 容错)、test-selection.mjs(选择集合并语义)、
test-declaration.mjs(声明校验与写入/撤销计划)、test-profile-patch.mjs(profile 补丁
文本编辑)。

这个项目是怎么写出来的

代码由 AI 编写,人负责设计与验收。 说清楚是因为它影响你怎么读这份代码。

具体分工:

  • AI 写代码:约 6800 行的 lib/、17 条宿主路由、测试套件、以及这份 README。
    从一个可用的思路到能跑的实现,大约四小时。
  • 人定方向:要解决什么问题、接哪几个座位、界面走哪条路线。中途否掉过一版两栏布局,
    理由是设置窗太窄、左右高度差太大——这类判断来自实际使用,不是代码问题。
  • 人做的验收:装进真实环境用,把出问题的地方截图反馈回来。0.2.1 修的那个兼容性
    故障就是这么发现的:插件在设置页显示「异常」,实际是 peer 范围把 DSH 0.2 排除在外。
  • 工程约束是人要求的:写测试、写静态防线(setter 与 i18n 完整性检查)、记录已知限制、
    不许在真实配置上试错。

所以这个项目的形态是:AI 负责把细节铺满,人负责判断哪里不对。测试是绿的,但那不等于
它没有错——真正的 bug 是两个人在真实界面上找出来的。

如果你要基于它改东西,把 AI 当作者来读:注释解释了「为什么」,但结论的取舍是人定的,
遇到可疑之处欢迎开 issue。

出处与许可

MIT,见 LICENSE。本插件是衍生作品,两份上游都是 MIT:

上游 本插件用了什么
ttmouse/dsh-model-picker 选择器座位的实现:双区触发按钮、搜索分面、供应商折叠与徽标、收藏、分组列表与滚动联动、键盘光标、上下文胶囊与视觉图标
HaoyueQin/dsh-better-reasoning-effort 65 条思考档位知识库(经 scripts/generate-knowledge.mjs 提取),以及档位梯形的组织思路

lib/client.js 中约 37.6% 的行与原 dsh-model-picker 相同,原插件的 39 个函数中 38 个
在本插件里保留原名。选择器那一半源自该项目。

本插件新增:模型管理页与两层弹窗、创建向导、按模型的能力配置、档位建议引擎、每模型默认
档、档位声明写入与撤销、厂家分组、选择集合并、接管开关、17 条宿主路由(全部可释放)、以
及 scripts/ 下的测试套件。

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-model-control 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:uio-o/dsh-model-control#v0.2.2` 即可。

dsh-model-control 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-model-control 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-model-control 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-model-control 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2。

dsh-model-control 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-model-control 有哪些功能?

输入框模型座位统一接管、双区弹窗分离选模型与档位、渠道与模型能力管理页、内置 65 条推理档位建议、收藏、搜索与全键盘操作。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

模型与账号接入
按星标排序,可作替代方案

archify

archify

从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

L4 · 沙盒安装通过 8.0 万 星

nocobase

nocobase

L3 · 安装规范通过 2.5 万 星

dsh-our-free-model

dsh-our-free-model

为 DeepSeek Harness 挂载免登录、免 API Key 的免费前沿模型通道,装完即用,并附用量看板与 OpenAI 兼容本地转

未标注验证等级 8,064 星

dsh-purge

dsh-purge

dsh-purge 是一款 DeepSeek Harness 设置插件,可修改默认副本、权限策略和工具限制,并添加规则卡片以分组应用补丁,支

L5 · 运行验证通过 4,573 星

uio-o 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-09。