前言¶
在 DeepSeek Harness(DSH)裏跑智能體時,Skills 和 MCP 服務器往往會來自多個目錄:全局 $DSH_HOME/skills、各項目的 .dsh/skills,以及 profile 裏掛接的 MCP。要在會話裏試不同組合,若只能改 YAML 或 frontmatter 再重啓進程,迭代會很慢。下面介紹的 dsh-skills-mcp-panel 是面向 DeepSeek Harness Web GUI 的客戶端插件:在 Settings → Agent presets 下增加 Skills/MCP 頁面,按來源分組列出當前部署聚合到的全部 Skill 與 MCP,支持搜索、狀態指示燈與熱切換,多數改動無需重啓 dsh web。
這是什麼¶
dsh-skills-mcp-panel 由社區維護者 KyattoCat 發佈,在 SkillHub 插件目錄 中歸類爲客戶端插件。源碼與說明見 GitHub 倉庫;package.json 當前版本爲 0.2.0,許可證 MIT,要求 Node.js >= 22.19。
插件定位一句話:Skills & MCP panel for the DeepSeek Harness Web GUI —— 分組展示、可搜索、可熱切換。README 說明該項目由 DeepSeek Flash 在 Harness 內生成,經維護者需求與審閱後落地;安裝包以 lib/ 爲源碼,無構建步驟。
核心功能¶
設置頁入口與界面¶
安裝並重啓 dsh web 一次後,打開 Settings → Agent presets → Skills/MCP(入口緊挨 preset 頁下方)。頁面提供:
- 搜索框:按名稱、描述、路徑過濾;
- 兩個標籤頁:Skills 與 MCP servers,並顯示實時數量;
- 分組:每一行按所屬目錄歸組,組頭含名稱、完整路徑與條數,點擊組頭可摺疊/展開;
- 卡片:標題、來源、彩色狀態燈、狀態下拉、詳情開關(
+/−); - 詳情面板:Skill 側展示 description、when-to-use、root、path、body lines、model-invocable、user-invocable;MCP 側展示 entry id、transport、command 或 URL、連接階段、工具數量與工具名列表。
當前 GUI 會話所在項目對應的分組會置頂、默認展開,並帶 Current project 標記;其餘分組默認摺疊。無會話或未註冊工作區時,回退到 dsh web 進程自身工作目錄對應的項目,保證始終有一個項目分組領先。
分組規則¶
Skills 按掃描根目錄分組:
| 分組 | 對應根 |
|---|---|
| Global | $DSH_HOME/skills、$DSH_AGENTS_HOME/skills |
| 每個已知項目 | <project>/.dsh/skills、<project>/.agents/skills(含 Web GUI 打開過的工作區及 harness 進程 cwd) |
| 每個配置的 skillRoots 項 | 以該目錄名命名的一組 |
MCP servers 無獨立目錄時,按運行目錄歸類:stdio 且 cwd 落在某項目內則歸入該項目,其餘(HTTP、繼承 harness 目錄的 stdio)歸入 Global。
Skill 四種狀態(熱生效)¶
Skill 的 SKILL.md frontmatter 中 disable-model-invocation 與 user-invocable 獨立,面板提供四種選擇:
| 選擇 | disable-model-invocation | user-invocable | 誰能加載 |
|---|---|---|---|
| Enabled | 缺省(不寫) | 缺省(不寫) | 模型可路由;用戶可用 /name |
| Manual only | true |
缺省 | 僅用戶;模型目錄與 skill 工具不可見 |
| Model only | 缺省 | false |
僅模型;不出現在 / 菜單 |
| Disabled | true |
false |
兩側均不可用;僅受信 ctx.skills.get() 調用方 |
Skill provider 監視根目錄,下一次 agent/pre-step 即重發目錄,同一會話內生效,無需重啓進程。
MCP 啓用/禁用(熱生效)¶
MCP 行只有 Enabled / Disabled(界面隨語言本地化)。連接未穩定時,選擇器旁會顯示 loading 或 failed 標籤( live 狀態,非配置項)。對配置了 patchReload: live 的 profile,寫入會通過 config HMR 原地重載該 MCP 連接,同一會話內生效。
狀態燈含義¶
- 綠色:Skill 模型可達,或 MCP 已連接;
- 琥珀色:Skill 僅手動,或 MCP 仍在連接;
- 紅色:Skill 解析錯誤,或 MCP 連接失敗;
- 灰色:已禁用。
寫入範圍(不越界)¶
面板不會刪除 Skill、不會改 MCP 服務端配置、不會重排你 patch 文件裏其它內容。
Skills:僅改動上述兩個 invocation 鍵;需要「缺省 true」的狀態會刪除鍵而非寫冗餘值,回到 Enabled 時文件字節可恢復原狀。
MCP:僅在 profile 的 cordis.patch.yml 末尾維護一段帶標記的塊,例如:
# >>> dsh-skills-mcp-panel (managed — edit these rows from the panel)
- id: "mcp-playwright"
disabled: true
# <<< dsh-skills-mcp-panel
標記塊外內容原樣保留;塊內列出當前由面板禁用的 server id。全部重新啓用時塊會被移除。寫入經臨時文件再 rename,避免 patch 監視器讀到半寫文件。
若某次改動落在下次啓動 dsh 纔會生效的 profile 上,頁面會在底部提示,而非常駐頁腳。
安裝與啓用¶
安裝屬於向 profile 增加新的 bundle 層,dsh.profile.bundles 在啓動時讀取,因此新裝插件後需重啓一次 dsh web;之後 Skill/MCP 狀態變更可熱更新。官方 README 給出的命令如下(均需 --profile web):
# 從 npm
dsh plugin --profile web add dsh-skills-mcp-panel
# 從 GitHub 跟蹤倉庫
dsh plugin --profile web add github:KyattoCat/dsh-skills-mcp-panel
# 本地開發(絕對路徑)
dsh plugin --profile web add link:/absolute/path/to/dsh-skills-mcp-panel
卸載:
dsh plugin --profile web remove dsh-skills-mcp-panel
npm 安裝的包內含 lib/、README、cordis.patch.yml 與許可證;倉庫中的 tests/、CONTRIBUTING.md 不會進入安裝包。從 GitHub 安裝時 README 註明無需 allowBuilds 權限。
可選配置¶
所有配置項均爲可選;默認滿足 stock dsh web。資料中明確給出的字段包括 patchPath(默認自動檢測):用於寫入 MCP 禁用行的 patch 文件;檢測邏輯會在 $DSH_HOME/profiles 下尋找其 dsh.profile.bundles 包含本插件的 profile,並優先選用帶 patchReload: live 的那一個。也可顯式指定路徑。
典型用法¶
- 按上一節命令安裝插件,重啓
dsh web。 - 在 Web GUI 打開 Settings → Agent presets → Skills/MCP。
- 在搜索框中按名稱或路徑定位某個 Skill 或 MCP。
- 展開當前項目或 Global 分組,在卡片上用狀態下拉將 Skill 設爲 Manual only(調試時只讓自己
/name觸發),或將暫時不用的 MCP 設爲 Disabled。 - 點
+查看 transport、工具列表等詳情,確認連接階段與狀態燈是否與預期一致。 - 回到對話會話繼續工作;Skill 變更隨下一次 pre-step 生效,live profile 上的 MCP 變更隨 patch 重載生效。
若你同時維護手寫 cordis.patch.yml,MCP 禁用請優先在面板中改標記塊內的行,避免與面板管理的 fence 衝突。
適用場景與注意¶
適合誰:經常在 DSH Web GUI 裏切換項目、試不同 Skill 組合或臨時關掉某個 MCP 的開發者;希望按目錄看清「全局 vs 某項目 vs skillRoots」來源,而不是在多個路徑間手動搜 frontmatter 或 patch。
權限與安全:插件以當前 dsh web 進程權限運行,會讀寫 Skill 的 SKILL.md frontmatter 與 profile 的 cordis.patch.yml。安裝前請自行審閱 源碼與 LICENSE(MIT),確認與部署策略一致。DSH 社區插件目錄(SkillHub)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;生態理念是「一切皆插件」,本文介紹的是社區維護的客戶端擴展,而非內置功能。
侷限:安裝/卸載 bundle 層仍需重啓;對不具備 live patch 重載的 profile,MCP 面板的禁用可能要到下次啓動才完全體現 —— 頁面會在必要時提示。
鏈接¶
- 插件目錄:https://www.skillhub.cn/plugins/KyattoCat/dsh-skills-mcp-panel
- GitHub:https://github.com/KyattoCat/dsh-skills-mcp-panel
在 Web 設置裏集中查看、搜索並按來源分組切換 Skills 與 MCP,且多數操作不必重啓進程 —— 這是 dsh-skills-mcp-panel 在 DSH 客戶端側補上的那一塊操作面板。