dsh-switchman 1.11.4 → 1.11.6
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.de.md +7 -5
- package/README.es.md +7 -5
- package/README.fr.md +7 -5
- package/README.it.md +7 -5
- package/README.ja.md +7 -5
- package/README.ko.md +7 -5
- package/README.md +10 -8
- package/README.pt.md +7 -5
- package/README.ru.md +7 -5
- package/README.zh-TW.md +7 -5
- package/README.zh.md +7 -5
- package/client.js +205 -63
- package/cordis.patch.yml +17 -1
- package/host/config.js +24 -8
- package/host/context-trim/index.js +300 -27
- package/host/context-trim/summarizer.js +46 -35
- package/host/context-trim/surface.js +213 -6
- package/host/context-trim/trigger.js +29 -12
- package/host/context-trim/view.js +17 -2
- package/host/context-watch.js +5 -1
- package/host/ptc-guard.js +6 -0
- package/host/routes.js +13 -14
- package/package.json +1 -1
package/README.zh-TW.md
CHANGED
|
@@ -33,7 +33,7 @@ dsh-switchman 是一個 [DeepSeek Harness](https://github.com/deepseek-ai/deepse
|
|
|
33
33
|
|
|
34
34
|
**7. `/vision`:純文字模型也能處理圖。** 主力模型讀不了圖時,DSH 會在入口直接拒掉帶圖訊息。貼上圖、輸入 `/vision 這張圖錯在哪`,圖片會被交給多模態池的模型去讀,結論回到目前對話。輸入框上方會提前提示「目前模型不支援讀圖」;直接傳圖被拒時,自動改寫成 `/vision` 重送一次,不用手動重來;多模態池沒設時指令會拒絕並給出設定指引。
|
|
35
35
|
|
|
36
|
-
**8. 意圖識別自動選模型:訊息進來,模型自動落位。** 設定頁新增【意圖識別】分組:主開關(預設關閉,開啟需設定分類器並至少一個候選)、分類器小模型路由(provider + model + 可選 effort,TypeSafe Jev 類決策模型與通用對話模型都支援,輸出寬容解析)、分類器類型三選(auto / decision / chat)、獨立候選模型清單(每個候選 provider + model + 可選 effort + 一句能力描述)、快取視窗秒數(預設 300,對齊廠商 prompt cache 約 5 分鐘)、切換信心閾值(預設 80)、分類逾時(預設 60000ms)、歷史訊息則數(預設 6)與字元預算(預設 2400
|
|
36
|
+
**8. 意圖識別自動選模型:訊息進來,模型自動落位。** 設定頁新增【意圖識別】分組:主開關(預設關閉,開啟需設定分類器並至少一個候選)、分類器小模型路由(provider + model + 可選 effort,TypeSafe Jev 類決策模型與通用對話模型都支援,輸出寬容解析)、分類器類型三選(auto / decision / chat)、獨立候選模型清單(每個候選 provider + model + 可選 effort + 一句能力描述)、快取視窗秒數(預設 300,對齊廠商 prompt cache 約 5 分鐘)、切換信心閾值(預設 80)、分類逾時(預設 60000ms)、歷史訊息則數(預設 6)與字元預算(預設 2400)、可選備援模型(可獨立固定可選 effort;未固定時使用所選備援模型的預設 effort,與分類器 effort 分開)。模型選擇器出現「Auto · Switchman」分組下的「Auto」入口(用戶端渲染為在地化的「自動(意圖識別)」);選中後每條使用者訊息先由分類器判定最合適的候選,同一輪鎖定決策:信心不足或仍在快取視窗內時優先沿用目前模型(快取續用),信心足夠高或目前模型不在候選裡才切換;切換在呼叫層靜默完成,不往對話裡插「模型已切換」。輸入框上方有狀態 chip(自動路由時顯示目前路由模型與上次決策信心),候選與閾值隨時回設定頁查看。
|
|
37
37
|
|
|
38
38
|
只有一個模型也值得裝——水位控制和分級驗證與模型數量無關,單模型長對話同樣受益。
|
|
39
39
|
|
|
@@ -102,7 +102,7 @@ bash <安裝目錄>/skills/db-query/scripts/setup.sh
|
|
|
102
102
|
|
|
103
103
|
**意圖識別**(預設不可用,需設定分類器 + 至少一個候選 + 打開主開關):`intentEnabled` = 關(關閉時 Auto 入口隱藏,已選 Auto 的對話走備援鏈);分類器路由未設定;分類器類型 `chat`;候選清單空(預置分類需填模型才參與路由);快取視窗 `300` 秒 / 切換信心閾值 `80` / 分類逾時 `60000` ms;歷史 `6` 則 / `2400` 字元;`intentContextWindow` = `200000`。
|
|
104
104
|
|
|
105
|
-
**上下文裁剪**:`trimEnabled` = 開;`trimMode` = `auto`(全自動);增長閘門 `22500` token + 增量 `25000` token;壓力 `65%` / 緊急 `95%`;保護尾部 `10` 則;折疊節奏上限每小時 `30` 次;side model 未設定(繼承對話模型)——詳見下文「自動上下文裁剪」一節。
|
|
105
|
+
**上下文裁剪**:`trimEnabled` = 開;`trimMode` = `auto`(全自動);增長閘門 `22500` token + 增量 `25000` token;壓力 `65%` / 緊急 `95%`;advisory 提醒 `65%` / `95%`;保護尾部 `10` 則;折疊節奏上限每小時 `30` 次;side model 未設定(繼承對話模型)——詳見下文「自動上下文裁剪」一節。
|
|
106
106
|
|
|
107
107
|
**開箱要點**:① 意圖識別開箱不可用是有意設計,三步開啟(分類器、候選、開關);② Auto 有效視窗開箱即為 200000——護欄保證 0.8×視窗 ≥ force 級(150000),核心壓縮線(160000)永遠在平滑交接線(150000)之後;③ 開箱最有感的是水位三件套:80k 提醒委派 / 95k 收斂讀取 / 150k 自動交接(寫文件+壓縮),無須任何設定。
|
|
108
108
|
|
|
@@ -113,7 +113,7 @@ bash <安裝目錄>/skills/db-query/scripts/setup.sh
|
|
|
113
113
|
自動化層級(`trimMode`):
|
|
114
114
|
|
|
115
115
|
- **`off`**——只測量:用量與快取命中取樣照常執行;無橫幅、無折疊。
|
|
116
|
-
- **`advisory`**——對話模型自己折疊:向其暴露 `ctx_trim_fold` 與 `ctx_trim_status`
|
|
116
|
+
- **`advisory`**——對話模型自己折疊:向其暴露 `ctx_trim_fold` 與 `ctx_trim_status` 工具和協定頭。對話壓力達到有效視窗的 `trimAdvisoryPercent` 時,引擎將一次性固定摺疊提醒作為 `user/message` 後綴追加到即時對話 surface 尾端(不修改本次派發的 system 頭)——升級到 critical 立即重發,壓力回落到線下後清除。
|
|
117
117
|
- **`auto`**(預設)——以上全部,外加閒置邊界上的自動折疊,分三級:增長閘門(自上次折疊後的低谷起算的增長 > `trimGrowthTokens`——該錨點保證高位折疊後閘門依然有效——且連續可壓縮增量 ≥ `trimIncrementTokens`)、壓力級(上下文視窗的 `trimPressurePercent`)、緊急級(`trimEmergencyPercent`——帶獨立冷卻的機械折疊)。
|
|
118
118
|
|
|
119
119
|
所有鍵位於 設定 → dsh-switchman;預設值出自 `host/config.js`:
|
|
@@ -126,11 +126,13 @@ bash <安裝目錄>/skills/db-query/scripts/setup.sh
|
|
|
126
126
|
| `trimIncrementTokens` | `25000` | 閘門搭檔:連續可壓縮增量也須達到該規模。 |
|
|
127
127
|
| `trimPressurePercent` | `65` | 壓力級:view 用量達到上下文視窗該百分比即折疊。 |
|
|
128
128
|
| `trimEmergencyPercent` | `95` | 緊急級:到該百分比強制機械折疊(無 side model 呼叫)。 |
|
|
129
|
+
| `trimAdvisoryPercent` | `65` | advisory 提醒線:壓力達到有效視窗的該百分比時,引擎提醒模型立即用 `ctx_trim_fold` 摺疊(僅 advisory 模式)。 |
|
|
130
|
+
| `trimAdvisoryCriticalPercent` | `95` | critical 提醒線:到線立即重發提醒,不受 10 分鐘同檔節流限制。 |
|
|
129
131
|
| `trimWindowTokens` | `0` | 視窗上限:壓力與緊急檔按 min(模型視窗, 上限) 計算。`0` = 跟隨 `wmForceTokens`。 |
|
|
130
132
|
| `trimProtectedTail` | `10` | 最後 N 則訊息永不折疊。 |
|
|
131
133
|
| `trimMaxFoldsPerHour` | `30` | 每滾動小時 side model 折疊的節奏上限(緊急級豁免)。 |
|
|
132
|
-
| `trimSideModel` | 未設定 | 寫摘要的 side model 路由。留空 =
|
|
133
|
-
| `trimFoldFallbackModel` | 未設定 | 摘要 side model 失敗時摺疊改用的重試路由;壓力檔仍失敗則退回機械摺疊。留空 =
|
|
134
|
+
| `trimSideModel` | 未設定 | 寫摘要的 side model 路由。留空 = 跟隨對話目前 provider/model,不繼承呼叫的 effort;ladder distillation 也使用此路由。摘要 effort 可獨立手動固定;未固定時依模型 metadata 建議最低啟用的 reasoning 層級,僅有開/關選項時選 off。不支援 reasoning 或 metadata 不可用時不傳 effort,沿用模型/配接器預設行為。 |
|
|
135
|
+
| `trimFoldFallbackModel` | 未設定 | 摘要 side model 失敗時摺疊改用的重試路由;壓力檔仍失敗則退回機械摺疊。留空 = 無備援。手動選擇的折疊備援模型可獨立固定 effort;未設定時依與摘要模型相同的模型 metadata 規則建議,metadata 缺失則使用該模型預設值。盡量選擇冷卻、風控與並行餘量充足的路由。 |
|
|
134
136
|
| `trimStateDir` | 未設定 | 折疊狀態目錄覆蓋。留空 = `<dshHome>/.dsh-switchman/state/trim/`。 |
|
|
135
137
|
| `surfaceFold` | `true` | 把已提交的 fold 送上對話表面(shadow-price 計量事件 + `surfaceOp` replace 事件對)。關閉則維持僅拼接的 view。 |
|
|
136
138
|
|
package/README.zh.md
CHANGED
|
@@ -33,7 +33,7 @@ dsh-switchman 是一个 [DeepSeek Harness](https://github.com/deepseek-ai/deepse
|
|
|
33
33
|
|
|
34
34
|
**7. `/vision`:纯文本模型也能处理图。** 主力模型读不了图时,DSH 会在入口直接拒掉带图消息。贴上图、输入 `/vision 这张图错在哪`,图片会被交给多模态池的模型去读,结论回到当前会话。输入框上方会提前提示「当前模型不支持读图」;直接发图被拒时,自动改写成 `/vision` 重发一次,不用手动重来;多模态池没配时命令会拒绝并给出配置指引。
|
|
35
35
|
|
|
36
|
-
**8. 意图识别自动选模型:消息进来,模型自动落位。** 设置页新增【意图识别】分组:主开关(默认关闭,开启需配置分类器并至少一个候选)、分类器小模型路由(provider + model + 可选 effort,TypeSafe Jev 类决策模型与通用对话模型都支持,输出宽容解析)、分类器类型三选(auto / decision / chat)、独立候选模型列表(每个候选 provider + model + 可选 effort + 一句能力描述)、缓存窗口秒数(默认 300,对齐厂商 prompt cache 约 5 分钟)、切换置信度阈值(默认 80)、分类超时(默认 60000ms)、历史消息条数(默认 6)与字符预算(默认 2400
|
|
36
|
+
**8. 意图识别自动选模型:消息进来,模型自动落位。** 设置页新增【意图识别】分组:主开关(默认关闭,开启需配置分类器并至少一个候选)、分类器小模型路由(provider + model + 可选 effort,TypeSafe Jev 类决策模型与通用对话模型都支持,输出宽容解析)、分类器类型三选(auto / decision / chat)、独立候选模型列表(每个候选 provider + model + 可选 effort + 一句能力描述)、缓存窗口秒数(默认 300,对齐厂商 prompt cache 约 5 分钟)、切换置信度阈值(默认 80)、分类超时(默认 60000ms)、历史消息条数(默认 6)与字符预算(默认 2400)、可选兜底模型(可单独固定可选 effort;未固定时使用所选兜底模型的默认 effort,与分类器 effort 独立)。模型选择器出现「Auto · Switchman」分组下的「Auto」入口(客户端渲染为本地化的「自动(意图识别)」);选中后每条用户消息先由分类器判定最合适的候选,同一轮锁定决策:置信度不足或仍在缓存窗口内时优先沿用当前模型(缓存续用),置信度足够高或当前模型不在候选里才切换;切换在调用层静默完成,不往会话里插「模型已切换」。输入框上方有状态 chip(自动路由时显示当前路由模型与上次决策置信度),候选与阈值随时回设置页查看。
|
|
37
37
|
|
|
38
38
|
只有一个模型也值得装——水位控制和分级验证与模型数量无关,单模型长会话同样受益。
|
|
39
39
|
|
|
@@ -102,7 +102,7 @@ bash <安装目录>/skills/db-query/scripts/setup.sh
|
|
|
102
102
|
|
|
103
103
|
**意图识别**(默认不可用,需配置分类器 + 至少一个候选 + 打开主开关):`intentEnabled` = 关(关闭时 Auto 入口隐藏,已选 Auto 的会话走兜底链);分类器路由未设置;分类器类型 `chat`;候选列表空(预置分类需填模型才参与路由);缓存窗口 `300` 秒 / 切换置信度 `80` / 分类超时 `60000` ms;历史 `6` 条 / `2400` 字符;`intentContextWindow` = `200000`。
|
|
104
104
|
|
|
105
|
-
**上下文裁剪**:`trimEnabled` = 开;`trimMode` = `auto`(全自动);增长闸门 `22500` token + 增量 `25000` token;压力 `65%` / 紧急 `95%`;保护尾部 `10` 条;折叠节奏上限每小时 `30` 次;side model 未设置(继承会话模型)——详见下文「自动上下文裁剪」一节。
|
|
105
|
+
**上下文裁剪**:`trimEnabled` = 开;`trimMode` = `auto`(全自动);增长闸门 `22500` token + 增量 `25000` token;压力 `65%` / 紧急 `95%`;advisory 提醒 `65%` / `95%`;保护尾部 `10` 条;折叠节奏上限每小时 `30` 次;side model 未设置(继承会话模型)——详见下文「自动上下文裁剪」一节。
|
|
106
106
|
|
|
107
107
|
**开箱要点**:① 意图识别开箱不可用是有意设计,三步开启(分类器、候选、开关);② Auto 有效窗口开箱即为 200000——护栏保证 0.8×窗口 ≥ force 档(150000),核心压缩线(160000)永远在平滑交接线(150000)之后;③ 开箱最有感的是水位三件套:80k 提醒委派 / 95k 收敛读取 / 150k 自动交接(写文档+压缩),无需任何设置。
|
|
108
108
|
|
|
@@ -113,7 +113,7 @@ bash <安装目录>/skills/db-query/scripts/setup.sh
|
|
|
113
113
|
自动化层级(`trimMode`):
|
|
114
114
|
|
|
115
115
|
- **`off`**——只测量:用量与缓存命中采样照常运行;无横幅、无折叠。
|
|
116
|
-
- **`advisory`**——会话模型自己折叠:向其暴露 `ctx_trim_fold` 与 `ctx_trim_status`
|
|
116
|
+
- **`advisory`**——会话模型自己折叠:向其暴露 `ctx_trim_fold` 与 `ctx_trim_status` 工具和协议头。会话压力达到有效窗口的 `trimAdvisoryPercent` 时,引擎将一次性固定折叠提醒作为 `user/message` 后缀追加到实时会话 surface 尾部(不修改本次派发的 system 头)——升级到 critical 立即重发,压力回落到线下后清除。
|
|
117
117
|
- **`auto`**(默认)——以上全部,外加空闲边界上的自动折叠,分三档:增长闸门(自上次折叠后的低谷起算的增长 > `trimGrowthTokens`——该锚点保证高位折叠后闸门依然有效——且连续可压缩增量 ≥ `trimIncrementTokens`)、压力档(上下文窗口的 `trimPressurePercent`)、紧急档(`trimEmergencyPercent`——带独立冷却的机械折叠)。
|
|
118
118
|
|
|
119
119
|
所有键位于 设置 → dsh-switchman;默认值出自 `host/config.js`:
|
|
@@ -126,11 +126,13 @@ bash <安装目录>/skills/db-query/scripts/setup.sh
|
|
|
126
126
|
| `trimIncrementTokens` | `25000` | 闸门搭档:连续可压缩增量也须达到该规模。 |
|
|
127
127
|
| `trimPressurePercent` | `65` | 压力档:view 用量达到上下文窗口该百分比即折叠。 |
|
|
128
128
|
| `trimEmergencyPercent` | `95` | 紧急档:到该百分比强制机械折叠(无 side model 调用)。 |
|
|
129
|
+
| `trimAdvisoryPercent` | `65` | advisory 提醒线:压力达到有效窗口的该百分比时,引擎提醒模型立即用 `ctx_trim_fold` 折叠(仅 advisory 模式)。 |
|
|
130
|
+
| `trimAdvisoryCriticalPercent` | `95` | critical 提醒线:到线立即重发提醒,不受 10 分钟同档节流限制。 |
|
|
129
131
|
| `trimWindowTokens` | `0` | 窗口上限:压力与紧急档按 min(模型窗口, 上限) 计算。`0` = 跟随 `wmForceTokens`。 |
|
|
130
132
|
| `trimProtectedTail` | `10` | 最后 N 条消息永不折叠。 |
|
|
131
133
|
| `trimMaxFoldsPerHour` | `30` | 每滚动小时 side model 折叠的节奏上限(紧急档豁免)。 |
|
|
132
|
-
| `trimSideModel` | 未设置 | 写摘要的 side model 路由。留空 =
|
|
133
|
-
| `trimFoldFallbackModel` | 未设置 | 摘要 side model 失败时折叠改用的重试路由;压力档仍失败则退回机械折叠。留空 =
|
|
134
|
+
| `trimSideModel` | 未设置 | 写摘要的 side model 路由。留空 = 跟随会话当前 provider/model,不继承调用的 effort;ladder distillation 也使用此路由。摘要 effort 可单独手动固定;未固定时按模型元数据推荐最低启用的 reasoning 档,只有开/关选项时选 off。不支持 reasoning 或元数据不可用时不发送 effort,保留模型/适配器默认行为。 |
|
|
135
|
+
| `trimFoldFallbackModel` | 未设置 | 摘要 side model 失败时折叠改用的重试路由;压力档仍失败则退回机械折叠。留空 = 无兜底。手动选择的折叠兜底模型有独立 effort 固定值;未设置时按摘要模型相同的模型元数据规则推荐,元数据缺失则使用该模型默认值。尽量选择冷却、风控与并发余量充足的路由。 |
|
|
134
136
|
| `trimStateDir` | 未设置 | 折叠状态目录覆盖。留空 = `<dshHome>/.dsh-switchman/state/trim/`。 |
|
|
135
137
|
| `surfaceFold` | `true` | 把已提交的 fold 送上会话表面(shadow-price 计量事件 + `surfaceOp` replace 事件对)。关闭则保持仅拼接的 view。 |
|
|
136
138
|
|