前言¶
在 DSH(DeepSeek Harness)裏,一個技能能不能被用上,很大程度取決於它的 description:模型根據技能目錄提示詞裏的 description,決定要不要調用某個技能。description 寫得過窄,匹配的查詢不會觸發該技能(欠觸發);寫得過寬,不相關的查詢也會被觸發(過觸發)。
這兩種問題平時只能手工試幾條查詢,憑感覺判斷,結果既不可復現,也難以比較。dsh-skill-eval 把這件事變成可復現的評測:用一個 LLM judge 完整復現官方技能目錄提示詞,逐條判斷測試查詢是否應觸發目標技能,再彙總成指標。
這是什麼¶
dsh-skill-eval 是一個 Skill-trigger 評測插件,由 renjianguojinqianfan 維護,MIT 許可證,當前版本 0.1.0,要求 Node >= 20。
它解決的問題很具體:衡量一個技能的 description 把匹配查詢路由到該技能的可靠程度,並用數字量化欠觸發和過觸發的程度。
工作原理¶
插件運行時分四步:
- 枚舉當前會話中模型可調用的技能(
ctx.skills.snapshot)。 - 逐字復現官方目錄消息,包括
<system-reminder>、<available_skills>,以及經過歸一化、截斷、轉義處理的 description。 - 對每條測試查詢,讓 judge 模型判斷目標技能是否應被觸發,強制輸出單行
YES/NO。 - 與期望標籤對比,彙總指標。
彙總的指標包括 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 路由質量的開發者。
- 想在提交前發現欠觸發/過觸發問題,而不是等上線後靠用戶碰運氣。
使用時注意三點:
- 評測結果衡量的是 judge 模型對給定 description 的路由準確率,而不是目標技能本身的準確率。換 judge 模型,結果可能不同。
- judge 的 provider 必須已註冊在 DSH LLM runtime,否則插件啓動時會告警。
- 插件以當前 dsh 進程的權限運行,安裝前應檢查源碼與許可證(本項目爲 MIT)。
結尾¶
對寫 DSH 技能的人來說,dsh-skill-eval 提供的是一類此前缺失的東西:一個可復現、可比較的數字,告訴你 description 到底把多少匹配查詢正確路由到了技能上。
DSH 的理念是「一切皆插件」,社區維護了一個獨立的插件目錄(與 DeepSeek、幻方無官方從屬關係)。項目入口如下: