前言¶
在 DeepSeek Harness(DSH)「一切皆插件」的思路下,裝進環境的 Skill 和全局 MCP 服務器會越積越多。麻煩在於,這些能力默認對所有會話可見:每個新會話的啓動上下文都帶着全套工具清單,而單個工程往往只用得到其中幾個。
dsh-workspace-scope 解決的就是這件事:讓每個工作區(工程)自己決定新會話暴露哪些 Skill 和 Host 全局 MCP。效果類似 VS Code 裝了很多語言插件,但每個工程只啓用用得到的那幾個。下面介紹它的定位、核心功能、安裝方式和具體用法。
這是什麼¶
dsh-workspace-scope 是一個 DeepSeek Harness 插件,由 Ri0n72Y 維護,MIT 許可,當前版本 0.4.0。README 徽章顯示適配 DeepSeek Harness 0.1.3-alpha.1,作者同時聲明插件正在積極開發中、版本更新頻繁。
一句話定位:按工作區(工程)啓停 Skill 與 Host 全局 MCP。它管理的範圍是明確的——只處理 Host 全局註冊、由 Agent 繼承的 MCP 服務器;Agent / Preset 自己作用域內註冊的 MCP 不歸它管。界面上的開關最終落成工作區根目錄的一份配置文件。
核心功能¶
按已覈實的 README 和 package.json,插件提供:
- 按工作區(工程)啓用/禁用 Skill 與 Host 全局 MCP 服務器;
- 新建會話界面的「工作區能力」彈窗:搜索過濾、逐行開關、點行展開詳情(技能顯示描述,全局 MCP 顯示工具數量)、底部「全部啓用」「全部禁用」快捷按鈕,所有改動即時保存;
- 配置寫入工作區根目錄的
.dsh-scope.json,在首次真實 prompt assembly 時讀取並鎖定; - Host 全局 MCP 的有效排除集合變化時,先更新 Agent 原生的
tools.restrict(),再讓 DSH 重做一次完整 prompt assembly,native 與 PTC 兩種工具呈現使用同一策略; - Skill 在每個 pre-step 根據鎖定配置刷新;被排除但原本允許用戶調用的技能,仍可用
/技能名手勢臨時加載; - 配置讀取兼容
default(全部啓用)與blacklist(列表爲排除集); - web 客戶端 UI 注入(
dsh.client.platform爲web,注入@deepseek-ai/dsh-client-ui-slots)。
安裝與啓用¶
資料裏唯一覈實到的安裝命令來自倉庫 package.json 的 deploy 腳本,是本地路徑安裝:先構建產物,再把當前目錄註冊爲 web profile 的插件。
pnpm run prepare && dsh plugin --profile web add .
--profile web 與插件的 web UI 注入是對應的。截至寫作時,沒有核實到 npm install -g 或 dsh plugin add github:... 這類遠程安裝命令,具體安裝方式請以倉庫 README 爲準。
環境要求:Node 引擎要求 ^22.19.0 || >=24.0.0;peer 依賴爲 @deepseek-ai/cordis ^4.0.1 與 react ^18.2.0。
典型用法¶
打開「工作區能力」彈窗¶
入口在新建會話界面:輸入卡右側工具行裏的「工作區能力」按鈕。已進行的對話不顯示這個入口。
彈窗按「技能」和「全局 MCP 服務器」兩個分組列出全部可管理條目,每組標題可以單獨摺疊。操作方式:
- 搜索框過濾條目;
- 每行一個開關,打開即啓用;
- 點行本身展開詳情:技能顯示描述,全局 MCP 顯示工具數量;
- 底部「全部啓用」「全部禁用」一鍵切換;
- 所有改動即時保存。
配置文件¶
保存後,配置寫入當前工作區根目錄的 .dsh-scope.json,格式如下:
{
"default": {
"mode": "whitelist",
"skills": ["<skill-name>"],
"mcps": ["<server-name>"]
}
}
字段含義:
mode:字符串,保存時固定爲whitelist;讀取時兼容default(全部啓用)與blacklist(列表爲排除集);skills:啓用的技能名列表;mcps:啓用的 Host 全局 MCP 服務器名列表。
鎖定時機與生效方式¶
經過上面的步驟,配置已經落盤,但它不會立刻生效。配置會在該會話第一次真正開始模型請求時鎖定:新建界面裏的改動仍能作用於即將開始的對話,而之後再修改 .dsh-scope.json,不會改變已經鎖定的會話。
以一次新會話爲例,生效過程是:
- 首次帶模型 turn 的 prompt assembly 讀取並鎖定配置;
- 計算 Host 全局 MCP 的有效排除集合,若發生變化,先更新 Agent 原生
tools.restrict(),再重做一次完整 prompt assembly;若沒有變化,沿用當前 assembly; - Skill 在每個 pre-step 按鎖定配置刷新。
如果某個技能被排除但仍屬於「原本允許用戶調用」的類別,在會話裏輸入 /技能名 仍可臨時加載它。
適用場景與注意¶
適合的場景:在同一個 DSH 環境裏切換多個工程,安裝的 Skill 和全局 MCP 不少,希望每個工程的新會話只攜帶需要的部分,控制啓動上下文體積。
使用前有幾點需要留意:
- 插件只管理 Host 全局註冊、由 Agent 繼承的 MCP;Agent / Preset 作用域內註冊的 MCP 不受影響;
- 配置鎖定後,改文件對已鎖定的會話無效,要換組合就開新會話;
mode字段保存時固定爲whitelist,手工改動文件時需要留意讀取時的兼容行爲;- 插件版本更新頻繁,README 徽章標註適配 DeepSeek Harness 0.1.3-alpha.1,升級 DSH 前先確認兼容性。
另外提醒:插件以當前 dsh 進程的權限運行,安裝第三方插件前建議先過一遍源碼和許可證。dsh-workspace-scope 採用 MIT 許可,README 與 package.json 均有標明;倉庫接受 issue,改動前先讀 CONTRIBUTING.md 再提 PR。
小結¶
dsh-workspace-scope 把「裝了什麼」和「這個工程用什麼」分開:能力全局安裝,暴露範圍按工作區決定,配置落在一個 .dsh-scope.json 文件裏,隨時可改、可入庫。對維護多個 DSH 工程的人來說,它能直接壓低每個新會話的啓動上下文負擔。
- GitHub 倉庫:https://github.com/Ri0n72Y/dsh-workspace-scope
- 社區插件目錄頁(獨立站點,與 DeepSeek / 幻方無官方從屬關係):https://www.skillhub.cn/plugins/Ri0n72Y/dsh-workspace-scope