dsh-skill-fuzzy:DeepSeek Harness Web GUI 的 Codex 风格模糊技能搜索

DSH Web GUI 的内置 / 技能菜单目前仅支持名称前缀匹配。当技能名称较长或包含多个关键词时,这种匹配方式效率较低。dsh-skill-fuzzy 插件为 DSH Web 客户端引入了 Codex 风格的模糊搜索能力,支持通过技能名称或描述进行更灵活的检索。

插件定位与机制

这是一个 Web 客户端插件,由 ch1bug 维护,采用 MIT 许可证。它通过修补内置 / 技能源的 candidates() 方法,在本地对技能列表进行过滤和排序。插件在浏览器端运行,不依赖后端接口。

核心功能

插件实现了以下匹配与排序逻辑:

  1. 技能名称匹配:移植自 Codex 的 fuzzy-match 算法。规则为贪婪、不区分大小写的有序子序列匹配,并给予字符串开头一定分数加成(分数越小越靠前,前缀命中优先)。
  2. 描述匹配:仅支持连续、不区分大小写的子串匹配。经过测试,分散的子序列匹配会在长描述中产生过多噪声,因此改为连续匹配。
  3. 排序优先级:优先匹配技能名称,其次是分数升序排列,最后保持稳定顺序。
  4. 空查询处理:输入空查询时,返回完整的技能列表,不会退化为前缀匹配行为。

安装与启用

  1. 执行安装命令:
    dsh plugin --profile web add github:ch1bug/dsh-skill-fuzzy
  1. 重启 dsh web 服务。
  2. 在浏览器中硬刷新 Web GUI 页面(引导清单在页面加载时注入,刷新可确保插件生效)。
  3. 输入 / 打开技能菜单。

典型用法示例

假设存在一个名为 diagnosing-bugs 的技能,通过以下查询均可找到该技能:

  • /diag:匹配 diagnosing-bugs(名称前缀)。
  • /bug:匹配 diagnosing-bugs(名称子串)。
  • /bu:匹配 diagnosing-bugs(名称连续子串)。
  • /regression:匹配 diagnosing-bugs(描述中的关键词)。

技术实现与开发

该插件纯逻辑位于 lib/ 目录,算法源码移植自 OpenAI Codex 的 codex-rs/utils/fuzzy-match。测试套件位于 tests/ 目录,通过 node --test 运行。客户端代码通过 lib/client.js 单独打包注入。

适用场景与注意事项

适合需要在技能库较大时快速定位技能的开发者。由于插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证。

插件源码与文档详见:GitHub

羽毛球分组比赛记分
小程序二维码

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

小夜