dsh-plugin-skill-autoroute

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 挂载点。当收到用户指令时,流程如下:

  1. 读取 agent/pre-step 中即将进入模型的消息。
  2. 调用 Host 的 skills 服务(list())获取技能目录。
  3. 根据配置的词典、策略和评分算法,对技能进行打分排序。
  4. 根据模式注入合成消息:
    • brief:注入 notice 类型的消息,包含候选列表。
    • load:若冠军分数达标,注入 instructions 类型的消息,包含技能正文。
    • router:注入 instructions 类型的消息,强制调用 skill(name="...")。

已知限制

  • 只读全局技能层:插件仅读取 Host 的全局技能层,不包含 agent preset 私有层注册的技能。
  • 维护成本:路由逻辑是确定性的,依赖人工维护中英桥接词典和本地策略层。新增技能或新说法时需手动更新。
  • 显式优先:用户明确点名技能时优先级最高,会覆盖意图判断。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