DeepSeek Harness (DSH) 的插件生态强调“一切皆插件”。在现有的架构中,skill 工具通常是被动触发:模型需要自己意识到去查询目录,或者依赖用户明确点名。这导致路由决策往往不可靠。
dsh-plugin-skill-autoroute 插件解决这一问题。它在每条用户指令到达时,执行一次确定性的路由扫描,不依赖 LLM 进行决策。它从 Host 的实时技能目录中检索候选,并注入恰好一条路由提示,供模型执行。
核心能力¶
该插件实现了一套确定性的路由逻辑,主要包含以下特性:
- 零 LLM 调用:路由算法基于本地字典和策略,不消耗额外的模型调用。
- 实时扫描:扫描 Host 的
skills服务目录,获取当前可见的技能列表。 - 单次注入:每次用户指令只注入一条路由消息,避免上下文污染。
- 三种模式:
brief(默认):注入 Top-N 候选技能的简报。load:自动注入冠军技能的SKILL.md正文。router:强制调用指定的 router-skill。
安装¶
推荐使用 plugin_manager 安装:
plugin_manager install_bundle → target: link:<path-to-this-repo>
配置与使用¶
配置文件位于 <DSH_PROFILE_DIR>/cordis.patch.yml。修改后需要通过 plugin_manager 切换插件状态以生效。
- id: dsh-plugin-skill-autoroute
config:
mode: brief # off | brief | load | router
routerSkills: ['skill-selector', 'skill-router']
candidates: 3 # 简报中展示的候选数量
minScore: 0.28 # 候选入选门槛
loadMinScore: 0.55 # load 模式下加载正文的门槛
debug: true # 开启日志
关键配置项¶
| 字段 | 作用 |
|---|---|
mode |
决定注入的内容形式。brief 输出列表,load 输出正文,router 输出调用指令。 |
candidates |
简报模式下的 Top-N 数量。 |
routerSkills |
router 模式下强制调用的技能列表,取第一个已安装的技能。 |
lexicon |
中英桥接词典,解决中文指令与英文技能名不匹配的问题。 |
rulesEnabled |
是否启用本地策略层(同域优先、元技能降权等)。 |
工作原理¶
插件挂载在 agent/pre-step 挂载点。当收到用户指令时,流程如下:
- 读取
agent/pre-step中即将进入模型的消息。 - 调用 Host 的
skills服务(list())获取技能目录。 - 根据配置的词典、策略和评分算法,对技能进行打分排序。
- 根据模式注入合成消息:
- brief:注入
notice类型的消息,包含候选列表。 - load:若冠军分数达标,注入
instructions类型的消息,包含技能正文。 - router:注入
instructions类型的消息,强制调用skill(name="...")。
- brief:注入
已知限制¶
- 只读全局技能层:插件仅读取 Host 的全局技能层,不包含 agent preset 私有层注册的技能。
- 维护成本:路由逻辑是确定性的,依赖人工维护中英桥接词典和本地策略层。新增技能或新说法时需手动更新。
- 显式优先:用户明确点名技能时优先级最高,会覆盖意图判断。