dsh-profile-switch:命名模型配置交互式切換插件

前言

在 DSH 中,切換模型配置通常涉及手動調整默認模型和子代理設置。dsh-profile-switch 提供了一種機制,通過命名配置管理默認模型、思考級別和子代理覆蓋,這些配置綁定到工作區樹。它統一了 TUI 和 Web 界面的行爲,並在無頭模式下快速失敗。

插件介紹

dsh-profile-switch 是一個 DSH 插件,通過主機的 ask-user 流程支持交互式切換命名模型配置。它是一個單一實現,適用於 TUI 和 Web 界面,並設計爲在無頭模式下快速失敗並提供指引。該插件允許保存默認模型(含思考級別)和每個子代理的模型/思考覆蓋,將工作區上下文切換(如 work ↔ personal)變爲一個命令,而非多次 /model 調整。

安裝與啓用

安裝前請確保環境滿足以下要求:
* dsh 版本 >= 0.2.0-rc.2
* Node.js 版本 >= 22.19.0

使用以下命令安裝插件:

dsh plugin --profile <your-profile> add @aiwayds/dsh-profile-switch

核心功能

  • 交互式切換:通過 /profile-switch 和 /profile-cfg 命令在命名配置間切換。
  • 多界面支持:一套邏輯同時適配 TUI 和 Web 界面。
  • 無設置設計:無需配置頁面,所有數據通過命令行嚮導管理。
  • 子代理覆蓋:支持爲特定子代理設置獨立的模型和思考級別。
  • 無頭模式容錯:在無頭模式下,命令會快速失敗並給出直接編輯 JSON 文件的指引。

命令與用法

插件通過兩個核心命令管理配置:

/profile-switch

此命令用於將當前工作區樹綁定到一個命名配置。執行後,配置會按以下層級應用:
1. 實時默認模型:在 TUI 中通過 dsh-tui-pi 橋接實時切換,在 Web 中通過會話控制器切換。若無通道,則記錄爲下次會話的初始選擇。
2. 樹綁定:在工作區根目錄寫入 .dsh-profile 文件(最近的有效文件獲勝),確保該樹下的新會話自動加載該配置。
3. 子代理覆蓋:在運行時動態組合子代理的運行時模型和思考級別,而非寫入靜態文件。

執行此命令時,如果當前樹已綁定,列表中會顯示 (解除綁定此樹) 選項。

/profile-cfg

配置嚮導,提供以下操作菜單:
* new:新建配置,輸入名稱,選擇默認模型鏈,並配置子代理覆蓋。
* edit:編輯現有配置,顯示當前值並允許修改。
* save-current:保存當前實時選擇到新配置(或覆蓋現有配置),可選擇快照所有發現的代理基線。
* rename:重命名配置。
* delete:刪除配置(最後一個配置不可刪除)。

在嚮導中,模型選擇採用三步窄化鏈(提供者 → 模型 → 思考級別),選項實時從已安裝的 LLM 適配器讀取。

子代理與存儲

子代理覆蓋

子代理功能依賴 dsh-subagent-registry 插件。只有安裝了該插件,嚮導纔會顯示代理多選框。此時,你可以爲每個選定的代理單獨設置模型和思考級別。記錄的空值表示顯式繼承(繼承自代理文件),非空值則覆蓋文件中的設置。

存儲文件

  • ~/.dsh/model-profiles.json:配置存儲文件。它是一個版本化的 JSON 文件(當前版本 1),包含配置列表和當前激活的配置名。文件具有自愈能力,損壞時會退化到內置的 work / personal / other 配置。
  • <workspace>/.dsh-profile:樹綁定文件。僅包含一行配置名稱,支持註釋和空行。插件僅在解析爲單行時纔會覆蓋此文件,以防止覆蓋用戶手動裝飾的文件。

關係與兼容性

該插件與 dsh-tui-pi 存在深度集成:
* 實時切換:與提供 dshTuiModelSelection 橋接的 dsh-tui-pi 配合時,/profile-switch 可實時切換當前 TUI 會話的默認模型。
* 編輯共存:dsh-tui-pi 的 /agents 管理器也可以編輯相同的存儲文件和模式。

對於 TUI 用戶,建議使用 dsh-tui-pi >= 2.18.1 以確保最佳體驗。

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

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

小夜