前言¶
換一套 Agent 運行時,最煩的往往不是模型本身,而是技能庫要不要搬家。Anthropic 在 2025 年 12 月把 Agent Skills 做成開放規範:一個目錄裏放 SKILL.md,YAML frontmatter 寫 name 和 description,正文寫步驟,需要時再帶上腳本和參考文件。Claude Code 把技能放在 .claude/skills/,Gemini CLI 有自己的目錄,Cursor 還有 .cursor/rules/*.mdc,Claude Code 的斜槓命令則在 .claude/commands/*.md。這些文件已經在本機裏了,換到 DeepSeek Harness(下文簡稱 DSH)時,並不想再抄一遍。
DSH 官方文檔裏,技能子系統已經能讀 SKILL.md:項目級和用戶級的 .dsh/skills/、.agents/skills/ 由原生 provider dsh-skill-filesystem 掃描。工具專屬路徑、Cursor 規則、斜槓命令不在這條原生掃描裏。社區插件 dsh-skillport 做的就是補上這一截:發現 DSH 沒覆蓋的位置,把相鄰格式轉成技能,再交給平臺自帶的目錄和 skill 加載工具。
本文按社區目錄頁、倉庫 README / README.zh.md、package.json、docs/spec-revision.md 以及源碼覈對後整理:這個插件是什麼、掃哪些目錄、怎麼安裝、怎麼做健康檢查。
這是什麼¶
dsh-skillport 是 DeepSeek Harness 的技能類插件,npm 包名 @dsh-skillport/bundle,當前版本 0.1.0,主要語言 TypeScript,許可證 MIT。維護者是 jesse-njx,源碼在 GitHub 倉庫 jesse-njx/dsh-skillport。社區目錄頁收錄於 2026-08-14,分類爲「技能」;截至 2026-08-18,GitHub 星標爲 2。
它解決的問題可以收成一句話:讓你在 Claude Code、Codex、Cursor、Gemini CLI 裏已經寫好的技能,在 DSH 會話裏直接出現,而不必先遷移到 .dsh/skills 或 .agents/skills。
需要先分清兩件事:
- DSH 自帶技能技術棧。 官方倉庫的理念是「一切皆插件」。技能註冊表
ctx.skills、按 rank 去重、把名字和描述注入系統提示、用skill工具按需加載正文,這些是平臺能力。.dsh/skills和.agents/skills由dsh-skill-filesystem掃描。 - Skillport 不另起一套執行器。 倉庫 README 把它的職責寫得很窄:發現 DSH 未覆蓋的位置、轉換相鄰格式、讓結果可調試。導入的技能進原生註冊表;帶腳本的技能仍走 DSH 常規 shell 工具和沙箱。
社區插件目錄 deepseek-harness-plugin.com 是獨立站點,和 DeepSeek / 幻方沒有官方從屬關係,不要把它當成官方應用商店。
核心功能¶
發現已有的 SKILL.md¶
插件按來源組掃描。docs/spec-revision.md 給出的發現根和 rank 如下(數字越小優先級越高,同名時低 rank 獲勝):
| 來源 | 路徑 | Rank(項目級 / 用戶級) |
|---|---|---|
| DSH 原生 | .dsh/skills/、~/.dsh/skills/ |
100 / 400 |
| Claude Code | .claude/skills/、~/.claude/skills/ |
150 / 450 |
| Codex / 開放約定 | .agents/skills/、~/.agents/skills/ |
200 / 500 |
| Gemini CLI | ~/.gemini/antigravity/skills/ |
550 |
| 額外目錄 | 配置項 extraPaths |
650 |
有兩點必須按倉庫說明來理解:
.dsh/skills和.agents/skills在標準 preset 裏已被dsh-skill-filesystem掃描。Skillport 檢測到該 provider 後會跳過這兩組,避免雙重注入;只有原生 provider 不在時,它才自己掃一遍兜底。- 從 Claude、Gemini、
extraPaths掃到的SKILL.md會註冊成模型可調用的技能。名字和描述進會話目錄,正文由平臺的skill工具按需加載,捆綁資源按技能目錄解析。
SKILL.md 的校驗對齊倉庫釘死的 Agent Skills 修訂:name 必填,1–64 個字符,只允許小寫字母、數字和連字符;description 必填,1–1024 個字符。可選字段包括 license、compatibility、metadata、allowed-tools。DSH 額外字段 whenToUse、disable-model-invocation、user-invocable 也會被接受。
轉換相鄰格式¶
倉庫把下面三類叫做 Tier-2,best-effort,並標明來源:
- Cursor 規則:
.cursor/rules/*.mdc→ 模型可調用技能,來源cursor。frontmatter 裏的description、globs、alwaysApply會映射到觸發條件和正文。 - Claude Code 斜槓命令:
.claude/commands/*.md→ 用戶可調用技能,會話裏用/name觸發,來源claude-command。 - 上下文文件:
AGENTS.md、CLAUDE.md僅在原生dsh-agent-instructions不存在時注入爲項目上下文;原生插件在場就跳過。
這三類默認都開,可以在配置裏關掉。
find_skill 與目錄上限¶
技能一多,把全部描述塞進系統提示會膨脹。配置項 maxIndexEntries 默認是 100:超出部分不再作爲模型可調用候選,只保留用戶可調用,由 find_skill 工具檢索。
find_skill 是給模型用的工具,不是用戶斜槓命令。源碼裏它接受兩個參數:
query:按名稱、描述、whenToUse做關鍵詞搜索name:按精確名稱加載完整說明(此時忽略query)
技能很多、可見目錄對不上當前任務、或懷疑某項技能被上限擋住時,模型可以走這個工具。
技能健康檢查(skills doctor)¶
爲 Claude 觸發習慣寫的描述,在 DeepSeek 模型上可能對不上。Skillport 提供會話內命令和獨立 CLI。
會話裏:
/skills doctor
/skills doctor deploy the app to production
前者按來源列出已加載技能;後者用一段描述做 test-fire,返回帶分數的匹配列表。README 裏的示例輸出如下:
/skills doctor
## project-claude (1)
- commit-helper — Craft conventional-commit messages from staged changes.
## project-dsh (1)
- deploy — Deploy the application to staging or production with rollback.
/skills doctor deploy the app to production
Test-fire: "deploy the app to production"
- deploy [skillport/project-dsh] score=0.83
"Deploy the application to staging or production with rollback."
不啓動 DSH 會話時,可以用包自帶的 skills-doctor:
skills-doctor --cwd ~/work/projectx list
skills-doctor --cwd ~/work/projectx test-fire "deploy the app to production"
CLI 還會掃描同樣的發現根,並用 stderr 打出被去重擋住的同名技能([shadowed])。
釘死規範修訂¶
Agent Skills 還在演進。Skillport 把實現釘在 docs/spec-revision.md 記錄的修訂上:社區參考倉庫 agentskills/agentskills 的 5d4c1fda(文檔標註爲 2026-08-14 抓取),平臺側釘 @deepseek-ai/dsh-base@0.1.0-rc.6。源碼常量是 agentskills@5d4c1fda / dsh-base@0.1.0-rc.6。倉庫附帶一致性 fixture(缺字段、unicode 名、嵌套資源),README 寫當前測試集爲 60 個。
安裝與啓用¶
社區目錄頁給出的安裝命令(以該頁原文爲準)是在 DSH 終端裏執行:
dsh plugin add github:jesse-njx/dsh-skillport
需要可復現安裝時,按目錄頁說明把 commit 哈希接到倉庫後面:
dsh plugin add github:jesse-njx/dsh-skillport#<commit>
倉庫 README 另外給出按 npm 包名、指定 profile 的寫法:
dsh plugin --profile web add @dsh-skillport/bundle
兩種入口對應同一份 bundle。目錄頁這條是社區站點對外展示的命令;README 這條是倉庫維護者寫的包名安裝方式。package.json 要求 Node.js >= 20,並對 @deepseek-ai/dsh-skill 等包聲明瞭 0.1.0-rc.6 這一檔 peerDependency。
插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。裝之前應閱讀源碼倉庫和 MIT 許可證。
卸載時,README 給出的命令是:
dsh plugin remove @dsh-skillport/bundle
註冊都是 Cordis effect,卸掉插件會把導入的技能一併撤掉。
所有配置字段都可選,可寫在 profile patch 或 cordis.patch.yml:
plugins:
dsh-skillport:
sources: [dsh, claude, agents, gemini] # 掃描哪些發現組
extraPaths: [] # 額外的 SKILL.md 目錄,例如 ~/skills
convert:
cursorRules: true # .cursor/rules/*.mdc → skill
contextFiles: true # AGENTS.md / CLAUDE.md(原生已處理則跳過)
claudeCommands: true # .claude/commands/*.md → 用戶可調用 skill
maxIndexEntries: 100 # 超出後模型可調用候選降爲用戶可調用
providerName: skillport # 註冊表中的 provider 名
sources 可選值爲 dsh、claude、agents、gemini。只想補 Claude 目錄、完全交給原生去掃 .dsh / .agents 時,可以把 sources 收成 [claude, gemini]。
典型用法¶
1. 直接用 Claude Code 裏已有的技能¶
裝好插件後,在 DSH 會話裏讓模型加載一個你原先放在 .claude/skills/ 或 ~/.claude/skills/ 的技能。按 README:目錄會列出它,skill 工具會加載正文,捆綁資源一併可用。不需要先把目錄複製到 .agents/skills。
2. 看當前工程到底加載了哪些技能¶
在會話裏執行:
/skills doctor
輸出按來源分組。上面 README 示例裏會出現 project-claude、project-dsh 這類分組,用來覈對「掃到了」和「你以爲掃到了」是否一致。
3. 用一句話試觸發¶
仍然用 README 裏的句子:
/skills doctor deploy the app to production
若目標技能分數偏低或根本沒出現,多半是 description 按另一家模型的觸發習慣寫的,需要改描述,而不是再寫一套技能文件。
4. 技能很多時靠搜索,而不是靠提示詞硬塞¶
maxIndexEntries 默認 100。超過之後,多出來的技能不會繼續堆進模型可見目錄,但 find_skill 仍能按關鍵詞搜到,並用 name 加載全文。這是源碼裏寫明的溢出面,不是另做一套技能市場。
適用場景與注意事項¶
比較適合:
- 本機已經有 Claude Code / Gemini CLI 的
SKILL.md庫,準備在 DSH 裏接着用 - 項目裏有 Cursor
.mdc規則或 Claude Code 斜槓命令,希望它們以技能形式出現在 DSH 會話 - 技能數量接近或超過目錄上限,需要
find_skill和/skills doctor做檢索與觸發檢查 - 要確認「規範漂移」時,倉庫釘死的修訂和 CI fixture 比口頭兼容聲明更可覈對
倉庫 README 把下面幾項明確寫成非目標,不要按「全功能遷移」去理解:
- Claude Code 的插件、hooks、subagents(主機特定的可執行語義)
- MCP 配置轉換
- Codex / Cursor 的擴展二進制
- Skillport 自己的執行路徑:帶腳本的技能仍通過 DSH 的 shell 工具在沙箱裏跑,沙箱策略是唯一執行點
另外幾條來自目錄頁、README 和 package.json,不是額外發揮:
- 先讀源碼再裝。 插件與當前 dsh 進程同權限,安裝時可能執行代碼。
- 不要假設雙重掃描。
.dsh/skills和.agents/skills在原生 provider 在場時不會被 Skillport 再掃一遍;AGENTS.md/CLAUDE.md同樣遵守「先檢查、不雙重注入」。 - 觸發質量不會自動對齊。 doctor 只報告匹配分數,不會改寫你的
description。 - 版本還很新。 包版本 0.1.0,倉庫創建於 2026-08-13,星標 2。peer 依賴落在 DSH
0.1.0-rc.6這一檔,換運行時版本前應對照package.json。 - 社區目錄不是官方商店。 安裝命令以你實際打開的目錄頁或倉庫 README 爲準。
小結¶
dsh-skillport 不重新發明 DSH 的技能系統。它把 Claude Code、Gemini CLI 等工具專屬目錄裏的 SKILL.md 送進原生註冊表,順帶轉換 Cursor 規則和 Claude 斜槓命令,再用 find_skill 和 /skills doctor 處理目錄膨脹和觸發對不齊。對已經積累了一套 Agent Skills、又要在 DeepSeek Harness 裏開工的人,它省掉的是搬家,不是沙箱策略,也不是 hooks 那一層主機語義。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-skillport/
GitHub:https://github.com/jesse-njx/dsh-skillport