dsh-config-studio:用表單編輯 Profile 裏插件的非 volatile 配置

前言

在 DeepSeek Harness(DSH)裏,各插件通過 Loader 條目掛載,生效配置往往疊在 profile 的 cordis.patch.yml 上。內置設置頁走 settings.mutate,只接受插件在 Config schema 裏標成 .volatile() 的字段;改其它鍵會直接報錯 Config field "<path>" is not volatile,於是超時、功能開關、Provider 表、插件列表等大塊配置只能手改 YAML。

下面介紹社區客戶端插件 dsh-config-studio(維護者 MaxHan0102):它走 ctx.configEditor,與 DSH 自帶設置同一套寫入路徑,但不侷限於 volatile,把「當前 profile 裏每個可尋址 Loader 條目」做成可瀏覽、可編輯、可保存的界面。

這是什麼

dsh-config-studio 是 DSH 的 客戶端(Web GUI) 插件:列出 configEditor.entries() 返回的條目,按各插件自己的 Config schema 渲染表單,把你修改的非 volatile 字段寫回 profile 的 patch。入口在 設置 → 插件配置(Settings → Plugin configuration),界面語言跟隨 Harness(English / 簡體中文)。

  • 倉庫:MaxHan0102/dsh-config-studio
  • 社區目錄:skillhub.cn 插件頁
  • 許可證:MIT(見倉庫 LICENSE)
  • 當前包版本:0.1.0(見 package.json 與 release 安裝地址)
  • 環境要求:DSH 0.2.1-rc.5 及以上(README 標明在 0.2.1-rc.5 上測試);需 Web 組合自帶的 ctx.configEditor 與 ctx.connection.fetch;Node 20+

社區插件目錄由 skillhub.cn 等站點維護,與 DeepSeek / 幻方無官方從屬關係;安裝前請自行審閱源碼與許可證。插件在 當前 DSH 進程權限 下運行,寫入的是你所用 profile 的配置 patch。

核心功能

瀏覽條目

  • 展示每個可編輯 Loader 條目的包名、字段數、是否已有 patch 覆蓋、當前狀態。
  • 按 id 或包名搜索;默認只看「可編輯」條目,可切換到「全部」以只讀方式查看不可寫字段。
  • 按 function(models、agents、tools、web、accounts、runtime、sessions、interface、platform、other)或 origin(內置 / 第三方)分組;支持摺疊;進入某條目再返回時保留瀏覽狀態。

編輯與保存

  • 每個頂層 config 鍵一行:文本、數字、開關、枚舉下拉、對象/數組用 JSON 編輯器。
  • 行上顯示當前生效值、是否來自 profile patch,以及一鍵 Reset 回到繼承層默認值。
  • Save to profile 前先展示將要寫入的 patch 形態 diff;帶 revision 校驗,避免覆蓋併發編輯;保存後結果行說明 override 已應用或已移除。
  • Host 對完整 config 做 schema 校驗,原子寫入 patch 並經 Loader 重載條目;校驗失敗會指出字段名,衝突時可選擇 reload。

只讀邊界(由 Host 決定)

以下情況在界面中只讀,瀏覽器無法繞過:

條件 原因
role('secret') 密鑰不出 Host,頁面僅知是否已設置
role('credential-ref') 引用不可當普通值編輯
對象子樹含 secret JSON 編輯可能泄露
未求值的 !!js 僅 YAML 能安全表達
schema 類型表單不支持 無安全控件
字段 meta.disabled 插件禁用
條目大於 64 KiB 不適合單表單編輯
條目 disabled / failed / inactive / group 當前不可尋址

憑證、!!js、過大條目等也不會在這裏可寫(README 有完整表格,此處爲常用項摘要)。

兩個行爲需要心裏有數

Patch 替換整段 config,不是按鍵 merge。 保存單個字段時,會寫入「當前條目完整 config + 你的改動」,其它鍵若與繼承層相同則一併 pin 在 patch 裏;若所有字段最終都等於繼承層,該條目的 patch 記錄會被整段移除——整條目 Reset 即此意。

