用 dsh-router-standard 給 DeepSeek Harness 自動選推理模式

前言

DeepSeek Harness(dsh)把模型、工具、會話、循環都做成插件,同一套智能體可以換預設、換工具面、換系統提示。實際跑任務時,問題往往不在「有沒有工具」,而在首輪請求把模型送進了哪條思維鏈:有的任務適合先想清楚再動手,有的任務適合想一段做一段。同一條提示詞、同一套工具目錄,首輪 persona 和可見工具稍微不同,後續軌跡就可能完全岔開。

社區倉庫 dsh-router-standard 做的就是這件事:在第一次模型請求之前,按任務把會話放到可觀測的行爲檔位上,並注入對應的 persona 與首輪工具面。它由 yjh051108 維護,MIT 許可,當前 package.json 版本爲 0.2.0。本文按社區目錄頁、GitHub README、源碼與勘誤聲明交叉覈對後整理。文中提到的 DeepSeek Harness 插件庫 是獨立社區站點,與 DeepSeek / 幻方沒有官方從屬關係;官方發現入口仍是 GitHub topic dsh-plugindeepseek-ai/deepseek-harness

這是什麼

dsh-router-standard 是一套面向 DeepSeek Harness 的 agent preset(智能體預設),目錄分類爲「會話與消息」。它不是換模型,也不是再包一層聊天 UI,而是改寫會話在 agent 平面上的系統提示與首輪工具目錄。

倉庫 README 把它概括爲:一個預設、兩套路由模式(v0.2.0 命名),背後是一條 react ↔ spec 軸上測到的三個行爲區間。目錄頁的定位與此一致:在首個模型請求前自動選檔,支持 persona 與首輪工具注入,並把調參工具暴露給 agent。

截至 2026-08-17,GitHub 倉庫 yjh051108/dsh-router-standard 與目錄頁均顯示 270 stars。NOTICE 寫明:這是社區產物,未經 DeepSeek 背書;preset/agent.cordis.yml 派生自官方 Standard 預設(MIT),首輪錨定機制移植自 xiaobright/dsh-anchored-standard

需要先分清兩套「模式」名字,否則後面會混:

  • 路由預設(安裝時二選一或都裝):Router StandardRouter Spec,對應配置項 routerMode: standard | spec
  • 行爲帶(分類與調參用):spec / mixed / react,另有分類不明確時走的 weak(內部路由)。

核心功能

兩套路由預設

v0.2.0 把用戶可安裝的預設收成兩個,README 給出的對照如下。

路由預設 首輪請求長什麼樣 思維形態(倉庫實測描述)
standard(默認推薦) 只保留 RL 訓練句 You are a helpful software engineer assistant.,工具面收成 shell + str_replace_editor 沒有「雷霆大思考」:想一段做一段
spec 按任務分類注入 persona(spec / react / weak),保留完整 prompt sections 首輪超長思維鏈;README 寫「101K 推理 0 行動是其特徵,不是缺陷」

preset/router-standard/preset.yml 裏顯示名爲 Router Standard (experimental)preset/router-spec/preset.ymlRouter Spec (experimental)agent.cordis.ymlrouter-bootstrap 的默認配置是 routerMode: standard

standard 模式會在首輪把身份、Web、工具引導等 section 拿掉,只留下 RL 那一句(plan-mode 的 section 會保留)。spec 模式則用 applyPersona() 只替換 persona,其餘 section 不動。無論哪一套,第一次持久工具調用之後都會放開完整 Standard 工具目錄,路由器不再改工具面。模式來自會話裏可持久化的事件,resume / reload 後仍然有效。

三個可觀測行爲帶

倉庫在 V4 Pro 上做了細粒度探針(README:21 個 mode 點 × n=2,官方 API,reasoning_effort=max),結論是 persona 軸上的行爲會塌縮成三個區間,而不是連續可調:

行爲帶 數值區間 倉庫描述的可觀測行爲
spec 0 – 0.19 穩定的計劃-集體軌跡(We,let-me 接近 0)
mixed 0.2 – 0.49 過渡陷阱:We / The / Let 混用,不穩定
react 0.5 – 1.0 穩定的執行者軌跡(The / Let 第一人稱)

