delthin/dsh-fast:为 DSH 会话加一个标准 / Fast 档位切换

前言

DeepSeek Harness 的插件体系里,一次会话走哪个后端、以什么优先级跑,通常交给 provider 自己的配置决定。当你只想临时把当前会话切到一条更明确的路径——例如把某个 Responses 请求转发到一个可信的 Codex Responses 目标、并带上 service_tier: "priority"——改全局配置往往太重,而且会影响整个 profile 的其他会话。

delthin/dsh-fast 解决的就是这件事:把档位切换做成会话级,并提供一个带推理等级调节的模型选择器。下面介绍这个插件能做什么、怎么装、以及哪些地方需要你自己确认。

这是什么

dsh-fast 由 Delthin 维护,分类是模型推理。它给 DeepSeek Harness(DSH)提供两件事:

  • 当前会话的「标准 / Fast」档位切换,可以按会话读写,不需要重启或改全局配置。
  • 模型选择器里的推理等级(reasoning effort)滑块。

当会话处于 Fast 档时,插件会把一个明确配置的 provider 发往一个完整 Responses URL 的请求,转发到指定 Codex Responses URL,并设置 service_tier: "priority"。

需要注意定位:这是一次定向的 Responses-to-Codex 转发,不是通用供应商加速器。普通供应商、Chat Completions、自定义协议不能据此视为已支持;供应商实际是否提供优先级、是否收费、是否更快,由目标服务决定。

兼容范围

  • 宿主最低版本为 DSH 0.2.1-rc.5(>=0.2.1-rc.5,包含后续预发布版本)。Web 客户端需要内置模型选择服务 @deepseek-ai/dsh-client-ui-model-selection。Desktop 客户端未验证。
  • 当前只支持单 provider / 单 Responses URL → 单 Codex Responses URL。
  • 需要原适配器通过兼容的 Undici 7 全局 dispatcher 发起请求。绕过全局 dispatcher 的 HTTP 客户端、独立 dispatcher、Undici 8 请求链不在本版验证范围。
  • Fast 只影响当前会话的后续请求,不继承到普通子会话。

核心能力

1、会话级档位。档位保存在 DSH 的 dsh_fast domain,控制的是当前会话;切换状态本身不证明请求已命中目标或获得优先处理。

2、模型选择器。提供带推理等级调节的模型选择 UI,入口作用于已配置的 provider。

3、Fast 转发。满足精确匹配 sourceURL 的请求才会被转发,转发时保留原适配器生成的认证与业务头,并转换为 Codex 外层载荷。没有匹配 sourceURL 的请求仍会直通。

4、命令控制。提供 /fast on、/fast off、/fast toggle、/fast status 四条指令。

5、可选角色联动。能读取已有角色插件的 runs.json 快照,把启动时的档位固定下来,但不会安装或自动同步角色插件。

安装与启用

环境要求:DSH 0.2.1-rc.5 及以上,Node.js 22.19.0 或更新版本。插件固定依赖 undici@7.30.1 和 zod@4.6.7;宿主 peer 依赖为 @deepseek-ai/cordis@>=4.0.5、@deepseek-ai/schemastery@>=3.18.5。

npm 包名为 @delthin/dsh-fast。无作用域的 dsh-fast 属于另一位作者,不是本项目,安装时不要写错。

用固定 npm 版本安装:

dsh plugin --profile web add @delthin/dsh-fast@0.1.2

也可以使用同版本的 GitHub Release 安装包:

dsh plugin --profile web add https://github.com/Delthin/dsh-fast/releases/download/v0.1.2/delthin-dsh-fast-0.1.2.tgz

把命令里的 web 换成你自己的 profile 名称。也可以在 DSH 的插件页用上面这条 URL 安装。

安装后在插件页检查组合包和 fast 条目是否启用。若 DSH 提示需要重启,则重启该 profile,再刷新 Web 页面。

首次安装不需要角色插件或 Fast 路由就能加载。默认没有 provider、源 URL、目标 URL、本机路径:标准请求仍走原适配器,模型选择器里的 Fast 入口禁用,/fast on 会明确提示尚未配置。只填写部分路由字段同样按未配置处理。

配置 Fast 路由

在目标 profile 的 cordis.patch.yml 中,为安装生成的 fast 条目添加覆盖;也可以通过支持修改条目配置的 DSH 插件界面操作:

- id: fast
  config:
    provider: my-provider
    sourceURL: https://provider.example/v1/responses
    targetURL: https://trusted-target.example/backend-api/codex/responses

上面的示例域名不能直接使用,必须替换成你自己确认支持此路由的地址。

各字段含义如下:

