前言¶
在 DeepSeek Harness(DSH)的代理循环中,当代理向一个不支持图像的模型发送包含图像的请求时,需要有一个机制将这类请求路由到支持图像的模型上。dsh-ds-vision-auto-route 插件通过代理循环的 agent/request 瀑布流处理这一过程,确保图像承载的请求能够被正确分发。
插件定位¶
名称:dsh-ds-vision-auto-route
维护者:litianshuo110
核心价值:将图像承载的请求路由到 DeepSeek Harness 中可配置的图像模型。
核心功能¶
该插件在代理循环内部工作,通过 llm-vision-route 服务判断是否需要路由。它主要处理以下事项:
- 智能路由:仅当请求中包含图像且当前选定的模型不支持图像输入时,才会将请求替换为图像模型。选定的模型本身不会改变,只有仅文本请求会被替换。
- 日志记录:将替换操作记录在请求头中,并追加
llm-vision-route/route记录,包含回合、步骤、策略和路由信息。 - 策略支持:提供
routePolicy配置项,支持turn-image(仅当前回合有图像时路由)、any-image(只要日志中有图像就路由)和off(关闭路由)三种模式。 - 参数清理:在路由请求时会丢弃
reasoningEffort参数(因为后端模型可能不支持),采样值保持不变。
安装与配置¶
安装插件需要使用 DSH 的插件管理命令。
安装¶
dsh plugin --profile web add github:litianshuo110/dsh-ds-vision-auto-route
配置¶
插件通过 YAML 配置文件启用,主要包含三个可选键:
visionProvider:指定图像模型的提供商路由。visionModel:指定具体的图像模型名称。routePolicy:指定路由策略,默认为turn-image。
配置示例:
- name: 'dsh-ds-vision-auto-route'
config:
visionProvider: deepseek-official
visionModel: deepseek-v4-flash-vision-exp
routePolicy: turn-image
状态与兼容性¶
重要提示:该插件已标记为弃用(Deprecated)。自 2026 年 9 月 10 日发布的 DeepSeek V4.1 Flash 起,该模型已原生支持多模态(inputModalities: ['text', 'image'])。DeepSeek Harness 0.1.5-rc.2 及更高版本已内置此功能,不再需要此插件。该 GitHub 仓库已被归档。
在兼容性方面,插件的生效行为取决于运行环境:
- 源码 Harness:直接运行
pnpm dsh web时,图像准入步骤会咨询该插件的llm-vision-route服务,从而自动路由图像请求。 - 发布版 Harness:使用全局安装的
@deepseek-ai/dsh(dsh web) 时,主机层面的图像准入可能会在插件介入之前拒绝纯文本模型的图像提示。因此,在发布版环境中,仅安装此插件可能不足以自动路由图像,可能仍需手动切换模型。
已知限制¶
- 模型选择不改变:无论是否发生路由,Web 界面的模型选择器始终显示用户最初选择的模型。
- 历史图像投影:在
turn-image策略下,图像承载的回合之后,后续的纯文本回合会使用占位符文本替代历史图像,直到图像再次被附加。 - 无提供商故障转移:配置的后备路由必须是一个已注册的、且支持图像的路由。如果配置错误,请求会直接报错
INVALID_REQUEST,而不是静默丢弃图像。 - 目录元数据决定能力:模型是否路由取决于其目录元数据(
inputModalities)。未声明图像输入能力的模型会被视为仅文本模型而被路由。
总结¶
dsh-ds-vision-auto-route 提供了在 DeepSeek Harness 中处理多模态请求的早期方案,通过日志记录和路由策略支持灵活的图像处理逻辑。但由于 DeepSeek V4.1 Flash 的原生多模态支持,该插件已不再需要。在旧版本或特定源码开发环境中,它仍可作为路由中间件使用。