自動分類不會選 mixed。dev_router_mode 仍接受 0–100 或 0.0–1.0,但內部會量化到這三個帶。V4 Flash 在 README 裏被寫成閾值型:0–0.5 都偏 spec 側,到 0.75 以上才跳變。

任務分類在 preset/router-standard/router-core.mjsclassifyTask():用中英文關鍵詞分別統計「構建/開發」與「修復/調試」命中;哪邊多就落到 react 或 spec,打平或沒命中則返回 weak,交給模型按任務自己選風格。

首輪 Persona 與工具注入

spec 路由預設下,首輪核心工具隨行爲帶變化(bootstrap 還會自動補上當前平臺的 bashpwsh):

  • spec:read / edit / glob / grep(先讀)
  • react:read / write / edit(先寫)
  • weak:str_replace_editor(與 shell 組成 README 所說的 RL 雙工具面)

standard 路由預設不走這套分類工具面,首輪固定爲 RL 句 + shell + str_replace_editor

weak 帶還會在每條真實用戶消息後追加一條近場引導。簡單任務用快速收斂指引;被 isComplexTask() 判爲複雜(長度超過 120,或命中「架構 / 重構 / architecture」等詞)則換成決策閉合的深引導。README 把這套深度自適應引導標爲 v20。

對 agent 可見的調參

預設向模型註冊三個工具:

  • dev_router_status:當前路由預設、mode、band、persona、首輪核心工具、是否存在覆蓋
  • dev_router_mode <spec|weak|mixed|react|0-100|0.0-1.0|auto>:顯式改檔;auto 清掉覆蓋,回到任務分類
  • dev_mode_subagent <spec|react|balanced> <task>:在全新隔離上下文裏用另一套推理模式跑一次任務,不改當前會話軌跡

README 強調:會話中途改 persona 會作廢整段 prefix cache,尾部再塞 persona 基本無效(實驗編號 P6),原生 subagent 還會繼承當前 persona。因此中途換檔只認模式隔離的子代理。

按模型自動匹配

沒有單獨的 Pro / Flash 配置項。personaFor(mode, modelId) 讀當前會話的模型路由:model id 匹配 /flash/i 時走 Flash 的 weak persona(帶回顧 / 反跑題錨點),否則走 Pro 的 w6c(spec 句 + 分類指令、無錨點)。persona 在首次請求鎖定;在 GUI 裏換模型會開新會話,再匹配一次。

安裝與啓用

社區目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端中運行:

dsh plugin add github:yjh051108/dsh-router-standard

目錄頁同時說明:如需可復現安裝,應固定 commit 哈希。當前 main 最新提交爲 f9667f72d45e743f1683f36420ce34c2027fe7b2(2026-08-15):

dsh plugin add github:yjh051108/dsh-router-standard#f9667f72d45e743f1683f36420ce34c2027fe7b2

倉庫 package.json 沒有 dsh.bundle 聲明,README 把真正啓用路徑寫成「複製 agent preset」,而不是隻依賴 bundle 層掛載。克隆倉庫後,把兩套預設拷進 ~/.dsh/.agent-presets/(README 原文是 PowerShell;Linux / macOS 等價寫法如下):

# 標準路由預設(RL 接口還原,默認推薦)
mkdir -p ~/.dsh/.agent-presets
cp -R ./preset/router-standard ~/.dsh/.agent-presets/router-standard

# spec 路由預設(深度思考優先)
cp -R ./preset/router-spec ~/.dsh/.agent-presets/router-spec

Windows 上按 README:

# 標準路由預設(RL 接口還原,默認推薦)
$target = Join-Path $env:USERPROFILE '.dsh\.agent-presets\router-standard'
Copy-Item -Recurse .\preset\router-standard $target

# spec 路由預設(深度思考優先)
$target = Join-Path $env:USERPROFILE '.dsh\.agent-presets\router-spec'
Copy-Item -Recurse .\preset\router-spec $target

README 有一條加載器限制:已安裝副本必須保持互不相同的模塊文件名。ESM 按 URL 緩存模塊,不要在原地覆蓋同名文件。

然後重啓 dsh,新開一個會話,在 Agent preset 裏選擇 Router Standard (experimental)Router Spec (experimental)。已有會話不會切換預設。

package.json 要求 Node.js >=22。自測命令:

node --test router.test.mjs

典型用法

下面的步驟來自 README 與源碼,可以按原樣復現。