保存會走 Loader 生命週期。 多數插件會隨保存重載;少數需重啓 Host 才生效,結果行會提示。

安裝與啓用

包爲 dsh.bundle,無依賴、無構建步驟;下列來源等價,按你的 Host 選一種。

DSH Desktop(推薦)

Desktop 的 profile 由應用管理,不能用 CLI 裝進 Desktop profile:

  1. 打開 設置 → 插件。
  2. 在安裝框粘貼其一:
https://github.com/MaxHan0102/dsh-config-studio/releases/download/v0.1.0/dsh-config-studio-0.1.0.tgz

或:

github:MaxHan0102/dsh-config-studio
  1. 在列表中啓用 dsh-config-studio,然後 Cmd/Ctrl+R 刷新頁面。

dsh web 或自定義 profile

將 web 換成你的 profile 名;若 Host 未加載插件,重啓後再刷新頁面。

# 固定 tag 的 release 包(URL 隨 tag 不變)
dsh plugin --profile web add https://github.com/MaxHan0102/dsh-config-studio/releases/download/v0.1.0/dsh-config-studio-0.1.0.tgz

# 或直接從倉庫安裝
dsh plugin --profile web add github:MaxHan0102/dsh-config-studio

更新與移除

更新時使用較新 tag 的安裝命令,例如 README 中的:

dsh plugin --profile web add https://github.com/MaxHan0102/dsh-config-studio/releases/download/v0.1.1/dsh-config-studio-0.1.1.tgz

Desktop 可在插件卡片上使用更新控件;github: 安裝無自動更新檢查,需先移除再添加。

移除插件:

dsh plugin --profile web remove dsh-config-studio

已寫入 cordis.patch.yml 的 override 不會因卸載插件而刪除。

典型用法

  1. 打開 設置 → 插件配置。首屏列出「有東西可改」的條目;需要審計只讀項時,將篩選改爲 All entries。
  2. 點選一條 Loader 條目。右側按該插件 schema 生成字段;條目或字段標 Overridden 表示值來自 profile patch,其餘爲繼承層。
  3. 修改字段:變更行高亮;數字、枚舉、JSON 在保存前會標無效;行上 Reset 表示恢復繼承值(待保存態會在輸入框體現)。
  4. 點 Save to profile 查看即將寫入的 diff。
  5. 確認後 Host 校驗並寫入;失敗則看字段名或衝突提示。

徽章含義(摘自 README):

徽章 含義
Overridden(條目) patch 裏已有該條目的 config:
Overridden(字段) 該鍵寫在上述 record 中
Read-only 見只讀規則
Third-party 包不在 @deepseek-ai/ 作用域下

適用場景與注意

適合: 已在用 DSH profile 調插件組合,需要可視化改非 volatile 配置(超時、開關、列表型 config 等),又不想每次手改 YAML 或只改 volatile 偏好項的場景。

注意:

  • 與內置設置互補:volatile 偏好仍適合走原生設置頁;大塊 struct 配置適合本插件。
  • 祕密、憑證引用、!!js 等必須繼續用 Host 認可的方式配置,不要指望在此編輯。
  • 卸載插件不清理 patch;若不再需要 override,需在界面 Reset 或手改 YAML。
  • 安裝前閱讀 GitHub 倉庫 與 MIT 許可證;第三方插件請自行評估信任邊界。

結尾

DSH 生態強調「一切皆插件」;dsh-config-studio 補的是內置設置頁夠不着的 profile 配置層:瀏覽可尋址條目、按 schema 表單編輯、經 configEditor 寫回 cordis.patch.yml。若你的 profile 裏插件多、YAML 改得勤,可以按上文安裝後在 設置 → 插件配置 試一輪 diff 再保存。

  • 目錄頁:https://www.skillhub.cn/plugins/MaxHan0102/dsh-config-studio
  • GitHub:https://github.com/MaxHan0102/dsh-config-studio
羽毛球分组比赛记分
小程序二维码

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

小夜