前言¶
在 DeepSeek Harness(DSH)裏,模式、權限預設、模型、推理強度,以及 Chat 裏 work details 的展示級別,往往是一套全局偏好。你換到另一個項目目錄(工作區)時,仍要手動改一遍,或者每次新建會話都從同一套全局值起步。對經常在多個倉庫之間切換的智能體開發者來說,這會把「這個項目用只讀、那個項目要 workspace write」這類約定變成重複操作。
下面介紹社區插件 dsh-workspace-settings(GitHub:Thunderunruly/workspace-settings)。它在每個工作區上單獨保存會話默認值,新建或複用空白會話時由 Host 按該工作區的配置應用;會話內已經做出的選擇仍然優先,插件不會強行覆蓋已開始對話的會話。
這是什麼¶
dsh-workspace-settings 是面向 DSH Web UI 的插件,維護者爲 Thunderunruly,在 npm 上發佈爲 dsh-workspace-settings(當前 package 版本 1.0.1),許可證 MIT。README 寫明在 DSH 0.2.1-rc.3(desktop profile)上開發與驗證;package.json 中 engines.dsh 爲 >=0.2.1-rc.3 <0.3.0-0。
插件不提供 profile 級配置字段,所有工作區默認值寫入 DSH 本地存儲;無遙測、無網絡請求。界面基於 DSH 官方 UI 原語(Modal / Menu / Button / Input 等),與內置 General Settings 行佈局一致,改選項即保存,沒有 Save/Cancel 步驟。
核心功能¶
入口與設置頁¶
- 側邊欄每個工作區行的
...菜單中,在 Rename / Delete 之上增加 Workspace settings;右鍵工作區行打開同一官方菜單也可進入。 - Settings → Workspace settings 列出所有工作區,每行顯示覆蓋項摘要和 Edit。
六項 per-workspace 默認值¶
| 設置項 | 可選範圍(資料原文) |
|---|---|
| Mode | 任意已安裝的 Agent preset,或跟隨全局默認 |
| Permissions | 任意已配置的 permission preset,或跟隨全局默認 |
| Model | 任意可路由模型,或跟隨全局默認 |
| Effort | 所選模型的 reasoning effort |
| Work details | Compact / Standard / Detailed / Verbose,或跟隨全局 |
| Collapse timing | On completion / On next message,或跟隨全局 |
內置 preset 與權限在 UI 中顯示爲官方文案(如 Standard mode、Read Only 等),而不是 standard、workspace-write 這類機器鍵。
應用規則(摘要)¶
- 在工作區內新建或複用空白會話時,Host 按存儲值設置 Mode(僅空白會話)、Permissions、Model + effort(首次模型請求覆蓋;從第二次模型請求起以會話內選擇爲準),以及該工作區 active 時的 work details / collapse timing。
- 已開始 turn 的會話不會被重寫;子 agent 與 fork 會話跳過。
- 空白會話裏若用戶已顯式改值,插件通過對比全局默認與上次工作區應用值來決定是否仍用工作區默認。
- 某工作區全部改回 Follow global default 會移除該工作區的記錄;工作區以規範路徑爲鍵,重命名工作區可保留配置。
安裝與啓用¶
要求:帶 Web UI 與插件支持的 DSH;需 Chromium 系 DSH Web UI(CLI-only 組合不渲染該插件)。插件爲 ESM,從運行中的 DSH 客戶端加載 react 與 host UI,不打包運行時依賴。
從 npm 安裝(推薦)¶
將 <profile> 換成你的 DSH profile 名:
dsh plugin --profile <profile> add dsh-workspace-settings
固定版本或升級:
dsh plugin --profile <profile> add dsh-workspace-settings@1.0.1
dsh plugin --profile <profile> add dsh-workspace-settings@latest
安裝後重載一次 DSH 窗口,使 client bundle 進入啓動圖;之後僅 client 側變更可熱更新。
驗證是否生效¶
- 工作區行
...菜單出現 Workspace settings。 - Settings 側欄出現 Workspace settings 頁。
- 打開後每個工作區一行,含 Edit 與全局默認摘要。
卸載通過插件管理器移除 bundle;$DSH_HOME/storages/workspace-settings/settings.json 中的值會保留,直到你手動刪除該文件。
典型用法¶
打開設置¶
- 懸停工作區行,點
...,選 Workspace settings;或右鍵該行從同一菜單進入。 - 或 Settings → Workspace settings,對任意工作區點 Edit。
修改即持久化¶
沒有 Save 按鈕:每次選擇變更立即寫入。用 ×、Escape 或點擊遮罩關閉對話框時,保留已成功寫入的選項;僅失敗時會提示。
存儲位置¶
| 內容 | 位置 |
|---|---|
| 工作區默認值 | $DSH_HOME/storages/workspace-settings/settings.json |
| work details / collapse 的 Chat 基線 | 瀏覽器 localStorage 鍵 dsh-workspace-settings:chat-baseline:v1 |
| 每會話上次應用緩存 | 同上 settings.json 的 sessions 段(衍生緩存,可丟) |
DSH 0.2.1 將 work details 與 collapse timing 存爲全局 Chat 偏好(ui-chat)。插件在有工作區存儲值且當前會話屬於該工作區時,臨時切到官方 Chat 偏好;離開該工作區相關會話後恢復全局值。細節見 README 的 Work-details preferences 一節。
適用場景與注意¶
適合誰:在同一 DSH 實例裏維護多個工作區,且希望「A 倉庫默認只讀 + 某模型」「B 倉庫默認 PTC + Full access」等約定隨工作區自動帶到新空白會話的用戶。
環境與權限:插件在當前 DSH 進程的權限下運行,並注入 workspace 與 settings 相關 client 模塊。安裝前應閱讀 GitHub 倉庫 源碼與 MIT 許可證,確認符合你的安全與合規要求。DSH 社區插件目錄(如 SkillHub 條目)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;生態理念是「一切皆插件」,本插件同樣屬於社區貢獻。
限制(資料原文):依賴 Web UI;work details 機制受 DSH 全局 Chat 偏好設計約束;子 agent / fork / 已開聊會話不在覆蓋範圍內。本地開發安裝路徑見 README 的 From a local checkout,本文不展開 git clone 流程。
結尾¶
dsh-workspace-settings 把會話級默認值從「全局一套」拆成「每個工作區一套」,並與 DSH 官方 preset、權限與 Chat 展示偏好對接,改選即存、界面與內置設置一致。若你需要按目錄固定 agent 模式與權限習慣,可從 npm 安裝並重載窗口後,從工作區菜單或 Settings 頁開始配置。
- 目錄頁:https://www.skillhub.cn/plugins/Thunderunruly/workspace-settings
- GitHub:https://github.com/Thunderunruly/workspace-settings