前言¶
在 DeepSeek Harness(DSH)里,模型适配器(adapter)通常按提供商一次性描述模型能力:同一 provider 下往往只有一个「默认推理强度」,也无法表达「纯文本模型收到图片时该怎么办」。实际对话里,快模型和推理模型希望不同的起始 effort;纯文本模型若直接丢图,要么图片被丢弃,要么整轮失败。社区插件 dsh-model-advanced(维护者 drm-nz,分类:模型推理)在 Settings → Models 页面底部增加一张配置卡片,并在运行时实现对应行为:每个模型独立的默认推理等级,以及为不能读图的模型指定「代读」模型。
这是什么¶
dsh-model-advanced 是 DSH 插件,简介为:Per-model default reasoning effort and image handoff for text-only models. A DeepSeek Harness plugin. 配置写入插件自有命名空间 model-advanced,键为 provider/model,与 adapter 解耦,因此同一 provider 下两个模型可以各自有不同的默认 effort,adapter 未描述的模型也能设默认项。
目录页:https://www.skillhub.cn/plugins/drm-nz/dsh-model-advanced
源码与说明:https://github.com/drm-nz/dsh-model-advanced(许可证 MIT,package 版本 0.1.0)
核心功能¶
Models 页 Advanced 卡片¶
在模型列表下方,每个已配置模型一行,两列可设:
| 列 | 含义 |
|---|---|
| Model | 模型名称、provider、id |
| Default reasoning level | 对话尚未选择等级时的起始推理等级;空选项表示不覆盖 |
| Image understanding | 对不能读图的模型:指定代其读图的模型 |
默认推理等级如何生效¶
README 说明通过四处衔接覆盖「选了等级 / 没选等级 / 从未选等级」等路径:
- 装饰
resolveModelInfo,让模型目录展示配置的等级,Composer 的 Effort 菜单以此打开。 - 装饰
resolveCallConfig,选模型但未指定等级时,保存配置的等级而非 adapter 自带默认。 agent/requestwaterfall 覆盖从不选等级的入口。- 启动后一次 reconciliation(composition 事务 settle 之后)对齐全局默认选择与配置等级。
插件 dispose 时会恢复上述 prototype 装饰。
图片转交(image handoff)¶
为不能读图的模型配置 delegate 后,当一轮携带图片时:
- delegate 调用一次,附带保留版式的转写指令:一行摘要、阅读顺序、各文本区域及约 0–1000 尺度的包围框、表格用 GFM、图表与 UI 状态说明。
- 结果以 image transcript note 追加到 step,并命名图片 id。
- note 带
[dsh-image-handoff:<id>]标记,从 session 历史读回,重试与后续轮次不再对 delegate 计费。 - 图片仍留在对话中;发给纯文本模型的 wire 仍是占位符而非原图,模型读的是转写文本。
后续追问时,模型可调用:
inspect_image(image_id, question)
同一图片会再次交给 delegate 并带上问题,避免纯文本模型被固定在一次读图结果上。delegate 失败不会终止整轮,会在 transcript 里记一条无法读图说明。
如何判断模型能否读图¶
按成本从低到高:
- provider 配置里模型声明的 input modalities。
- 仅对配置未描述的模型调用
discoverModels(普通页面加载可保持离线)。 - 从同一 model id 在其他已配置 route 上推断。
- 勾选 This model reads images,在以上均未知时固定能力。
安装与启用¶
需要已安装带插件管理器的 DeepSeek Harness。官方安装命令如下:
dsh plugin --profile desktop add github:drm-nz/dsh-model-advanced
然后重启应用。插件分 host 半(lib/index.js,启动加载)与 browser 半(lib/client.js,由安装包提供),不重启两者都不会生效。
卸载:
dsh plugin --profile desktop remove dsh-model-advanced
依赖 @deepseek-ai/dsh-llm、@deepseek-ai/dsh-tools、@deepseek-ai/schemastery,须从 profile 解析且与当前 Harness 版本匹配;插件装饰 runtime prototype,天然版本耦合。README 中有 Compatibility 小节可对照。
本地 link 安装见 README 的 From a local checkout;cordis.patch.yml 入口名为 bare dsh-model-advanced,link 安装需注意 import 解析方式。
典型用法¶
界面配置¶
在 Settings → Models 底部卡片中为每个模型选 Default reasoning level 与 Image understanding(effort id 须与 adapter 列出的等级 id 一致,从卡片列表选,勿猜)。
手写 YAML¶
卡片写入的命名空间也可直接编辑,示例来自 README:
- id: model-advanced
config:
modelDefaults:
"deepseek/deepseek-chat": high
imageDelegates:
"deepseek/deepseek-chat": { provider: openai, model: gpt-5-mini }
imageCapable:
"openai/o4-mini": true
| Key | 形状 | 含义 |
|---|---|---|
modelDefaults |
provider/model → effort id |
该模型起始推理等级 |
imageDelegates |
provider/model → { provider, model } |
代读图片的模型 |
imageCapable |
provider/model → true |
无法自动发现时固定「能读图」 |
启动自检¶
每次启动、composition settle 后,会向 ~/.dsh/health.log 追加一行,例如:
2026-11-01T02:00:42Z dsh-model-advanced ok patch=live tool=live defaults=2/2
2026-11-01T02:00:42Z dsh-model-advanced warn patch=live tool=live defaults=1/2 stale=deepseek/old-model
patch:两处 prototype 装饰是否仍为插件安装的函数;dead表示 Harness 内部变动导致默认等级不再生效。tool:inspect_image是否已注册。defaults:配置的默认等级有多少能在resolveModelInfo读回且仍被模型提供;stale=列出已失效项(常见于 effort id 改名)。
查看:
tail -n 2 ~/.dsh/health.log
grep -v ' ok ' ~/.dsh/health.log
可通过 DSH_HEALTH_LOG 改写入路径。自检失败不会阻止插件加载;客户端也会根据模型目录在 Composer 显示一次 warning toast(健康时不显示)。
适用场景与注意¶
适合在 DSH desktop profile 下同时使用多种模型:需要「按模型」而非「按 provider」设默认推理强度,或主对话用纯文本模型但对话里会出现截图、图表等图片的场景。
DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。插件以当前 DSH 进程权限运行,安装前建议阅读源码与 MIT 许可证,确认 delegate 模型与 API 调用符合你的策略。
结尾¶
dsh-model-advanced 把 adapter 难以表达的「每模型默认 effort」和「纯文本模型的图片代读」收到 Models 页一张卡片和 model-advanced 配置里,并在请求链路与 inspect_image 工具上落地。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库。