字段 含义
provider DSH 中已有供应商的真实 ID,不是显示名称。插件不会创建供应商,也不会配置凭据。
sourceURL 原适配器实际 POST 的完整 Responses URL,包含路径与查询参数(如有)。不是 API base URL。只有精确匹配此地址的请求才会被转发。
targetURL 管理员明确指定且可信的 Codex Responses 目标 URL。必须为 HTTP(S),不能包含用户名、密码或 fragment;无效 URL 会导致插件加载失败。
roleRunsPath 可选。已有角色插件的 runs.json 快照文件路径。默认空字符串,不读取角色文件。相对路径按 DSH 宿主进程的工作目录解析。

保存配置并由 DSH 重新加载后,打开模型选择器,在配置的 provider 上切换 Fast,或者直接用命令:

/fast on
/fast off
/fast toggle
/fast status

几个容易踩的点:

  • Fast 状态下请求其他 provider 会得到明确错误,先切回标准档。
  • 状态接口里的 lastDelivery 只是当前进程内的转发尝试记录,不代表目标已接受请求或兑现优先级。
  • 如果之后卸除了路由配置,已有 Fast 会话会明确报「尚未配置」,不会静默降档。这时用 /fast off 或模型选择器切回标准档。

角色插件联动(可选)

不装角色插件也能独立使用会话档位。需要和已有角色插件联动时,显式设置 roleRunsPath:

- id: fast
  config:
    provider: my-provider
    sourceURL: https://provider.example/v1/responses
    targetURL: https://trusted-target.example/backend-api/codex/responses
    roleRunsPath: ./agent-roles/runs.json

同时要在角色插件自己的配置里手动把 fastProviders 对齐到相同的 provider ID,例如 fastProviders: [my-provider]。本插件不会安装、修改或自动同步角色插件。

角色会话档位以启动快照中的 selection.fast === true 为准,固定后不能通过 /fast 或模型选择器修改。旧快照缺少 selection.fast 时仍固定为标准档,不能从角色模板的当前值反推。角色设置的修改只作用于以后启动的新成员。文件不存在或会话不在快照中时按普通会话处理;快照文件损坏或格式错误时会报告错误,不会忽略已有快照规则。

认证与安全

Fast 保留原适配器生成的认证及业务头,并且只向明确配置的 targetURL 发起 Fast 上游请求,不会从请求头或请求体里选目标,也不自动跟随目标的 HTTP 重定向。

这意味着请求内容会发送到该目标,认证凭据也会随之转发。因此目标必须可信,并且有权接收原供应商的凭据;生产环境应使用 HTTPS。换句话说,targetURL 填什么,你的凭据就送去哪里,这一条需要在配置前确认清楚。

配置完整时,插件使用带随机令牌的本机 loopback 转发端口,并清理内部控制头、连接级头。支持原链路经过本机 billion 转发器的精确 /bili/<sourceURL> 形式:先保留其处理,再转换 Codex 外层载荷。如果走第三方转发器,仍需自行审查它的认证与日志策略。

插件通过已有的 llm/stream、storageDomain、sessionController、connection 和 commands 能力工作,不增加 DSH Service,也不替换全局 fetch 或原适配器。转发回执只保存在内存,最多 1000 个会话,不含提示词、请求头或凭据。

从源码构建与测试

从源码仓库准备好依赖后执行:

npm install
npm run check
npm test
npm pack

prepack 会执行语法检查、JSON/元数据检查和定点测试。测试只用合成数据、本机 HTTP 服务和不发网的示例 URL,不调用模型,也不调用付费模型。安装包的 files 白名单只包含运行文件、locale、图标、README 和 LICENSE;测试、检查脚本、截图索引、截图、依赖目录和本地工件都留在源码仓库,不进安装包。

适合谁,以及使用前提

适合这类场景:你有一个明确可信的 Codex Responses 目标,希望某个会话在这条路径上跑得带优先级,同时又不想改全局 provider 配置、不影响其他会话或子会话。

使用前请确认三件事:

1、目标端确实支持这个 Responses-to-Codex 路由,并且有权接收原供应商产生的凭据。示例域名不能直接用。
2、插件以当前 DSH 进程的权限运行,安装和配置前先检查源码与许可证。本插件为 MIT License,版权归 Delthin。
3、本插件只验证了 Undici 7 全局 dispatcher 这条请求链,且未做所有供应商的真实端到端验证;Fast 也不保证目标服务会兑现优先级或更快。

小结

dsh-fast 做的是会话级档位:一个配置好的 provider、一个精确匹配的 Responses URL,转发到一个可信的 Codex Responses URL 并带上 service_tier: "priority";默认状态下它不会动标准请求,也不会静默降档。目录页与源码见下方。

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

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

小夜