DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
S

dsh-skill-router

Skill Router

适用于 DeepSeek Harness 的 RAG 风格技能路由器:对技能进行嵌入,通过相似度匹配用户任务,并自动注入相关技能正文。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:lau4tin1/dsh-skill-router#cb3d6c2678f8eda79132e0bb5e8796bd7ac6335d
README兼容性版本

兼容性与来源证明

Skill Router 以 dsh-skill-router 发布,当前版本为 0.2.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/10/1

版本

0.2.0stable
2026/10/1
0.1.0stable
2026/9/15

相关插件

正在加载相关插件…

最新版
0.2.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/1
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 productivity-workflow 分类下经过校验的插件。

Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理Experimental Schedule Bundle@deepseek-ai/dsh-experimental-schedule-bundle为 Web 组合添加 Schedule、其任务页面和时间上下文的可选捆绑包Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / pet / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Ab Ocrdsh-ab-ocr--- description: "外部 ocr 工具:逐页识别扫描的 PDF 或图像,仅在处理完最后一页后按顺序合并页面,并使用模型确定的标题级别保存为一个 Markdown 文档。" kind: "package-reference" ---

README

Welcome to DSH-SKILL-ROUTER!

dafeiyu

A Skill Router for DeepSeek Harness

RAG-style skill routing plugin for DeepSeek Harness: embeds skills (their name + description + whenToUse routing surface), embeds each user task, keeps only the clearly-relevant skills with a gap-based selection rule, and auto-injects their full bodies into the prompt — no model round-trip to load a skill.

  • Design: see DESIGN.md.
  • Status: V1 complete and running — type-checks against the real DSH 0.1.5-rc.2 types, builds, mounts in a live DSH profile (verified in the web and headless profiles), and passes 20/24 bilingual routing prompts on real skills (node demo/e2e.ts). Compatible with DSH 0.1.5-rc.2 through 0.2.0-rc.2 (peer range >=0.1.5-rc.2 <0.3.0-0); all routing APIs it uses — ctx.skills.snapshot/get, skills/change, renderSkillContent, createUserMessage, and the agent/pre-step middleware — are unchanged in 0.2.0-rc.2.

Install

dsh plugin --profile web add dsh-skill-router

Installs into the web profile; swap web for another profile name to target it. Requires dsh and pnpm on PATH.

pnpm 12 build approval — the first install pulls native dependencies (onnxruntime-node, sharp, protobufjs) whose build scripts pnpm blocks by default. If dsh plugin stops with ERR_PNPM_IGNORED_BUILDS, open $DSH_HOME/profiles/<name>/pnpm-workspace.yaml, set the allowBuilds entries pnpm wrote there to true, then re-run the same dsh plugin ... add command.

The first real task downloads the embedding model once (~543MB, q8) into $DSH_HOME/skill-router/models, then runs fully offline.

Layout

  • src/index.ts — the Cordis plugin entry (name / inject / Config / apply).
  • src/selection.ts — the selection rule (largest-gap / ratio-to-max, weak floor).
  • src/similarity.ts — cosine similarity + vector helpers (pure).
  • src/embedding.ts — one real embedding model via transformers.js (ONNX).
  • src/skillIndex.ts — the index: build, embed, digest-diff sync on change.
  • src/config.ts — schemastery config schema + mappers.
  • src/render.ts — renders the injected <system-reminder> block (reuses DSH's renderSkillContent).
  • demo/e2e.ts — end-to-end routing test over downloaded skills.

Build

npm install        # toolchain (typescript, esbuild); DSH types come from a local checkout symlink
npm run typecheck  # tsc --noEmit against the real DSH types
npm run build      # esbuild -> lib/index.js (@deepseek-ai/* kept external)

Demo

Skills live in .agents/skills/ — a real DSH scanned root (rank 200, see DESIGN.md §14). The demo parses them the same way the registry would surface them:

node demo/e2e.ts           # plugin defaults
node demo/e2e.ts 0.2       # experiment with the minScore floor

Config (defaults)

enabled: true
embedding:
  model: Xenova/bge-m3                          # optional; any HF ONNX embedding model
  dtype: q8                                     # or fp32
cacheDir: ~/.dsh/skill-router                   # optional; models + index live here
rule: largest-gap                               # or ratio-to-max
minScore: 0.2                                   # confidence floor (precision > recall)
ratioThreshold: 0.75
maxSkills: 4

The plugin default above is classic gap/ratio mode. The bundled cordis.patch.yml ships with the scale-invariant override instead: minScore: 0.05 and zThreshold: 2.5.

Languages

Chinese and English both work out of the box — the default model is multilingual, and a Chinese prompt matches an English skill description (and vice versa) by meaning, cross-lingual. One DSH registry rule to respect: skill names must stay kebab-case ASCII (pdf-tools), but description, whenToUse, and the body can be Chinese. The injected instruction block is bilingual (中文/English).

Embedding model

One engine: a real local model via transformers.js (ONNX) — dense semantic vectors; synonyms and paraphrases match, word sharing is not required. Default Xenova/bge-m3 (q8, ~543MB download, 1024-dim, [CLS] pooling) — flagship multilingual quality for Chinese + English. Alternatives via embedding.model: multilingual-e5-small (fast, needs query/passage prefixes — handled automatically), bge-large-en-v1.5, bge-large-zh-v1.5.

Scoring de-biases the vectors by subtracting the corpus mean ("centering"), which removes the shared direction that would otherwise make unrelated texts score ~0.8. Inference is pinned to a single thread so results are deterministic.

All heavy data lives OUTSIDE the working directory: the model downloads once from huggingface.co into <cacheDir>/models, and the skill-embedding index persists at <cacheDir>/skill-index.json (atomic writes, tagged with the model id), so unchanged skills are never re-embedded after a restart.

Dev note

node_modules/@deepseek-ai and node_modules/js-yaml are local symlinks into a DSH checkout for type-checking and demos; recreate them after a fresh install. At runtime a real DSH profile provides the @deepseek-ai/* packages (they are declared as peerDependencies and kept external by the build).