dsh-switchman 1.3.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.zh-TW.md CHANGED
@@ -2,77 +2,99 @@
2
2
 
3
3
  [English](./README.md) | [简体中文](./README.zh.md) | **繁體中文** | [日本語](./README.ja.md) | [한국어](./README.ko.md) | [Español](./README.es.md) | [Français](./README.fr.md) | [Deutsch](./README.de.md) | [Italiano](./README.it.md) | [Português](./README.pt.md) | [Русский](./README.ru.md)
4
4
 
5
- > **switchman 家族**,同一作者、同一套調度理念:[opencode-switchman](https://github.com/mrzturn/opencode-switchman)(OpenCode 原版)· [zcode-switchman](https://github.com/mrzturn/zcode-switchman)(ZCode 移植)· **dsh-switchman**(本倉庫,DeepSeek Harness 版)。
5
+ > **switchman 家族**,同一作者、同一套調度理念:[opencode-switchman](https://github.com/mrzturn/opencode-switchman)(OpenCode 原版)· [zcode-switchman](https://github.com/mrzturn/zcode-switchman)(ZCode 移植)· **dsh-switchman**(本儲存庫,DeepSeek Harness 版)。
6
6
 
7
- ![dsh-switchman — 上下文水位驅動轉轍手,把任務丟進對的泳道](docs/assets/hero.svg)
7
+ ![dsh-switchman — 上下文水位驅動轉轍器,把任務丟進對的車道](docs/assets/hero.svg)
8
8
 
9
9
  > 上下文裝上水錶,任務自己找車道。
10
10
 
11
- 一個 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH)外掛。裝上之後,主模型從「什麼都自己幹」變成調度員:量水位、選泳道、派任務、盯驗收。它做四件事:
11
+ ## 為什麼需要它
12
12
 
13
- **1. 上下文水位控制。** 每輪即時計量會話 token。soft 檔(預設 50k)建議委派,hard 檔(90k)收緊每輪讀取預算並引導收尾,force 檔(130k)自動備份會話並移交壓縮。會話跑一整天,上下文也不會淹沒在自己的歷史裡。派出去的每個子代理帶獨立硬頂,超了就寫完 HANDOFF 摘要退場。
13
+ 用 DSH 幹活久了有兩件煩心事:一是對話越聊越重,上下文被歷史撐到幾十萬 token,模型開始忘事、變慢、變貴,手動 /compact 又丟細節;二是主力模型什麼都自己幹,查個檔案、跑個測試、對個資料都是它在啃,大半活其實該交給便宜模型。
14
14
 
15
- **2. 六泳道派發。** economy / mechanical / main / hard / vision / review 六條認知泳道:設定頁裡勾選候選模型、按最強優先排序(可錨 S/A/B/C 檔),每條路線還能單獨釘死思考強度——下拉檔位直接來自該模型真實支援的清單,不是通用的三檔。`[SWITCHMAN:POOLS]` 推薦表隨提示詞下發給主模型照著派活;`enforce` 模式下池外模型直接拒絕。
15
+ dsh-switchman 是一個 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH)外掛。裝上之後,主模型從「親自幹活」變成調度員:量水位、選車道、派任務、盯驗收。它不是新模型,是一套掛在 DSH 上的調度規程加一個設定頁,一共做七件事:
16
16
 
17
- **3. 語言偏好。** 回覆、程式碼註解、文件三種語言各一個下拉選單。未設定時首次使用問一次、永久記住,之後每個會話自動遵守。
17
+ **1. 上下文水位:長對話不撐爆。** 每輪即時統計對話 token,三條水位線逐級加碼:50k(soft,可調)提醒「該委派了」;90k(hard)收緊單次讀取預算、引導收尾;130k(force)自動交接——fork 一份對話留底、壓縮上下文、喚醒續跑,任務不斷線。交接那一刻還在跑的背景子代理也不會丟:id、任務、報告路徑都寫進交接文件,續跑的對話知道去哪收報告,不會重複派工。每個子代理自帶獨立硬上限,到頂寫完 HANDOFF 摘要退場。自動干預不合手時可臨時接管:`/ctx-pause` 停掉全部水位動作(量測照跑、橫幅轉成 paused,只是不動手),`/ctx-resume` 隨時恢復——重新啟動 DSH 後干預也會自動回來,是臨時放手,不是永久關閉;`/ctx-handover` 不等水位到頂,主動發起同一次交接:fork 備份、壓縮上下文、喚醒續跑(對話先被引導到閒置邊界,結果可能要等幾分鐘)。
18
18
 
