dsh-smart-scenario-router:DeepSeek Harness 场景化模型路由插件

前言

DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在多模型并存的开发环境中,手动为每一条对话选择合适的模型(例如代码编写用 DeepSeek,日常问答用 GLM)效率较低。dsh-smart-scenario-router 插件解决了这一问题,它通过分析用户消息内容,自动将请求路由到最合适的模型,并在请求失败时自动尝试下一个模型,从而降低运维成本。

是什么

这是一个由 xobexo 维护的模型推理插件,为 DeepSeek Harness 提供基于对话场景的模型路由能力。它不会保存 API Key,Provider 的认证信息仍由 dsh 自行管理。

核心功能

  • 场景识别:根据消息内容自动识别场景,包括项目拆解、插件查找、代码审查、代码变更对比、代码编写调试、复杂推理、日常对话、极速高并发、多模态处理及长文本分析等。
  • 模型优先级:默认优先使用国产模型(DeepSeek、GLM、Qwen),配置的 GPT 模型作为兜底。
  • 自动回退:当请求失败时,自动尝试当前场景候选链中的下一个模型。
  • 可视化配置:在 dsh Web 设置页显示模型池、场景映射和当前路由状态,支持持久化保存配置。

安装与启用

安装前请确保满足以下环境要求:
- DeepSeek Harness 版本 >= 0.1.1-rc.1
- 已安装 Node.js 和 pnpm
- 在 dsh 中已配置至少一个可用的模型 Provider

执行以下命令安装:

npx -y @deepseek-ai/dsh plugin --profile web add github:xobexo/dsh-smart-scenario-router

安装完成后,重启 Web profile 以使插件生效:

npx -y @deepseek-ai/dsh web

配置

安装后,打开 dsh Web 界面的设置页,找到“智能场景路由”模块。这里可以进行以下操作:

  1. 管理模型池:启用或停用模型池中的模型。所有模型均通过下拉框从 dsh「设置 → 模型」中选择,无需手动输入名称。
  2. 编辑候选链:为每个场景配置候选模型顺序。顺序即回退顺序,插件会依次尝试直到成功。
  3. 查看状态:查看当前的路由状态和模型映射关系。

插件首次使用时会自动写入默认规则。如果 dsh「设置 → 模型」中不存在默认模型,插件会尝试替换为同系列(deepseek / glm / qwen / gpt)的真实配置模型。如果模型未注册或 Provider 不可用,路由时会自动跳过该模型并尝试下一个。

工作方式

插件的工作流程如下:

  1. 读取当前会话中的用户消息。
  2. 如果消息包含图片或明确涉及图片内容,路由至 multimodal 场景。
  3. 如果文本较长,路由至 long_context 场景。
  4. 按高优先级意图匹配:涉及工具推荐进入 plugin_discovery,Git diff 进入 code_diff,代码质量分析进入 code_review,架构规划进入 project_planning,开发实现请求进入 coding。
  5. 剩余消息根据双语关键词表匹配场景。置信度低于阈值时,调用裁判模型(默认 Flash)再次判断。
  6. 检查候选模型是否可用,选择第一个可用模型发送请求。
  7. 如果请求失败,继续尝试候选链中的下一个模型。
  8. 如果用户手动选择了非默认模型,插件会保留该选择,不强制覆盖。

升级与故障排查

升级注意:0.3.0 起引入了规则表版本(schemaVersion)。旧版升级后,持久化的默认规则会被自动替换为新的默认映射;手动定制过的候选链和模型池会保留。

502 上游错误排查:如果直接选择模型可调用,但启用插件后出现 502 upstream service unavailable,请打开“智能场景路由”设置,确认该模型在 dsh「设置 → 模型」中的 Provider 与实际可用的 Provider 完全一致。插件会校验 provider/model 组合后再注入请求。修改配置后需重启 Web profile。

总结

该插件通过自动化场景识别和模型回退机制,帮助开发者减少手动切换模型的操作。配置简单,且完全兼容 DSH 的现有认证体系。更多细节可参考GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