前言¶
在 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 # 導入時用默認模型起中文名;關掉則只做規則推斷
典型用法¶
導入技能¶
- 打開 設置 → Science Skill,在「技能默認目錄」裏指定目錄(只接受絕對路徑,留空表示未設置)。
- 點「+ 添加目錄」選擇要導入的技能文件夾,確認分類。指定了默認目錄時,導入一律裝到那裏;未指定則回落到數據根下的
skills。 - 技能已在目錄裏但未登記:點「刷新」重新掃描,登記進目錄記錄,併爲從未命名過的技能生成中文名、簡介與示例。
技能目錄要求¶
- 每個技能是一個子目錄,內含
SKILL.md。 SKILL.mdfrontmatter 必須有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