dsh-science-skill:把磁盤上的技能收成 DSH 裏的技能牆

前言

在 DeepSeek Harness(DSH)裏做科研或複雜工作流時,技能往往分散在多個文件夾裏:每個子目錄一份 SKILL.md,靠記憶路徑或手工複製 /命令 才能調用。內核側雖有技能註冊機制,但缺少一個統一的可瀏覽、可分類、可按會話控制啓用範圍的界面。社區插件 dsh-science-skill(維護者 kee0012,分類:工作流)面向這一問題:把散落在磁盤上的技能整理成側欄裏的技能牆,並配合設置面板、分類與開關,以及輸入框裏的 /command 調用方式。插件託管在 GitHub,當前版本 2.0.5,許可證 MIT;SkillHub 目錄頁見文末鏈接。

這是什麼

dsh-science-skill 是 DeepSeek Harness 插件,README 明確說明不依賴 Science Agent。裝上之後你會得到:技能設置面板、分類標籤欄、卡片式技能牆、搜索、卡片內改分類與開關、導入與刷新,以及用 /命令 調用技能的能力。桌面版與 dsh web 均可使用。

核心功能

側欄與技能牆

側欄註冊「技能」入口,點開在本區展開技能牆:頂部分類標籤欄(分類多時會換行),下方按 4 列卡片展示。

每張卡片有三個獨立操作:

  • 點卡片正文:打開該技能詳情彈窗。
  • 點右上角「召喚」:把該技能的 /命令 引用插入當前會話輸入框(不新建會話)。
  • 點右下角帶 ▾ 的分類標籤:把技能換到其他分類,改完立即重排,設置面板裏同一技能同步。

實現上使用官方 sidebar.panellist 一行入口 + main 一個面板。

詳情彈窗與「試試這樣用」

詳情彈窗自上而下:分類圖標、中文名、/命令、「去試試」(等同召喚)、一句簡介,然後是「試試這樣用」——若干中文示例提問;點任意一條會把該句插入當前會話輸入框,不覆蓋你後續編輯。最下面是「技能詳情」:該技能 SKILL.md 原文,等寬、限高、可滾動。

中文名、中文簡介、分類與示例由你在 DSH 裏的默認對話模型在同一次調用裏生成,無需給插件單獨配模型;模型未給出示例時降級爲空數組,中文名與分類仍保留。

分類、開關與導入

  • 分類可創建、改名、刪除、排序、恢復默認,並可按名稱推薦圖標。
  • 每個技能可單獨開關,狀態持久化在數據根下。
  • 在設置面板裏可:指定技能默認目錄、校驗目錄能否導入、導入技能、刷新重新掃描。
  • 重複導入直接覆蓋:被替換的舊文件夾直接刪除,不保留備份;面板裏改過的中文名、分類與示例留在記錄上,SKILL.md 換成新版本。2.0.5 之前版本會留 .<id>.old-<時間戳> 備份;發現舊備份時工具條會出現「清理舊版本(N)」按鈕。

與內核技能註冊表的關係

插件以提供者身份接入內核技能註冊表,把暴露的目錄限定爲你選定的那一個,因此面板上顯示的技能與模型能加載的技能一致。內核沒有該註冊表時插件仍工作,退化爲「僅面板可見」。可選地,若內核提供 skillGate 掛點,面板開關會真正影響模型可見的技能目錄;沒有掛點時開關只記錄狀態。

安裝與啓用

插件未發佈到 npm,DSH 支持以 git 依賴從 GitHub 安裝。安裝後需重啓 DSH,服務端代碼與 client bundle 纔會生效。

# 從 GitHub 安裝(推薦,日常使用;拉取默認分支最新提交)
dsh plugin --profile desktop add github:kee0012/dsh-science-skill

兼容性:需要 DSH ^0.2.0-rc.1;零運行時 npm 依賴,離線環境也可安裝。Node 引擎要求見 package.json:^22.19.0 || >=24.0.0。

插件配置示例(config 段):

- id: science-skill
  name: dsh-science-skill
  config:
    enabled: true        # false 時不註冊任何路由
    dataRoot: ''         # 缺省走 $DSH_HOME
    skillDirs: []        # 追加的技能根(相對路徑按 dataRoot 解析)
    naming: true         # 導入時用默認模型起中文名;關掉則只做規則推斷

典型用法

導入技能

  1. 打開 設置 → Science Skill,在「技能默認目錄」裏指定目錄(只接受絕對路徑,留空表示未設置)。
  2. 點「+ 添加目錄」選擇要導入的技能文件夾,確認分類。指定了默認目錄時,導入一律裝到那裏;未指定則回落到數據根下的 skills。
  3. 技能已在目錄裏但未登記:點「刷新」重新掃描,登記進目錄記錄,併爲從未命名過的技能生成中文名、簡介與示例。

技能目錄要求

  • 每個技能是一個子目錄,內含 SKILL.md。
  • SKILL.md frontmatter 必須有 name: 與 description:;name 須爲 kebab-case(小寫字母、數字、單連字符)。
  • 子目錄名不必等於 name;不合規目錄名用 frontmatter 的 name 當記錄標識,插件不重命名、不移動文件夾。

調用技能

  • 技能牆點「召喚」,或詳情彈窗點「去試試」,/命令 插入當前會話輸入框,回車發送。
  • 也可在輸入框直接輸入 / 加技能標識。

數據存放(便於排查)

數據根解析順序:插件 dataRoot(相對路徑按 process.cwd())→ $DSH_HOME → ~/.dsh。常用路徑包括 catalog/index.json(面板索引)、catalog/data/<id>.json(單技能元數據)、catalog/categories.json(分類表)、skill-gate.json(全局開關)、skill-import.json(默認目錄)。登記只寫數據根下的記錄,不復制、不修改、不刪除技能目錄裏的文件。

HTTP 接口均掛在 /api/dsh-science-skill 下(列表、詳情、刷新、導入、分類、skill-gate 等),需要腳本或二次集成時可對照 README 中的接口表。

適用場景與注意

適合誰:本地或團隊維護一批 SKILL.md 技能包,希望在 DSH 裏統一瀏覽、分類、按會話啓用,並通過 /命令 快速插入當前對話的開發者或科研用戶。

已知限制(README 原文):

  • 技能最終能否被模型加載由 DSH 內核決定;同名技能多來源時按內核優先級取捨,面板上顯示的未必是最終生效的一份。
  • 插件只讀寫數據根,不接管技能發現,也不 patch 內核。

安全與信任:插件以當前 dsh 進程權限運行,會讀取你指定的技能目錄並在數據根寫入 catalog 與開關狀態。安裝前建議在 GitHub 查看源碼與 MIT 許可證,確認路徑與導入來源可信。

結尾

dsh-science-skill 把「磁盤上的技能文件夾」收成 DSH 側欄裏可分類、可搜索、可一鍵召喚的技能牆,並用設置面板完成導入、刷新與開關管理;與內核 skill 註冊表、可選 skillGate 配合時,面板所見與模型可用範圍可以對齊。

  • SkillHub 目錄頁:https://www.skillhub.cn/plugins/kee0012/dsh-science-skill
  • GitHub 倉庫:https://github.com/kee0012/dsh-science-skill
  • 問題與貢獻:https://github.com/kee0012/dsh-science-skill/issues
羽毛球分组比赛记分
小程序二维码

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

小夜