dsh-plugin-skill-manager:在 DeepSeek Harness Web 設置裏統一管理 Skills

前言

DeepSeek Harness(DSH)通過用戶級 skill 根目錄加載 SKILL.md 與相關資源;技能一多,來源、同名優先級、是否參與模型調用往往只能靠翻目錄和改 frontmatter 來維護。社區插件 dsh-plugin-skill-manager(維護者 majinggui,npm 包 @majinggui/dsh-plugin-skill-manager)在 Web 客戶端的 Settings 裏增加 Skills 頁:掃描可配置的 skill 根、列出目錄與啓用狀態、內聯編輯 SKILL.md,並支持從本地文檔或 GitHub 倉庫鏈接安裝。頁面使用 @deepseek-ai/dsh-client-ui-primitives 與 --dsw-* 設計令牌,註冊到官方 settings.section 插槽,與內置設置分區同一套交互。

這是什麼

一句話:面向 DeepSeek Harness Web 客戶端的 Skill 管理工作流插件(分類:工作流)。

插件通過 cordis.patch.yml 注入一行配置:宿主側註冊一條需認證的 JSON 路由,瀏覽器側註冊 Settings 頁面。要求 DSH >=0.2.0-rc.1,客戶端平臺爲 web(package.json 中 dsh.client.platform: "web")。

核心功能

下面表格對應 README 中「What the page offers」的核實能力。

操作 效果
Catalog 列出掃描根下每個 SKILL.md 及扁平 .md 文檔,含來源、優先級 rank、絕對路徑、啓用狀態
掃描共享 agents 目錄 開關 ~/.agents/skills 是否納入掃描;默認關閉,選擇會持久化
Enable / disable 按 技能名 關閉或恢復(同名多根不能分別開關)
編輯 SKILL.md 內聯編輯器讀寫,保存時校驗讀取時的內容哈希
上傳 skill 文檔 瀏覽器讀取 .md 和/或 .zip 技能包,安裝到 installRoot
從 GitHub 導入 解析倉庫鏈接,安裝其中暴露的每個 SKILL.md
覆蓋已有技能 安裝時傳入 overwrite,否則跳過已存在的同名 skill

技能包(.zip):每個含 SKILL.md 的目錄作爲一條 skill 安裝,並保留同目錄腳本與資源;會先剝掉 GitHub「Download ZIP」常見的一層頂目錄。路徑規範化後拒絕絕對路徑與 ..;加密、ZIP64 或不支持的壓縮方式會給出可讀拒絕原因。

啓用/禁用機制:插件在文檔 frontmatter 寫入 DSH 已識別的兩個鍵以移出模型目錄、skill 工具與 / 菜單:

disable-model-invocation: true
user-invocable: false

被替換的原有 frontmatter 值記錄在狀態文件 <dshHome>/skill-manager.json,重新啓用時恢復;無 frontmatter 的文檔禁止禁用(避免猜測)。解析失敗的文檔會在列表中顯示錯誤而非靜默消失。

安裝與啓用

發佈到 npm 後,在資料給出的命令爲:

dsh plugin --profile web add @majinggui/dsh-plugin-skill-manager@latest

若從本倉庫本地構建後鏈接安裝,README 原文爲:

cd dsh-plugin-skill-manager && pnpm install && pnpm build
dsh plugin --profile web add link:$(pwd)

(需先取得倉庫源碼並進入該目錄;lib/ 已提交時,也可按 README Development 節說明通過 dsh plugin add github:<owner>/<repo> 使用預構建產物。)

安裝後重啓對應 profile(dsh web、pnpm run dev:web 或桌面應用),打開 Settings → Skills。

Node 引擎要求(package.json):^22.19.0 || >=24.0.0。當前包版本 0.1.0,許可證 MIT。

配置項

在插件行聲明處設置 config(示例來自 README):

- insert:
    - id: skill-manager
      name: dsh-plugin-skill-manager
      config:
        extraRoots:
          - path: ~/team-skills
            source: team
            rank: 300

常用字段默認值與含義(均來自 README Configuration 表):

字段 默認 含義
dshHome $DSH_HOME 或 ~/.dsh Harness 配置根;其子目錄 skills 會被掃描並作爲導入目標
agentsHome $DSH_AGENTS_HOME 或 ~/.agents 共享 agent 配置根;頁面上掃描開關控制其 skills
includeAgentsRoot false 首次加載前是否掃描 agents 根;之後以頁面開關在狀態文件中的記錄爲準
extraRoots [] 額外託管根,每項含 path、source、rank
stateFile <dshHome>/skill-manager.json 啓用狀態與 agents 掃描開關
installRoot <dshHome>/skills 上傳與 GitHub 導入寫入目錄
githubMaxFiles 20 單次 GitHub 導入最多安裝文檔數
githubMaxDocumentBytes 524288 單文檔大小上限
githubTimeoutMs 30000 單次 GitHub 導入超時
uploadMaxDocuments 20 單次上傳最多安裝文檔/包數
uploadMaxDocumentBytes 524288 單 Markdown 大小上限
zipMaxBytes 52428800 壓縮包上傳上限(50 MB)
zipMaxUncompressedBytes 209715200 解壓後總大小上限(200 MB)
zipMaxMembers 2000 包內文件數上限
zipMaxEntryBytes 67108864 單文件解壓上限(64 MB)

默認掃描範圍:$DSH_HOME/skills 與配置的 extraRoots。$DSH_AGENTS_HOME/skills(rank 500)僅在頁面打開掃描開關後納入;關閉後下次讀取目錄即不再列出。讀寫路徑限制在所有已配置根內,agents 掃描關閉後仍可對曾在該根出現的 skill 做啓用操作。

典型用法

  1. 打開 Settings → Skills,查看 Catalog:確認每條 skill 的 source、rank 與路徑;同名衝突時頁面會 inline 說明,開關作用於整個名字。
  2. 需要團隊共享目錄時,在 extraRoots 增加 path / source / rank,重啓或刷新後在新根中出現的 skill 會進入目錄。
  3. 臨時不讓模型調用某 skill:對該名 Disable;恢復時 Enable,frontmatter 按狀態文件還原。
  4. 改說明或 invocation 相關 frontmatter:在列表中 Edit SKILL.md,保存;若磁盤文件已被別處修改,會返回 conflict。
  5. 安裝新 skill:上傳 .md 或含 SKILL.md 的 .zip 到 installRoot;或粘貼 GitHub 倉庫鏈接導入(僅通過公開 API 讀取名爲 SKILL.md 的文件,受上述數量與大小限制)。需要覆蓋同名時勾選/傳遞 overwrite。
  6. 若本機還有 Cursor 等工具使用的共享 skills:按需打開「掃描 shared agents 目錄」,使 ~/.agents/skills 進入 Catalog(默認不掃)。

安全與限制

安全(README Safety):讀寫限於配置根,越界拒絕 outside-roots;寫入帶讀取時內容哈希,中間被改則 conflict;寫入經臨時文件再 rename;安裝默認不覆蓋已有名;GitHub 導入受文件數、大小與時間約束。

限制(README Limitations):啓用/禁用會修改 SKILL.md,不允許改 skill 文件的部署不宜使用此頁;目錄爲快照,別處新增 skill 需刷新;項目級 skill 不在本頁範圍,僅用戶級與配置的 extra/agents 根。

適用與注意:適合在 DSH Web 或 dev:web 下集中運維個人與團隊 skill 庫的開發者。插件以當前 DSH 進程權限讀寫配置根與 skill 文件;安裝前請閱讀 GitHub 源碼 與 MIT 許可證,並理解 GitHub 導入會訪問公開 API。社區目錄 SkillHub 插件頁 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-plugin-skill-manager 把 skill 的可見性、優先級、啓停、編輯與安裝收攏到 Settings 一頁,減少手工改目錄與 frontmatter 的分散操作。進一步說明見 GitHub README(含 中文 README)與 SkillHub 目錄頁。

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

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

小夜