ZiYuan258/dsh-skill-router ↗★ 0

dsh-skill-router

DeepSeek Harness plugin adding the skill_search / skill_load / skill_ref tools and a 技能 tab that lists what the session actually loaded, so an agent can find and load any skill from a staged library instead of paying for every skill in the session catalog. 适合需要从本地库动态加载技能以节省每轮常驻Token的用户。

パッケージ
dsh-skill-router
互換性
未検証
バージョン
1.11.0
ライセンス
MIT
最終更新
2026/09/25

同名パッケージの別リポジトリ

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:ZiYuan258/dsh-skill-router

ドキュメント

README 全文を読む ↗

使用方法

零、装完就能用(不需要先准备任何东西)

插件自带一个入门技能库(5 个,覆盖"先搜再动手 / 用证据说话 / 带着证据调试 / 先定范围 / 把结果讲清楚")。你没有自己的库时,它就是这个库——重启 DSH 之后 skill_search 立刻有东西可搜:

skill_search "debug"
→ debug-with-evidence     ← 来自插件自带的入门库

返回值里会带 starterLibrary: true,以及 library: 指向插件包内的路径。看到这个标记就说明你读的是入门库,不是自己的库——这两种情况的诊断方向完全不同,所以它必须能分辨。

入门技能不会被塞进常驻目录。 它们在插件包的 resources/starter-skills/ 下,走的是 skill_search / skill_load 这条路,一个字节都不进每轮的模型目录。把入门技能放进 .dsh/skills/ 会立刻让它们每轮进上下文——那正好毁掉这个插件的全部意义。test/starter-library.mjs 里有一条断言专门守这件事。

自带 5 个而不是 1000 个是有意的:这个插件解决的问题就是"大库不要常驻"。往包里塞一个大库会同时带来包体、更新、许可证与版本绑定四类问题。想要真正的能力覆盖,就把你自己的库接上去(下面第一节)。

一、把库放到哪里

插件从会话工作目录往上最多 8 层找 .skill-src/skill-index.tsv。所以惯例是把库放在工作区根:

\                      ← 你在这里开 DSH 会话
├─ .skill-src\                      ← 库的根,插件找的就是这个名字
│  ├─ skill-index.tsv               ← 索引(下一步生成)
│  ├─ remotion-skills\              ← 一个上游仓库 = 一个顶层目录
│  │  └─ skills\remotion-create\
│  │     └─ SKILL.md
│  └─ trailofbits-skills\
│     └─ plugins\semgrep\skills\semgrep\
│        └─ SKILL.md
├─ .dsh\skills\                     ← DSH 常驻区(插件不碰这里)
└─ AGENTS.md

两条硬性约定:

  1. 目录名必须是 .skill-src。 前导点让它对 DSH 的 skill 扫描器不可见——这正是"库不占目录成本"的机制。若命名为 skills/ 或放进 .dsh/skills/,DSH 会把里面的技能全部注入每轮上下文,插件就白装了。
  2. 它必须在会话 cwd 的同级或上级。 若你的 DSH 会话开在 \projects\foo,插件会向上找到 \.skill-src——这没问题。
  3. 内部结构随意。 插件只要求"某层的目录名等于 repo 列、其下路径等于 relpath 列、最后是 SKILL.md"。上游仓库那种 skills/、plugins//skills/、antigravity/skills/ 混排的布局原样放着即可。

二、库在别处(别的盘 / 别的目录)

插件按 cwd/.skill-src 找,所以库不在工作区里时,在工作区放一个目录链接指过去即可。已实测可用(Windows junction / POSIX symlink,node tools/check-link-support.mjs 可自行复验):