前言¶
DeepSeek Harness (DSH) 的设计理念是「一切皆插件」。在使用 dsh 构建智能体时,一个常见痛点是任务类型的混合:有时需要模型阅读截图、执行 OCR 或分析图片(需要视觉模型),而其他时候则只需要快速聊天或代码补全(使用默认模型)。如果手动切换,会打断工作流;如果始终使用视觉模型,成本过高且速度慢。dsh-model-auto-hot-switch 旨在解决这一问题,它允许在同一会话内自动区分任务类型,实现模型的热切换。
插件定位¶
这是一个由 SHUJILAI 维护的 DSH 插件,专注于模型推理场景下的自动化路由。它不依赖任何官方 @deepseek-ai/* 运行时包,仅通过 DSH 的 agent/request 扩展点工作。
核心功能¶
- 图像感知自动路由:插件会检查每个任务步骤中是否包含图像块。如果检测到图像,任务会自动路由至具备视觉能力的模型(例如
deepseek-v4-flash-vision-exp);对于其他任务,则保持用户设定的默认模型。 - 零额外 Token 消耗:任务分类逻辑完全在本地代码中执行(判断是否存在图像块),不调用额外的分类器模型,也不进行提示词重写或请求复制。
- 无上下文干扰:仅替换请求配置中的
provider和model字段,不修改消息内容、系统提示词或会话状态。 - 一键控制:支持在 Web 界面点击浮动按钮,或通过配置文件
enabled字段进行开关控制。
安装与启用¶
安装此插件需要 DeepSeek Harness (dsh) 的 Web 配置文件。
# 从 npm 安装
dsh plugin --profile web add dsh-model-auto-hot-switch
# 或直接从 GitHub 安装
dsh plugin --profile web add github:SHUJILAI/dsh-model-auto-hot-switch
安装完成后,重启 dsh web 服务。在界面右下角会出现一个浮动的 ⚡ 按钮,点击即可开启自动热切换功能。你也可以通过修改配置文件 config.json,将 enabled 设置为 true 来控制该功能。
前置条件¶
- DSH 环境:需要使用带有 Web 配置文件的 dsh。
- 视觉模型:提供商目录中必须包含一个具备视觉能力的模型(例如
deepseek-v4-flash-vision-exp)。插件通过llm.listModels自动发现此类模型。 - 工具门控:
read_image工具的门控必须能访问上述视觉模型。
工作原理¶
插件在 agent/pre-step 阶段检查当前步骤是否包含图像。如果包含,则在后续的 agent/request 阶段将配置中的模型字段替换为视觉模型;如果不包含,则返回原始配置。这种设计确保了每个任务(包括子代理会话)都能独立进行路由判断。
适用场景与注意¶
该插件适合需要在同一次会话中同时处理图文混合任务的 DSH 用户。需要注意的是,插件以当前 dsh 进程的权限运行,安装前建议检查源码与许可证(MIT)。它支持 Web 和 Headless 两种配置文件模式,但在 Web 模式下会通过 /plugins/dsh-model-auto-hot-switch/state 路由进行状态管理。