1. 新會話選標準路由,讓它按任務自動選檔

重啓後開新會話,選 Router Standard (experimental)。第一條用戶消息會被分類;standard 預設下首輪系統提示收成 RL 那一句,模型進入想-做循環。若任務更像「先把方案想透」,改選 Router Spec (experimental)

2. 讓 agent 自己彙報當前檔位

在會話裏讓模型調用:

dev_router_status

返回內容包括 router-mode(standard / spec)、modeband、persona 文本、首輪 core 工具列表,以及是否處於 override。

3. 顯式改檔,或清回自動分類

dev_router_mode spec
dev_router_mode react
dev_router_mode weak
dev_router_mode 0.3
dev_router_mode auto

數值輸入會被量化到三個行爲帶。mixed / 0.3 可以手動打開,但 README 標明這是過渡陷阱,自動路徑不會選它。改檔在下一次請求生效。

4. 當前會話不動,用隔離上下文跑另一種推理

dev_mode_subagent spec 給當前倉庫寫一份遷移方案,只輸出計劃

子代理使用獨立 system prompt,返回文本(過長會截斷)以及 reasoning 字符數。當前會話的軌跡、persona、工具面都不變。

適用場景與注意事項

適合已經在用 DeepSeek Harness、並感覺「同一模型有時極簡高效、有時首輪把上下文耗在長思維鏈上」的人。維護任務、排錯、需要先讀再改時,spec 帶 / spec 預設更接近計劃-集體風格;從零搭建、直接出可運行產物時,react 帶 / standard 預設更接近執行循環。分類模糊的任務會落到 weak,由模型按 build / fix 自行選風格。

使用前有幾條邊界需要看清。

這是實驗預設。 兩個 UI 名稱都帶 (experimental)。它改的是 agent 平面的系統提示和首輪工具目錄,不替換宿主上的沙箱、審批、模型路由。NOTICE 寫明未經 DeepSeek 背書。

路徑一旦提交就鎖住。 首次請求決定本會話 persona;中途在 GUI 換模型等於新開會話。若要在同一輪對話裏用另一種推理,走 dev_mode_subagent,不要指望改一句 persona 就能翻盤。

測量數據是作者倉庫記錄,不是公開基準。 README 引用了 Project2、Mario 等分數差,以及 Flash / Pro 上的路由率。NOTICE 指出 Project2 數字來自 xiaobright/modeltest(V4.1b,凍結,個人 harness),不是公開 benchmark。文中數字請回到 docs/experiments.md 覈對,不要當成官方評測。

理論部分已作廢,工程部分仍在。 倉庫 README 頂部和 docs/statement.md(2026-08-16)寫明:論文不撤回,但「雙吸引子」假設 A1–A4,以及 god/ghost、自路由不可能等強歸因已標註作廢。作者現在的表述是現象學的:把測到的行爲斷層當路由層來用。寫配置、看工具時以 README 的 Usage 和源碼爲準,不要把已作廢的理論解釋當成確定機制。

安裝會以當前 dsh 進程權限跑代碼。 目錄頁原文提醒:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前應檢查源代碼倉庫和許可證;需要可復現安裝時固定 commit 哈希。本倉庫許可證爲 MIT,版權聲明爲 Copyright (c) 2026 yjh051108

不要和套裝倉庫混用安裝路徑。 同一維護者還有 dsh-routing-suite(注入器 + 本預設的打包),安裝步驟不同。本文只覆蓋 dsh-router-standard 倉庫自己的 README。

小結

dsh-router-standard 把 DeepSeek Harness 會話的推理形態,從「同一套 Standard 提示碰運氣」收成可安裝的兩套預設,並在首輪請求前注入 persona 與收窄的工具面。standard 走 RL 接口還原的想-做循環,spec 走深度思考優先;背後的 spec / mixed / react 三個帶來自倉庫自己的探針,mixed 默認不選。調參工具對 agent 可見,中途換檔則要走隔離子代理。

它是社區實驗預設,不是官方應用商店裏的一鍵開關。安裝前讀源碼、看許可證、固定 commit;理論敘事以倉庫勘誤爲準。目錄頁與倉庫地址:

  • 目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-router-standard/
  • GitHub:https://github.com/yjh051108/dsh-router-standard
羽毛球分组比赛记分
小程序二维码

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

小夜