19
- **4. 預設委派規程。** 取代 DSH 出廠的保守團隊政策(「僅當使用者明確要求才建團隊」):小事親做(讀 <200 行、改 <50 行),大活預設委派;改完必驗——超過 20 行交 tester,超過 300 行或動了核心邏輯交 reviewer。你說「不要用團隊」,它立刻讓位。
19
+ **2. 六個派發池:什麼活配什麼模型。** 輕量池(批次小活)、機械池(模板化改寫)、主力池(日常編碼)、高難池(高難推理與大規模重構)、多模態池(看圖)、複審池(獨立驗證)。設定頁裡勾候選、排優先順序、標 S/A/B/C 級,還能給每條路線單獨釘選思考強度——強度下拉來自該模型真實支援的級別,不是通用三級。主模型每輪提示詞裡都帶著一張 `[SWITCHMAN:POOLS]` 推薦表,照表派工。執行模式三態:關閉 / 建議 / 強制(強制 = 池外模型直接拒絕)。
20
20
 
21
- 只有一個模型?依然值得——水位控制與這套規程根本不在乎你有幾個模型。
21
+ **3. Agent Teams 模式:從單幹到帶團隊。** 預設關閉,裝完就是輕量的 subagent 派發。設定頁兩個獨立開關:
22
+
23
+ - **代理團隊模式**——打開後注入團隊規程(預設委派 + 分級驗證 + 共享任務板紀律),並自動啟用 DSH 的 Agent Teams:主模型可以拉常駐隊友(`spawn_teammate`)、往共享任務板派工(`team_task_*`)、和隊友互傳訊息。什麼時候組團隊有明確紀律:可並行的獨立子任務、量大且自包含、主上下文水位已高、需要角色分離;一次性的單點調查仍走 subagent。再關掉開關,團隊條款零殘留,也不會撤走正在執行的對話裡的團隊工具。
24
+ - **同步子代理模型白名單**——DSH 有張「允許 Agent 為子代理選擇模型」的授權白名單:池裡選了但沒授權的路線,點名派發會被拒(團隊模式下會標 ⚠)。打開這個開關,六個池的聯集整體寫入那張白名單——switchman 做唯一事實來源,不用兩邊重複設定。白名單按「新建對話」快照生效,同步只對之後新開的對話起作用。
25
+
26
+ 對話標頭有直觀回饋:⚡「自主團隊」徽章、◇ 目前對話實際模型;自動交接進行時出現「交接進行中 · 備份對話 / 壓縮上下文 / 喚醒續接」的即時提示。
27
+
28
+ **4. 語言偏好:問一次,記一輩子。** 回覆、程式碼註解、文件三種語言各一個下拉,作用域可選全域或按專案(`.switchman/lang.json`)。不設也行——首次用到時用你 DSH 介面的語言問一次,記住後每個對話自動遵守。
29
+
30
+ **5. 介面語言:外掛自己也說你的話。** 設定頁頂部的「介面」區裡一個「介面語言」下拉(設定鍵 `uiLocale`):自動(預設,跟隨 DeepSeek Harness 應用程式語言),或手動選任一內建介面語言——選項一律顯示語言原名、不作翻譯。它只切換本外掛自己的介面(徽章、首頁面板、設定頁),不動 DSH 應用程式語言:選中即即時預覽、無須重新啟動,儲存後記住、下次啟動自動還原,任何失敗都回退到應用程式語言;字典全部內建在外掛包裡,無須下載。
31
+
32
+ **6. 分級驗證:改完必查。** 超過 20 行的改動交 tester 驗證;超過 300 行、或動了核心 / 安全 / 資料一致性邏輯,再交一個 reviewer 獨立複審。複審模型錨定「寫出這份 diff 的代理」所用的模型來選,盡量避開;池裡實在避不開時,會在結論裡聲明 DOWNGRADED。你說一句「不要用團隊」,它立刻退回單幹。
33
+
34
+ **7. `/vision`:純文字模型也能處理圖。** 主力模型讀不了圖時,DSH 會在入口直接拒掉帶圖訊息。貼上圖、輸入 `/vision 這張圖錯在哪`,圖片會被交給多模態池的模型去讀,結論回到目前對話。輸入框上方會提前提示「目前模型不支援讀圖」;直接傳圖被拒時,自動改寫成 `/vision` 重送一次,不用手動重來;多模態池沒設時指令會拒絕並給出設定指引。
35
+
36
+ 只有一個模型也值得裝——水位控制和分級驗證與模型數量無關,單模型長對話同樣受益。
22
37
 
