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";默認狀態下它不會動標準請求,也不會靜默降檔。目錄頁與源碼見下方。

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

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

小夜