llm-adaptive:为 DSH 增加 adaptive(自动路由)模型入口

前言

在 DeepSeek Harness(DSH)中,模型选择通常发生在 /model 选择器里。手动选择简单模型或高级模型可以工作,但在一轮会话中,请求复杂度会变化:有时只是确认、总结,有时需要多步推理或处理错误循环。对使用 DSH 做智能体、工具链或本地工作流的人来说,反复切换模型会打断流程。

llm-adaptive 针对这个问题提供一个 adaptive(自动路由) provider:每次请求先做复杂度分类,再根据 pool.json 中的路由链选择后端 provider。

这是什么

llm-adaptive 是一个 DSH 插件,用于 per-request 复杂度分类和 provider 路由。仓库位于 https://github.com/dylan121322/llm-adaptive,许可证为 MIT。

它把 DSH 的模型选择器扩展出一个 adaptive(自动路由) 入口,并在 lowmediumhighcritical 四个级别之间做路由。显式的 lowmediumhighcritical 模型也保留在 picker 中,可以直接选择。

核心功能

每次请求先分类

分类器使用 deepseek-v4-flash,直接调用,不经过 proxy,也不产生递归。

每次请求会被分为 lowmediumhighcritical 之一。

结合会话上下文

分类 prompt 会注入滚动会话目标摘要和最近几轮对话,并结合 continuation、wrap-up、error-loop 等规则判断当前请求是否需要更高或更低的路由级别。

Sticky level protection

当任务进行中,插件不会轻易把当前请求降到低一级。若没有明确的 downgrade 或 wrap-up 信号,请求会保持在上一级别。

配置驱动的路由链

路由链来自:

pool.json -> routing.levels

其中 $active 会展开为 active provider。缺失项会回退默认值;transport failures 会沿链向下尝试。

分类器配置来自 pool

分类器 URL、模型和密钥引用都来自 pool.jsonclassifier 段:

url
model
key_ref

插件不硬编码凭证。key_ref 会先对照 ~/.dsh/.credentials.yaml 解析,失败时回退到 pool 中的 api_key

Fail-open

如果分类失败,请求会降级到 medium。插件不会因此阻塞请求。

决策可观察

每个决策都会写入插件日志,包括 levelcausellm / sticky / cache)和 chain

日志路径为:

~/.dsh/hooks/plugin.log

120 秒决策缓存

插件维护一个 120s 决策缓存,缓存 key 由 user-text head 和 goal fingerprint 组成。

前置要求

使用前需要:

  • DeepSeek Harness(dsh)
  • 模型池文件:
~/.dsh/tools/cc-switch-sync/pool.json
  • pool.json 中的 classifier 段:urlmodelkey_ref
  • pool.json 中的 routing.levelslowmediumhighcritical
  • 一个用于分类器的 DeepSeek API key

包声明包含:

peerDependencies: @deepseek-ai/dsh-llm >=0.0.1-rc.5
dsh.bundle.patch: ./cordis.patch.yml

pool.json 可以由 cc-switch-sync import tool 生成,也可以手工编写。插件每次请求都会读取它,因此修改 pool 后会立即生效。

安装与启用

安装命令:

dsh plugin add llm-adaptive

安装完成后,重启 dsh web 服务,然后在 /model 选择器中选择:

adaptive(自动路由)

典型用法

1、打开 /model,选择 adaptive(自动路由)

2、之后的每次 LLM 请求都会被分类为 lowmediumhighcritical

3、请求会被路由到该级别链中的第一个可用 provider。

4、决策会写入日志,形如:

level=… cause=… chain=…

日志位于:

~/.dsh/hooks/plugin.log

显式级别 lowmediumhighcritical 也会列在 picker 中,可以直接选择,不依赖自动分类。

适用场景与注意

适合希望减少手动切换模型、但仍保留显式级别选择的 DSH 用户。它也适合需要按会话复杂度在不同 provider 之间切换的场景。

需要注意:

  • 插件以当前 dsh 进程权限运行,安装前应检查源码、依赖和本地配置路径。
  • 插件会读取 pool.json,并通过 key_ref 解析 ~/.dsh/.credentials.yaml,密钥引用应只指向你信任的来源。
  • 分类失败会 fail-open 到 medium,请求仍会继续。
  • 路由链的可用性取决于 pool.json 中配置的 provider 和 transport。
  • 许可证为 MIT,仓库地址为 https://github.com/dylan121322/llm-adaptive

结尾

llm-adaptive 给 DSH 增加了一个配置驱动的自动路由入口:每次请求按上下文分类,再进入 low / medium / high / critical 路由链;分类失败时保持可用,并把决策写入日志。

GitHub:https://github.com/dylan121322/llm-adaptive

目录页入口可在 GitHub README 中的 “Awesome DSH Plugin” 徽章处找到。

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

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

Xiaoye