23
38
  ## 隨附技能
24
39
 
25
- - **db-query** — MySQL / Redis 唯讀核驗:跑 SQL 核對資料、查快取鍵 / TTL、跨庫一致性檢查,拒絕一切寫入。首次使用需初始化(見下)。
26
- - **git-commit-message** — 產生符合規範的 commit 文案,只出文字,從不替你 git。
27
- - **requirement-docs** — 需求分析 / PRD / 設計文件的統一規範,產出歸檔到 `docs/requirements-and-design/`。
40
+ - **db-query**——MySQL / Redis 唯讀核驗:跑 SQL 核對資料、查快取鍵 / TTL、跨庫一致性檢查,拒絕一切寫入。首次使用需初始化(見下)。
41
+ - **git-commit-message**——產生規範的 commit 文案,只出文字,從不替你 git。
42
+ - **requirement-docs**——需求分析 / PRD / 設計文件的統一規範,產出歸檔到 `docs/requirements-and-design/`。
28
43
 
29
44
  ## 快速上手
30
45
 
31
- 1. **安裝**——任意會話裡讓 agent 執行,或在 Web 外掛管理頁:
46
+ 1. **安裝**——任意對話裡讓 agent 執行,或在 Web 外掛管理頁:
32
47
 
33
48
  ```
34
49
  plugin_manager: install_bundle target=dsh-switchman
35
50
  ```
36
51
 
37
- 或從本地檢出安裝(link 方式;更新後需 `remove_bundle` + `install_bundle` 重裝):
52
+ 或從本機 checkout 安裝(link 方式;更新後需 `remove_bundle` + `install_bundle` 重裝):
38
53
 
39
54
  ```
40
55
  plugin_manager: install_bundle target=/path/to/dsh-switchman
41
56
  ```
42
57
 
43
- 2. **重啟 DSH**——完全結束應用程式再重新開啟(重新整理頁面不算),用戶端模組表才會載入本 bundle。
58
+ 或在終端機用 `dsh` 指令——按執行方式選對應的 profile:
44
59
 
45
- 3. **打開設定頁**——設定 → dsh-switchman。第一屏是語言偏好:三個下拉選單對應回覆 / 註解 / 文件,每項下方有「目前:…」狀態行;不設定也沒關係,首次使用會問一次並記住。
46
-
47
- ![設定頁與語言偏好](docs/assets/conf-demo1.png)
60
+ ```bash
61
+ dsh plugin --profile web add dsh-switchman # Web GUI
62
+ dsh plugin --profile desktop add dsh-switchman # 桌面應用
63
+ ```
48
64
 
49
- 4. **配六個池**——每張池卡片按供應商分組勾選候選模型;勾上「手動序」後卡片變成編號優先序列表,用 ↑ ↓ × 調順序。每條選中路線旁的思考強度下拉預設「跟隨泳道」,也可以釘死成該模型真實支援的檔位(Low / High / Max…)。摘要行即時反映進度:「已設定 6/6 池 · 排序 3 項 · 模式 建議」。
65
+ 2. **重新啟動 DSH**——完全退出應用程式再打開(重新整理頁面不算),用戶端模組表才能識別本 bundle。
50
66
 
51
- ![派發池設定](docs/assets/conf-demo2.png)
67
+ 3. **設定**——設定 → dsh-switchman,或首頁側邊欄的「Switchman 調度中心」。設定就一頁,長這樣,從上往下過一遍就設完了:
52
68
 
53
- 5. **能力排序與水位**——排序表序號即能力序(最強在前),可錨 S/A/B/C 檔;執行模式三態:`off` / 建議 / 強制(強制 = 池外模型直接拒絕)。下方水位區按 token 用量分級收緊行為:三檔閾值、單次讀取預算、硬檔行為(限量放行 / 攔截)、自動交接開關、子代理獨立上限。底部一行斜線命令:`/ctx-pause` 暫停干預 · `/ctx-resume` 恢復 · `/ctx-handover` 立即備份交接。
69
+ ![dsh-switchman 設定頁全貌:介面語言、語言偏好、六個派發池、能力排序與執行模式、團隊開關、上下文水位與指令](docs/assets/conf-interface-zh-TW.png)
54
70
 
