前言¶
DeepSeek Harness(dsh)把模型、工具、會話、循環都做成插件,同一套智能體可以換預設、換工具面、換系統提示。實際跑任務時,問題往往不在「有沒有工具」,而在首輪請求把模型送進了哪條思維鏈:有的任務適合先想清楚再動手,有的任務適合想一段做一段。同一條提示詞、同一套工具目錄,首輪 persona 和可見工具稍微不同,後續軌跡就可能完全岔開。
社區倉庫 dsh-router-standard 做的就是這件事:在第一次模型請求之前,按任務把會話放到可觀測的行爲檔位上,並注入對應的 persona 與首輪工具面。它由 yjh051108 維護,MIT 許可,當前 package.json 版本爲 0.2.0。本文按社區目錄頁、GitHub README、源碼與勘誤聲明交叉覈對後整理。文中提到的 DeepSeek Harness 插件庫 是獨立社區站點,與 DeepSeek / 幻方沒有官方從屬關係;官方發現入口仍是 GitHub topic dsh-plugin 與 deepseek-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 Standard與Router 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.yml 爲 Router Spec (experimental)。agent.cordis.yml 裏 router-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.mjs 的 classifyTask():用中英文關鍵詞分別統計「構建/開發」與「修復/調試」命中;哪邊多就落到 react 或 spec,打平或沒命中則返回 weak,交給模型按任務自己選風格。
首輪 Persona 與工具注入¶
spec 路由預設下,首輪核心工具隨行爲帶變化(bootstrap 還會自動補上當前平臺的 bash 或 pwsh):
- 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)、mode 與 band、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