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

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

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

小夜