55
- ![能力排序與上下文水位](docs/assets/conf-demo3.png)
71
+ - **介面**——外掛自己的介面語言。圖中下拉停在「繁體中文」——切換的即時預覽;出廠預設是「自動」(跟隨 DSH 應用程式語言)。選定語言當場整頁切換,儲存後記住,隨時切回「自動」。
72
+ - **語言**——代理產出物的語言。作用域圖中為「全域(本 profile)」(也可按專案,各自讀 `.switchman/lang.json`);回覆 / 程式碼註解 / 文件三個下拉圖中都定在繁體中文,每項顯示為「原生語名(標籤)」,如「繁體中文 (zh-TW)」,每項下方有「目前:…」狀態行。全不設也行,首次用到問一次、記住即用。
73
+ - **派發池**——六張卡片兩行三列:上排輕量、機械、主力,下排高難、多模態、複審。卡片按供應商分組勾候選模型;勾上「手動排序」變成編號優先清單,用 ↑ ↓ × 調順序;每條路線可釘思考強度(預設「跟隨泳道」)。頂部彙總行即時更新,圖中即「已設定 4/6 池 · 排名 2 項 · 模式 建議」。
74
+ - **能力排序 + 執行模式**——六池選中模型的聯集按能力排序、最強在前(圖中 glm-5.3 錨 S 級、glm-5.3-flash 錨 A 級),可調序、可刪減;執行模式建議 / 強制(強制 = 池外模型直接拒絕)。
75
+ - **代理團隊**——團隊模式與白名單同步兩個開關,預設全關;圖中為開啟狀態,開關下方有同步狀態行。
76
+ - **上下文水位**——三級閾值(圖中 50000 / 90000 / 130000)、單次讀取預算(1500)、hard 級行為(限流放行 / 攔截)、自動交接開關、子代理獨立上限,都在這區。底部一行指令:`/ctx-pause` 暫停干預 · `/ctx-resume` 恢復 · `/ctx-handover` 立即備份交接(它會把對話引導到閒置邊界再壓縮,結果可能要等幾分鐘)。
56
77
 
57
- 6. **驗證**——任意會話頂部預設 chip 旁出現 ⚡ 徽章;問模型「你的系統提示詞最後一節寫了什麼」,應提到 dsh-switchman 規程。
78
+ 4. **驗證**——對話標頭出現 ⚡「自主團隊」徽章(旁邊 ◇ 顯示目前對話模型);或者直接問模型「你系統提示詞最後一段的標題是什麼」,答案應提到 dsh-switchman 規程。
58
79
 
59
- **db-query 首次使用初始化**(腳本依賴裝在技能目錄內):
80
+ **db-query 首次使用初始化**(腳本相依裝在技能目錄內,不污染專案):
60
81
 
61
82
  ```bash
62
- bash <install-dir>/skills/db-query/scripts/setup.sh
83
+ bash <安裝目錄>/skills/db-query/scripts/setup.sh
63
84
  ```
64
85
 
65
86
  ## 運作原理
66
87
 
67
- - Host 端(`index.js` + `host/`)注入三個動態系統提示詞段、讀取預算與 enforce 雙閘、答案自動擷取、三個斜線命令。全部設定為 volatile 欄位,儲存後下一輪提示詞組裝即生效,無需重啟。
68
- - Client 端(`client.js`)渲染預設 chip 旁的 ⚡ 徽章與設定頁,走官方 settings-form 服務。
69
- - `cordis.patch.yml` 逐欄位復刻出廠預設外掛清單,僅擴充 persona suffix;Agent Teams 工具本體仍來自出廠的 `@deepseek-ai/dsh-experimental-agent-team-profile`。
88
+ - Host 半(`index.js` + `host/`)注入動態系統提示詞段(語言 / 泳道 / 水位 / 團隊)、讀取預算與 enforce 雙閘、四個斜線指令(ctx 三件套 + `/vision`)。設定儲存後下一輪提示詞組裝即生效,無須重新啟動。
89
+ - Client 半(`client.js`)渲染設定頁、對話標頭的 ⚡ 徽章與 ◇ 模型標識、交接進行中的動態提示;設定快照經 Host 路由家族讀寫。
90
+ - 首頁側邊欄的「Switchman 調度中心」入口,點一下即以中央面板開啟同一設定頁;原設定入口保留。
91
+ - `cordis.patch.yml` 完整保留出廠預設的外掛清單,只在 persona suffix 上做擴充;Agent Teams 工具本體來自出廠 bundle,開啟團隊模式時自動啟用。
70
92
 
71
- ## 維護注意
93
+ ## 維護須知
72
94
 
73
95
  - DSH 升級後若出廠預設外掛清單有變,從新的 `presets/*.patch.yml` 重新同步 `cordis.patch.yml`(保留 doctrine suffix),然後重裝。
74
- - 協定行(`[SWITCHMAN:LANG|POOLS|WATERMARK]`)刻意保持英文且位元組穩定——不要在地化。
75
- - `npm pack --dry-run` 應保持審計過的 34 個檔案 / ~111 kB 形態(`docs/` 截圖不會進包)。
96
+ - 協定行(`[SWITCHMAN:LANG|POOLS|WATERMARK|TEAMS]`)刻意保持英文且位元組穩定——不要在地化。
97
+ - `npm pack --dry-run` 應保持稽核過的 50 個檔案 / ~205 kB 形態(`docs/` 截圖不進包)。
76
98
 
77
99
  ## License
78
100
 
package/README.zh.md CHANGED
@@ -4,27 +4,42 @@
4
4
 
5
5
  > **switchman 家族**,同一作者、同一套调度理念:[opencode-switchman](https://github.com/mrzturn/opencode-switchman)(OpenCode 原版)· [zcode-switchman](https://github.com/mrzturn/zcode-switchman)(ZCode 移植)· **dsh-switchman**(本仓库,DeepSeek Harness 版)。
6
6
 
7
- ![dsh-switchman — 上下文水位驱动扳道岔,把任务丢进对的泳道](docs/assets/hero.svg)
7
+ ![dsh-switchman — 上下文水位驱动扳道岔,把任务丢进对的车道](docs/assets/hero.svg)
8
8
 
9
9
  > 上下文装上水表,任务自己找车道。
10
10
 
11
- 一个 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH)插件。装上之后,主模型从「什么都自己干」变成调度员:量水位、选泳道、派任务、盯验收。它做四件事:
11
+ ## 为什么需要它
12
12
 
13
- **1. 上下文水位控制。** 每轮实时计量会话 token。soft 档(默认 50k)建议委派,hard 档(90k)收紧每轮读取预算并引导收尾,force 档(130k)自动备份会话并移交压缩。长会话跑一整天,上下文也不会被自己的历史撑爆。派出去的每个子智能体带独立硬顶,超了就写完 HANDOFF 摘要退场。
13
+ 用 DSH 干活久了有两件烦心事:一是会话越聊越重,上下文被历史撑到几十万 token,模型开始忘事、变慢、变贵,手动 /compact 又丢细节;二是主力模型什么都自己干,查个文件、跑个测试、对个数据都是它在啃,大半活其实该交给便宜模型。
14
14
 
15
- **2. 六泳道派发。** economy / mechanical / main / hard / vision / review 六条认知泳道:设置页里勾选候选模型、按最强优先排序(可锚 S/A/B/C 档),每条路线还能单独钉死思考强度——下拉档位直接来自该模型真实支持的列表,不是通用的三档。`[SWITCHMAN:POOLS]` 推荐表随提示词下发给主模型照着派活;`enforce` 模式下池外模型直接拒绝。
15
+ dsh-switchman 是一个 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH)插件。装上之后,主模型从「亲自干活」变成调度员:量水位、选车道、派任务、盯验收。它不是新模型,是一套挂在 DSH 上的调度规程加一个配置界面,一共做七件事:
16
16
 
17
- **3. 语言偏好。** 回复、代码注释、文档三种语言各一个下拉。未设置时首次使用问一次、永久记住,之后每个会话自动遵守。
17
+ **1. 上下文水位:长会话不撑爆。** 每轮实时统计会话 token,三条水位线逐级加码:50k(soft,可调)提醒「该委派了」;90k(hard)收紧单次读取预算、引导收尾;130k(force)自动交接——fork 一份会话留底、压缩上下文、唤醒续跑,任务不断线。交接那一刻还在跑的后台子智能体也不会丢:id、任务、报告路径都写进交接文档,续跑的会话知道去哪收报告,不会重复派活。每个子智能体自带独立硬顶,到顶写完 HANDOFF 摘要退场。自动干预不合手时可临时接管:`/ctx-pause` 停掉全部水位动作(测量照跑、横幅转成 paused,只是不动手),`/ctx-resume` 随时恢复——重启 DSH 后干预也会自动回来,是临时放手,不是永久关闭;`/ctx-handover` 不等水位到顶,主动发起同一次交接:fork 备份、压缩上下文、唤醒续跑(会话先被引导到空闲边界,结果可能要等几分钟)。
18
18
 
