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