dsh-session-slm-router:DeepSeek Harness 影子模式 SLM 路由插件

前言

DeepSeek Harness(DSH)采用“一切皆插件”的架构。在进行模型推理优化时,特别是 S1 阶段(影子模式)观察或 S3 阶段(灰度发布)上线时,需要根据用户发言内容动态决定使用小型模型(SLM)还是大型模型(LLM)。dsh-session-slm-router 插件通过调用外部 vertical-small-model CLI 工具,每轮预测用户意图的强弱分类,并将结果记录到影子日志中。默认模式下,它仅记录数据不改变会话活跃模型;在特定配置下,它可以执行降档操作。

核心功能

  • 影子模式 SLM 路由:通过 vertical-small-model CLI 预测每轮用户发言的强弱分类(weak/strong)。
  • 影子日志记录:将预测结果、实际模型档位、降档决策等写入 JSONL 格式的影子日志文件。
  • S1 模式(默认):只预测和记录日志,不改变会话当前活跃的模型。
  • S3 模式(弱模型模式):执行降档换模,但仅放行 switch_to_weak(降档),不执行 switch_to_strong(升档)。
  • Reasoning Eff�ort 兼容性检查:在 weak-only 模式下,绑定时会检查目标模型的 reasoning effort 能力,若不支持则剥离参数或顺延次选。
  • 同意门:支持在降档前通过宿主审批通道(如浏览器 UI)弹窗确认,支持 always/smart/never 三种策略。

安装与启用

插件通过 DSH 的插件管理器安装。安装前请确保已部署好外部依赖 vertical-small-model CLI。

# 安装插件
dsh plugin add dsh-session-slm-router

安装后,需要在配置文件中启用并配置相关参数。

配置说明

模式选择

插件提供三种工作模式:

  • shadow(默认):只预测 + 写影子日志,不换模。
  • weak-only:真正换模,但只放行 switch_to_weak(降档);switch_to_strong 记录但不放行。
  • off:关闭插件。

必填配置

运行时必须配置预测命令和模型路径,指向 vertical-small-model 项目的部署位置。

session-slm-router:
  mode: shadow  # 或 weak-only
  predictCmd: "python3 <path-to>/vertical-small-model/scripts/route_predict.py"
  predictModel: "<path-to>/vertical-small-model/data/eval/routing-v0/model-r1.json"
  logPath: "slm-shadow/session-slm-shadow.jsonl"

可选配置项

  • 同意门 (downgradeConfirm):默认为 never(静默自动降档)。可选值:always(每次 bind 都弹窗)、smart(仅高意图情景弹窗,如会话首轮/当前强模型≠默认)、never(不弹窗)。
  • 槽位缓存 (slotCachePath):可选。用于持久化弱模型槽位的健康状态,路径相对于 ~/.dsh。删除缓存文件即可重建。
  • 槽位规则 (tierRules):
    • maxTokensWeakMax:L2 元数据降档阈值。
    • autoWeak:自动收录机制,默认开启。当新供应商/模型元数据确认(maxTokens ≤ 阈值)时,自动加入降档候选池(除非显式在 strongSlots 中否决)。

完整配置示例

session-slm-router:
  mode: weak-only
  weakOnlyMainOnly: true  # weak-only 是否只对主会话换模
  predictCmd: "python3 /path/to/vertical-small-model/scripts/route_predict.py"
  predictModel: "/path/to/vertical-small-model/data/eval/routing-v0/model-r1.json"
  logPath: "slm-shadow/session-slm-shadow.jsonl"
  slotCachePath: "slm-shadow/slot-order-cache.json"
  tierRules:
    maxTokensWeakMax: 32768
    autoWeak: true
  downgradeConfirm: never
  weakSlots:
    - { provider: openai, model: gpt-4o-mini }
  strongSlots:
    - { provider: openai, model: gpt-4o }

数据记录

影子日志文件位于 ~/.dsh/slm-shadow/session-slm-shadow.jsonl,每行一个 JSON 对象。关键字段包括:

  • suggested_tier:CLI 预测的强弱分类。
  • actual_tier:当前实际模型档位。
  • target_source:降档目标来源(registry/strongSlots 或 auto)。
  • switch:决策结果(stay / switch_to_weak / switch_to_strong)。
  • bound:weak-only 模式下是否实际换模。
  • downgrade_confirm:同意门结果(confirmed/denied/cancelled/unavailable)。
  • predict_ok:预测是否成功。

注意事项与适用场景

  • 依赖外部部署:插件本身不包含预测模型,必须部署 vertical-small-model CLI 并正确配置 predictCmd 和 predictModel。
  • 权限与运行环境:插件以 DSH 进程权限运行,请确保配置路径可写。
  • 理念定位:DSH 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。本插件旨在提供灵活的影子模式和灰度路由能力。

结语

该插件为 DSH 用户提供了一个落地的影子模式路由方案,便于在 S1 阶段验证路由策略,或在 S3 阶段进行灰度发布。通过 JSONL 日志,可以清晰地追踪每一轮的预测与决策过程。

  • GitHub 仓库:https://github.com/NinjaSln-labs/dsh-session-slm-router
  • 社区目录:https://www.skillhub.cn/plugins/NinjaSln-labs/dsh-session-slm-router
羽毛球分组比赛记分
小程序二维码

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

小夜