19
- **4. 默认委派规程。** 替换 DSH 出厂的保守团队策略(「仅当用户明确要求才建团队」):小事亲做(读 <200 行、改 <50 行),大活默认委派;改完必验——超过 20 行交 tester,超过 300 行或动了核心逻辑交 reviewer。你说「不要用团队」,它立刻让位。
19
+ **2. 六个派发池:什么活配什么模型。** 轻量池(批量小活)、机械池(模板化改写)、主力池(日常编码)、高难池(高难推理与大规模重构)、多模态池(看图)、复审池(独立验证)。设置页里勾候选、排优先级、标 S/A/B/C 档,还能给每条路线单独钉思考强度——档位下拉来自该模型真实支持的级别,不是通用三档。主模型每轮提示词里都带着一张 `[SWITCHMAN:POOLS]` 推荐表,照表派活。执行模式三态:关闭 / 建议 / 强制(强制 = 池外模型直接拒绝)。
20
20
 
21
- 只有一个模型?也值得装——水位控制和默认委派与多模型无关,单模型长会话同样受益。
21
+ **3. Agent Teams 模式:从单干到带团队。** 默认关闭,装完就是轻量的 subagent 派发。设置页两个独立开关:
22
+
23
+ - **智能体团队模式**——打开后注入团队规程(默认委派 + 分级验证 + 共享任务板纪律),并自动启用 DSH 的 Agent Teams:主模型可以拉常驻队友(`spawn_teammate`)、往共享任务板派活(`team_task_*`)、和队友互发消息。什么时候建团队有明确纪律:可并行的独立子任务、量大且自包含、主上下文水位已高、需要角色分离;一次性的单点调查仍走 subagent。再关掉开关,团队条款零残留,也不会撤走正在运行的会话里的团队工具。
24
+ - **同步子智能体模型白名单**——DSH 有张「允许 Agent 为子智能体选择模型」的授权白名单:池里选了但没授权的路线,点名派发会被拒(团队模式下会标 ⚠)。打开这个开关,六个池的并集整体写入那张白名单——switchman 做唯一事实源,不用两边重复配置。白名单按「新建会话」快照生效,同步只对之后新开的会话起作用。
25
+
26
+ 会话头部有直观反馈:⚡「自主团队」徽标、◇ 当前会话实际模型;自动交接进行时出现「交接进行中 · 备份会话 / 压缩上下文 / 唤醒续接」的实时提示。
27
+
28
+ **4. 语言偏好:问一次,记一辈子。** 回复、代码注释、文档三种语言各一个下拉,作用域可选全局或按项目(`.switchman/lang.json`)。不设也行——首次用到时用你 DSH 界面的语言问一次,记住后每个会话自动遵守。
29
+
30
+ **5. 界面语言:插件自己也说你的话。** 设置页顶部的「界面」区里一个「界面语言」下拉(设置键 `uiLocale`):自动(默认,跟随 DeepSeek Harness 应用语言),或手动选任一内置界面语言——选项一律显示语言原名、不作翻译。它只切换本插件自己的界面(徽标、首页面板、设置页),不动 DSH 应用语言:选中即实时预览、无需重启,保存后记住、下次启动自动恢复,任何失败都回退到应用语言;词典全部内联在插件包里,无需下载。
31
+
32
+ **6. 分级验证:改完必查。** 超过 20 行的改动交 tester 验证;超过 300 行、或动了核心 / 安全 / 数据一致性逻辑,再交一个 reviewer 独立复审。复审模型锚定「写出这份 diff 的智能体」所用的模型来选,尽量避开;池里实在避不开时,会在结论里声明 DOWNGRADED。你说一句「不要用团队」,它立刻退回单干。
33
+
34
+ **7. `/vision`:纯文本模型也能处理图。** 主力模型读不了图时,DSH 会在入口直接拒掉带图消息。贴上图、输入 `/vision 这张图错在哪`,图片会被交给多模态池的模型去读,结论回到当前会话。输入框上方会提前提示「当前模型不支持读图」;直接发图被拒时,自动改写成 `/vision` 重发一次,不用手动重来;多模态池没配时命令会拒绝并给出配置指引。
35
+
36
+ 只有一个模型也值得装——水位控制和分级验证与模型数量无关,单模型长会话同样受益。
22
37
 
