dsh-adaptive-model-router:DeepSeek Harness 逐轮自适应模型路由

在 DeepSeek Harness 的开发中,如何根据任务复杂度在“经济模型”和“高质量模型”之间切换是一个常见需求。手动实现分类逻辑会增加系统的复杂度,且难以保证一致性。dsh-adaptive-model-router 插件提供了一套确定性、本地化的路由方案,通过简单的配置即可实现按需切换。

这是什么

dsh-adaptive-model-router 是一个 Deterministic per-turn adaptive model routing 插件,由 icyaaaww 维护。它针对 DeepSeek Harness 0.1.1-rc.2 版本设计。

该插件的核心价值在于它不通过调用另一个模型来分类请求,而是通过本地、同步、可复现的计算来决定路由。它会在单次会话中根据任务特征自动升级模型,但不会降级,从而在保证成本控制和响应质量之间取得平衡。

核心功能

  1. 确定性逐轮路由:在每轮对话开始时,根据输入字符数和关键词判断是否需要切换到高质量模型。
  2. 本地同步执行:路由逻辑完全本地化,不发起额外的模型调用,因此不会增加 token 消耗或产生额外的 provider 请求。
  3. 迟滞行为:在单次会话(turn)中,路由可以升级但不会降级。只有当进入新的一轮对话时,才可能重新评估并降级到经济模型。
  4. 灵活的升级条件:支持基于步骤数(upgradeAfterStep)或工具失败次数(upgradeAfterToolFailures)来触发升级。
  5. 参数控制:支持在路由中显式设置 reasoningEffort 和 maxTokens,并允许通过 preserveUnknownSelection 保留未配置的路由选择。
  6. 透明化:插件会记录请求配置的变更,保持 provider 和 model 变量的一致性,便于调试和回放。

安装与启用

安装该插件需要使用 DeepSeek Harness 的插件安装命令。请确保你的环境已满足 Node.js ^22.19.0 || >=24.0.0。

dsh plugin --profile web add github:icyaaaww/dsh-adaptive-model-router

配置与典型用法

安装后,需要在 Harness 的配置中定义经济模型和高质量模型,并设置路由规则。

基础配置示例

在配置文件中定义路由器,设置经济模式和高质量模式的提供商及模型,并设定触发升级的阈值。

- id: adaptive-model-router
  name: dsh-adaptive-model-router
  config:
    economy:
      provider: deepseek-official
      model: deepseek-v4-flash
    quality:
      provider: deepseek-official
      model: deepseek-v4-pro
    inputCharsThreshold: 1200
    complexityKeywords: [architecture, migration, security, 架构, 迁移, 安全]
    upgradeAfterStep: 2
    upgradeAfterToolFailures: 1
    failureExclude: [todo_write, job_output, job_list]
    preserveUnknownSelection: true

配置项说明

  • economy / quality:定义低成本模型(如 flash)和高成本模型(如 pro)的提供商和具体模型名称。
  • inputCharsThreshold:输入字符数达到此值时触发升级。
  • complexityKeywords:包含这些关键词(不区分大小写)时触发升级。
  • upgradeAfterStep:从 0 开始计数,达到该步数时触发升级。
  • upgradeAfterToolFailures:连续未排除的工具失败达到该次数时触发升级。
  • failureExclude:指定在统计工具失败次数时需要排除的工具列表。
  • preserveUnknownSelection:如果为 true,未匹配到路由的请求保持原样;如果为 false,插件将接管所有请求。

参数调整

路由配置支持可选参数。在路由中指定 reasoningEffort 会清除之前模型的设置;不指定 maxTokens 则保留显式的请求限制。

注意事项

  • 复杂度估算:关键词和长度规则仅用于估算复杂度,不能直接衡量回答质量。
  • 工具失败统计:除非在 failureExclude 中排除,否则策略拒绝产生的工具失败也会计入升级条件。
  • 并行工具:如果路由在工具执行中途升级,已并行运行的工具可能仍在使用旧模型运行。
  • 模型目录验证:插件不验证模型是否在目录中,由选定的 provider 负责处理可用性诊断。
  • 成本报告:插件不包含成本报告功能,需要通过对比部署前后的遥测数据来评估效果。

适用场景

该插件适合需要在对话过程中动态调整模型复杂度的场景。例如,简单的问答使用 flash 模型降低成本,遇到复杂的架构设计或工具调用失败时自动切换到 pro 模型,从而在保证最终质量的同时控制推理成本。

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

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

小夜