按 YAML 规则前置匹配技能,命中才注入且零 Token 消耗
27.7/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add MJorgin/dsh-skill-router该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · skill
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 78 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 1 处,展示前 1 条)
- 读取本地文件index.js:56
const raw = await readFile(policyPath, 'utf8')
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/dsh-skill给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- YAML规则前置匹配
- 高置信命中才注入
- 零Token消耗
展开完整介绍(138 字)↓
DeepSeek Harness 的规则优先前置技能路由器:高置信命中时注入匹配技能,否则保持静默。确定性执行:零 LLM 调用,规则注入前零 token 消耗,每个会话只注入一次,YAML 出错也不会中断会话。规则路由 · 高置信命中 · 静默放行 · 零 Token 消耗
README
由 DeepSeek 最新模型翻译生成🍸→⚙️ dsh-skill-router
面向 DeepSeek Harness 的规则优先前置步骤技能路由:匹配到技能就倒上,拿不准就保持沉默。
License: MIT
Test CI
DeepSeek Harness
Deterministic
Once per session
Companion
Docs
skill-bartender 的配套执行器:技能承载策略判断,本插件承载执行。
确定性、零 LLM 调用、零 token 成本,直到某条规则真正倒上:
- ⚡ 前置步骤钩子 —— 在每个步骤之前读取最新的用户消息。
- 🧭 规则优先匹配 —— 用户可编辑的 YAML 策略(~/.dsh/skill-router.yaml,内置默认值在 default-policy.yaml),首个匹配胜出。
- 🔇 静默未命中 —— 无命中 → 零干预;模型保持其正常的目录流程。
- ♻️ 每会话一次 —— 每个技能最多倒上一次。
- 🛡️ 损坏的 YAML 永远不会破坏会话 —— 回退到内置默认值。
展开完整文档(README 剩余 1 节)
🍸→⚙️ dsh-skill-router
面向 DeepSeek Harness 的规则优先前置步骤技能路由:匹配到技能就倒上,拿不准就保持沉默。
License: MIT
Test CI
DeepSeek Harness
Deterministic
Once per session
Companion
Docs
skill-bartender 的配套执行器:技能承载策略判断,本插件承载执行。
确定性、零 LLM 调用、零 token 成本,直到某条规则真正倒上:
- ⚡ 前置步骤钩子 —— 在每个步骤之前读取最新的用户消息。
- 🧭 规则优先匹配 —— 用户可编辑的 YAML 策略(~/.dsh/skill-router.yaml,内置默认值在 default-policy.yaml),首个匹配胜出。
- 🔇 静默未命中 —— 无命中 → 零干预;模型保持其正常的目录流程。
- ♻️ 每会话一次 —— 每个技能最多倒上一次。
- 🛡️ 损坏的 YAML 永远不会破坏会话 —— 回退到内置默认值。
为什么 · 工作原理 · 你会得到什么 · 快速开始 · 实际效果 · 策略 · 已测试 · 范围与非目标 · 常见问题 · 目录结构 · 许可证
English · 简体中文
🤔 为什么
大多数技能加载都交给模型的判断:它每个步骤都看到目录,每次都重新决定,而且常常加载得太晚、加载错误,或者根本不加载。一个在模型回答之前运行的路由器可以解决这个问题:
| | dsh-skill-router | LLM 评判路由器 | 手动加载 |
| 决策者 | 规则(确定性) | LLM / 嵌入 | 模型,每个步骤 |
| Token 成本 | 直到某条规则倒上之前为零 | 每个步骤 | 每个步骤 |
| 增加的延迟 | ~0 ms | 模型往返 | 不适用 |
| 可复现 | ✅ 相同消息 → 相同倒上 | ❌ 有变化 | ❌ 有变化 |
| 用户控制 | 编辑 YAML,搞定 | 提示它 | 祈祷它记得 |
为什么用规则而不是 LLM 评判? 速度、成本和可预测性。一条 URL 路径规则可以在微秒内将 feishu.cn/x/docx/ 路由到 lark-doc,对于免费,每次都是——而 skill-bartender 的路由表正是策略判断所在之处。这个插件是肌肉,不是大脑。
⚙️ 工作原理
- 挂钩 agent/pre-step,读取最新的用户消息。
- 将其与用户可编辑的规则进行匹配(~/.dsh/skill-router.yaml,捆绑的默认值在 default-policy.yaml 中)。首个匹配胜出。
- 命中时:将匹配到的技能正文作为 skill-invocation 消息注入该步骤——目录的“已加载,不要重新加载”规则会自动生效。
- 未命中:零干预。模型保持其正常的目录流程。
- 每个技能在每个会话中最多注入一次。
✨ 你能得到什么
| 能力 | 作用 |
| ⚡ 步骤前挂钩 | agent/pre-step——注入发生在模型开始思考之前 |
| 🧭 YAML 策略 | 用户可编辑的 ~/.dsh/skill-router.yaml;YAML 损坏时回退到捆绑的默认值 |
| 🔎 whenToUse 触发器 | 已安装技能的 whenToUse frontmatter 作为次级触发器(字面短语匹配,追加在 YAML 规则之后) |
| 🚀 零成本 | 无 LLM 裁判,无嵌入——仅规则(快速、免费、确定性) |
| ♻️ 每会话一次 | 按会话去重注入;没有技能正文会淹没上下文 |
| 🔗 配套 | 与 skill-bartender 的路由表和品味测试配合使用 |
⚡ 快速开始
dsh plugin --profile web add github:akqwpeter-prog/dsh-skill-router
然后重启正在运行的实例(配置文件包在启动时加载)。
验证:说“生成一张海报”——media-tools 会自动注入;说“这个截图帮我检查一下”——vision-review 会注入。没有规则匹配?模型就照常工作。
📸 实际效果
一张图:规则命中 → 技能在模型回答前注入;未命中 → 完全静默。
🧭 策略
~/.dsh/skill-router.yaml
rules:
- match: "(生成|画).{0,12}(图|海报|banner)"
pour: [media-tools]
- 按精确度排序:URL 路径路由优先,媒体、委派、工作流技能在原子技能之前。
- 首个匹配的规则胜出;pour 列出要加载的技能名称。
- YAML 损坏时回退到捆绑的默认值,绝不会中断会话。
- 把它当作数据来写:通过编辑 YAML 而非代码来改进匹配。
- 完整参考:docs/POLICY.md · 捆绑默认值:default-policy.yaml · 演练:docs/EXAMPLES.md。
🧪 已测试
集成测试套件(10 个用例)针对实时配置文件运行:注入、去重、零接触、拒绝透传、URL 路由、邮件与即时通讯消歧、误报防护。参见仓库中的 test/,以及 DESIGN.md 中的设计说明和 GOLD-TASKS.md 中的黄金任务列表。
🎯 范围与非目标
- 无 LLM 裁判,无嵌入:仅规则(快速、免费、确定性)。
- 不自动安装缺失的技能:这仍属于 skill-bartender 的隔离 → SkillSpector → 人工审批流程。
- 规则表即数据:通过编辑 YAML 而非代码来改进匹配。
- 已安装技能上的 whenToUse frontmatter 充当次级触发器(字面短语匹配,追加在 YAML 规则之后)。将其写为简短的触发短语;长篇散文永远不会匹配。如今的技能数据大多缺少该字段——skill-bartender 的品味测试可以回填它。
❓ 常见问题
当没有任何匹配时,它会消耗 token 吗?
不会。没有命中 → 零干预、零 LLM 调用。路由器只读取步骤中已有的文本并运行正则规则——微秒级,免费。
它与 skill-bartender 有何不同?
skill-bartender 是判断(哪个技能合适、何时保持沉默、如何安全安装)。本插件是执行(一个确定性的前置步骤钩子,负责倒出)。二者相辅相成;路由器也可独立使用。
我可以使用自己的规则吗?
可以——将 default-policy.yaml 复制到 ~/.dsh/skill-router.yaml 并编辑。
首个匹配胜出;损坏的 YAML 会回退到默认值。
它会在一个会话中重复倒出同一个技能吗?
不会——每个技能在每个会话中最多倒出一次,因此上下文永远不会泛滥。
🗺️ 布局
dsh-skill-router/
├── index.js # Cordis 插件:前置步骤钩子 + 倒出逻辑 ├── policy.js # 规则加载 / 匹配(已单元测试) ├── default-policy.yaml # 内置默认值(复制到 ~/.dsh/skill-router.yaml) ├── test/ # 策略单元测试 + 集成测试套件 ├── DESIGN.md / GOLD-TASKS.md # 设计说明 + 黄金任务 ├── docs/ │ ├── screenshots/how-it-works.png │ ├── POLICY.md / EXAMPLES.md │ ├── social-preview.png # 横幅(通过 scripts/ 重新生成) │ └── lang/README_ZH.md # 简体中文 ├── scripts/ │ ├── make-banner.py # 合成 docs/social-preview.png │ ├── make-diagram.py # 合成工作原理图 │ └── check-policy.mjs # 策略校验 ├── cordis.patch.yml / package.json # DSH 打包清单 └── LICENSE (MIT)
🤝 加入 DSH 插件生态
DeepSeek Harness 开发者预览版仍处于面向 Harness 开发者的测试阶段;核心插件和基础 API 将持续迭代。我们期待与全球开发者一起,在开源、开放、可复用、可组合的基础设施之上,共同探索智能的上限。
- dsh-plugin 主题
- 快速开始
- DeepSeek Harness 仓库
- 策略搭档:skill-bartender
本仓库带有 dsh-plugin 标签,并收录于 awesome-dsh-plugin 精选列表。欢迎提交 PR、issue 和翻译。
📄 许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
MJorgin/dsh-skill-router
按 YAML 规则前置匹配技能,命中才注入且零 Token 消耗
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份人设,统一管理多个 coding agent。
★ 991已汉化DSH
73.9
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
Agent 运行时手册Electricitysheep/dsh-handbook
DeepSeek Harness dsh 从 0 到 1 深度手册:安装/插件开发/性能调优/实测案例/同模型多…
★ 827已汉化DSH
68.7