23
38
  ## 捆绑技能
24
39
 
25
- - **db-query** — MySQL / Redis 只读核验:跑 SQL 对数、查缓存键 / TTL、跨库一致性检查,拒绝一切写入。首次使用需初始化(见下)。
26
- - **git-commit-message** — 生成规范的 commit 文案,只出文本,从不替你 git。
27
- - **requirement-docs** — 需求分析 / PRD / 设计文档的统一规范,产出归档到 `docs/requirements-and-design/`。
40
+ - **db-query**——MySQL / Redis 只读核验:跑 SQL 对数、查缓存键 / TTL、跨库一致性检查,拒绝一切写入。首次使用需初始化(见下)。
41
+ - **git-commit-message**——生成规范的 commit 文案,只出文本,从不替你 git。
42
+ - **requirement-docs**——需求分析 / PRD / 设计文档的统一规范,产出归档到 `docs/requirements-and-design/`。
28
43
 
29
44
  ## 快速上手
30
45
 
@@ -40,21 +55,27 @@
40
55
  plugin_manager: install_bundle target=/path/to/dsh-switchman
41
56
  ```
42
57
 
43
- 2. **重启 DSH**——完全退出应用再打开(刷新页面不算),客户端模块表才能识别本 bundle。
44
-
45
- 3. **打开设置页**——设置 → dsh-switchman。第一屏是语言偏好:三个下拉对应回复 / 注释 / 文档,每项下方有「当前:…」状态行;不设置也没关系,首次使用会问一次并记住。
58
+ 或在终端用 `dsh` 命令——按运行方式选对应的 profile:
46
59
 
47
- ![设置页与语言偏好](docs/assets/conf-demo1.png)
60
+ ```bash
61
+ dsh plugin --profile web add dsh-switchman # Web GUI
62
+ dsh plugin --profile desktop add dsh-switchman # 桌面应用
63
+ ```
48
64
 
49
- 4. **配六个池**——每张池卡片按供应商分组勾选候选模型;勾上「手动序」后卡片变成编号优先序列表,用 ↑ ↓ × 调顺序。每条选中路线旁的思考强度下拉默认「跟随泳道」,也可以钉死成该模型真实支持的档位(Low / High / Max…)。顶部汇总行实时反映进度:「已配置 6/6 池 · 排名 3 项 · 模式 建议」。
65
+ 2. **重启 DSH**——完全退出应用再打开(刷新页面不算),客户端模块表才能识别本 bundle。
50
66
 
51
- ![派发池配置](docs/assets/conf-demo2.png)
67
+ 3. **配置**——设置 → dsh-switchman,或首页侧边栏的「Switchman 调度中心」。配置就一页,长这样,从上往下过一遍就配完了:
52
68
 
53
- 5. **能力排序与水位**——排序表序号即能力序(最强在前),可锚 S/A/B/C 档;执行模式三态:`off` / 建议 / 强制(强制 = 池外模型直接拒绝)。下方水位区按 token 用量分级收紧行为:三档阈值、单次读取预算、硬档行为(限流放行 / 拦截)、自动交接开关、子智能体独立上限。底部一行斜杠命令:`/ctx-pause` 暂停干预 · `/ctx-resume` 恢复 · `/ctx-handover` 立即备份交接。
69
+ ![dsh-switchman 配置页全貌:界面语言、语言偏好、六个派发池、能力排序与执行模式、团队开关、上下文水位与命令](docs/assets/conf-interface.png)
54
70
 
55
- ![能力排序与上下文水位](docs/assets/conf-demo3.png)
71
+ - **界面**——插件自己的界面语言。图中「自动」即跟随 DSH 应用语言;选具体语言则当场整页切换,保存后记住,随时切回「自动」。
72
+ - **语言**——智能体产出物的语言。作用域图中为「全局(本 profile)」(也可按项目,各自读 `.switchman/lang.json`);回复 / 代码注释 / 文档三个下拉图中都定在简体中文,每项下方有「当前:…」状态行。全不设也行,首次用到问一次、记住即用。
73
+ - **派发池**——六张卡片两行三列:上排轻量、机械、主力,下排高难、多模态、复审。卡片按供应商分组勾候选模型;勾上「手动序」变成编号优先列表,用 ↑ ↓ × 调顺序;每条路线可钉思考强度(默认「跟随泳道」)。顶部汇总行实时更新,图中即「已配置 4/6 池 · 排名 2 项 · 模式 建议」。
74
+ - **能力排序 + 执行模式**——六池选中模型的并集按能力排序、最强在前(图中 glm-5.3 锚 S 档、glm-5.3-flash 锚 A 档),可调序、可删减;执行模式建议 / 强制(强制 = 池外模型直接拒绝)。
75
+ - **智能体团队**——团队模式与白名单同步两个开关,默认全关;图中为开启状态,开关下方有同步状态行。
76
+ - **上下文水位**——三档阈值(图中 50000 / 90000 / 130000)、单次读取预算(1500)、硬档行为(限流放行 / 拦截)、自动交接开关、子智能体独立上限,都在这区。底部一行命令:`/ctx-pause` 暂停干预 · `/ctx-resume` 恢复 · `/ctx-handover` 立即备份交接(它会把会话引导到空闲边界再压缩,结果可能要等几分钟)。
56
77
 
57
- 6. **验证**——任意会话头部预设 chip 旁出现 ⚡ 徽标;问模型「你系统提示词最后一段标题是什么」,应提到 dsh-switchman 规程。
78
+ 4. **验证**——会话头部出现 ⚡「自主团队」徽标(旁边 ◇ 显示当前会话模型);或者直接问模型「你系统提示词最后一段标题是什么」,答案应提到 dsh-switchman 规程。
58
79
 
59
80
  **db-query 首次使用初始化**(脚本依赖装在技能目录内,不污染项目):
60
81
 
@@ -64,15 +85,16 @@ bash <安装目录>/skills/db-query/scripts/setup.sh
64
85
 
65
86
  ## 工作原理
66
87
 
67
- - Host 半(`index.js` + `host/`)注入三个动态系统提示词段、读预算与 enforce 双闸、答案自动捕获、三个斜杠命令。全部设置为 volatile 字段,保存后下一轮提示词装配即生效,无需重启。
68
- - Client 半(`client.js`)渲染预设 chip 旁的 ⚡ 徽标与设置页,走官方 settings-form 服务。
69
- - `cordis.patch.yml` 逐字段复刻出厂预设插件列表,仅扩展 persona suffix;Agent Teams 工具本体仍来自出厂 `@deepseek-ai/dsh-experimental-agent-team-profile`。
88
+ - Host 半(`index.js` + `host/`)注入动态系统提示词段(语言 / 泳道 / 水位 / 团队)、读预算与 enforce 双闸、四个斜杠命令(ctx 三件套 + `/vision`)。设置保存后下一轮提示词装配即生效,无需重启。
89
+ - Client 半(`client.js`)渲染设置页、会话头部的 ⚡ 徽标与 ◇ 模型标识、交接进行中的动态提示;配置快照经 Host 路由家族读写。
90
+ - 首页侧边栏的「Switchman 调度中心」入口,单击即以中央面板打开同一配置页;原设置入口保留。
91
+ - `cordis.patch.yml` 完整保留出厂预设的插件列表,只在 persona suffix 上做扩展;Agent Teams 工具本体来自出厂 bundle,开启团队模式时自动启用。
70
92
 
71
93
  ## 维护注意
72
94
 
73
95
  - DSH 升级后若出厂预设插件列表有变,从新的 `presets/*.patch.yml` 重新同步 `cordis.patch.yml`(保留 doctrine suffix),然后重装。
74
- - 协议行(`[SWITCHMAN:LANG|POOLS|WATERMARK]`)刻意保持英文且字节稳定——不要本地化。
75
- - `npm pack --dry-run` 应保持审计过的 43 文件 / ~138 kB 形态(`docs/` 截图不进包)。
96
+ - 协议行(`[SWITCHMAN:LANG|POOLS|WATERMARK|TEAMS]`)刻意保持英文且字节稳定——不要本地化。
97
+ - `npm pack --dry-run` 应保持审计过的 50 文件 / ~205 kB 形态(`docs/` 截图不进包)。
76
98
 
77
99
  ## License
78
100