dsh-skill-eval:用 LLM judge 量化 DSH 技能觸發可靠性的評測插件

前言

在 DSH(DeepSeek Harness)裏,一個技能能不能被用上,很大程度取決於它的 description:模型根據技能目錄提示詞裏的 description,決定要不要調用某個技能。description 寫得過窄,匹配的查詢不會觸發該技能(欠觸發);寫得過寬,不相關的查詢也會被觸發(過觸發)。

這兩種問題平時只能手工試幾條查詢,憑感覺判斷,結果既不可復現,也難以比較。dsh-skill-eval 把這件事變成可復現的評測:用一個 LLM judge 完整復現官方技能目錄提示詞,逐條判斷測試查詢是否應觸發目標技能,再彙總成指標。

這是什麼

dsh-skill-eval 是一個 Skill-trigger 評測插件,由 renjianguojinqianfan 維護,MIT 許可證,當前版本 0.1.0,要求 Node >= 20。

它解決的問題很具體:衡量一個技能的 description 把匹配查詢路由到該技能的可靠程度,並用數字量化欠觸發和過觸發的程度。

工作原理

插件運行時分四步:

  1. 枚舉當前會話中模型可調用的技能(ctx.skills.snapshot)。
  2. 逐字復現官方目錄消息,包括 <system-reminder><available_skills>,以及經過歸一化、截斷、轉義處理的 description。
  3. 對每條測試查詢,讓 judge 模型判斷目標技能是否應被觸發,強制輸出單行 YES/NO
  4. 與期望標籤對比,彙總指標。

彙總的指標包括 accuracy、precision、recall、假陽率、假陰率和混淆矩陣。

爲了保證復現的目錄消息不隨 DSH 升級悄悄偏離,插件自帶目錄保真 fixture,鎖定官方 dsh-tool-skill@0.1.0-rc.6 模板。DSH 升級後,可以從本地官方安裝刷新 fixture 並審查 diff:

node scripts/refresh-catalog-fixture.mjs <path-to-dsh-tool-skill/lib/index.js>

安裝與啓用

安裝命令須在倉庫根目錄(repo root)執行:

dsh plugin --profile web add ./dsh-skill-eval

然後在 profile/overlay 的 cordis.patch.yml 中配置 judge 模型路由:

- id: skill-eval
  config:
    provider: <provider-id>
    model: <model-name>

注意,這裏的 provider 必須已註冊在 DSH LLM runtime 中,也就是你的 profile 聊天所用的同一個 runtime。插件啓動時會校驗該路由,provider 未註冊時給出告警。

編寫測試用例

測試用例是一個 JSON 數組,每項包含 query 和期望標籤 should_trigger

[
  { "query": "add a tool to the harness that persists across restarts", "should_trigger": true },
  { "query": "help me write a Python script for this CSV", "should_trigger": false }
]

category 字段可選,目前預留未來使用。

典型用法

斜槓命令:

/skill-eval <skill-name> [test-file]

模型可調用工具:

run_skill_eval(skill_name="<skill-name>", test_file="examples/dsh-plugin-eval.json")

test-file 參數可省略,默認使用插件包內的 examples/dsh-plugin-eval.json;相對路徑按插件包目錄解析。

如果想比較不同 judge 模型的判斷差異,直接更換配置裏的 provider/model 再跑一遍即可。

開發與測試

插件自帶一套開發和測試腳本:

npm run check     # 所有 JS 文件語法檢查
npm test          # node:test,含官方目錄保真與 mock ctx 測試
npm run smoke     # 51 條純函數冒煙斷言
npm pack --dry-run  # 檢查發佈文件列表
bash scripts/mount-smoke.sh  # 在臨時 home 中做真實 DSH 掛載冒煙

適用場景與注意

適合誰:

  • 給 DSH 編寫或維護技能、想系統性驗證 description 路由質量的開發者。
  • 想在提交前發現欠觸發/過觸發問題,而不是等上線後靠用戶碰運氣。

使用時注意三點:

  1. 評測結果衡量的是 judge 模型對給定 description 的路由準確率,而不是目標技能本身的準確率。換 judge 模型,結果可能不同。
  2. judge 的 provider 必須已註冊在 DSH LLM runtime,否則插件啓動時會告警。
  3. 插件以當前 dsh 進程的權限運行,安裝前應檢查源碼與許可證(本項目爲 MIT)。

結尾

對寫 DSH 技能的人來說,dsh-skill-eval 提供的是一類此前缺失的東西:一個可復現、可比較的數字,告訴你 description 到底把多少匹配查詢正確路由到了技能上。

DSH 的理念是「一切皆插件」,社區維護了一個獨立的插件目錄(與 DeepSeek、幻方無官方從屬關係)。項目入口如下:

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

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

小夜