DeepSeek Harness (DSH) 默認會在每個新會話中注入完整的技能目錄,即每個技能的名稱加上最長 500 字符的描述。隨着安裝的技能數量增加,這會佔用約 3K tokens 的持久上下文,而模型在實際運行中很少會觸達所有這些技能。dsh-skill-lazy 通過替換爲緊湊目錄和按需檢索機制,解決了這一上下文浪費問題。
核心功能¶
緊湊目錄注入
插件在每次智能體執行前,會將官方的 skill-catalog 消息重寫爲一個 <system-reminder> 塊。該塊僅包含技能名稱和一行摘要(默認長度 ≤ 40 字符)。目錄條目按調用頻率排序(未調用時回退到字母序),底層 source.entries 保持不變,不影響 Harness 自身的去重邏輯。
按需檢索 (skill_search)
插件註冊了 skill_search 工具,用於在需要時檢索完整描述。檢索基於關鍵詞、描述子串匹配以及中文 2-gram 重疊評分。結果按 MECE(相互獨立、完全窮盡)領域分組,並提供領域覆蓋報告。
MECE 檢查 (skill_mece_check)
在創建或評估技能前,可調用 skill_mece_check 工具。它會檢查新技能與現有技能之間的關鍵詞互斥性(含重疊比例)以及領域覆蓋的窮盡性,並給出創建新技能或擴展現有技能的建議。
成本審計 (cost_audit)
插件內置了 cost_audit Token 監控工具(2026-08-21 新增)。它會統計每個插件工具描述和技能目錄描述的字符/Token 成本,並與預算對比。默認預算爲工具描述 1500 tokens、技能目錄 800 tokens。單條工具描述超過 700 字符也會被標記建議精簡。
使用追蹤與主動提示
通過 tools/post-execute 鉤子,插件將每次 skill 工具的調用記錄到 usage.json(運行時數據,位於 .gitignore)。記錄的調用次數用於驅動目錄排序。此外,插件支持在用戶消息後注入主動匹配提示(Top-3 相關技能)。
安裝與配置¶
安裝
在終端中執行以下命令安裝插件:
dsh plugin --profile web add github:boomzikazita/dsh-skill-lazy
前置要求
DeepSeek Harness 需要安裝 @deepseek-ai/dsh-tools >= 0.1.0-rc.6(非內置依賴)。
配置
插件通過 cordis.patch.yml 掛載。如需自定義參數,可在配置中添加以下字段:
| 配置項 | 默認值 | 說明 |
|---|---|---|
catalogDescriptionMaxLength |
40 |
緊湊目錄中每個技能摘要的最大字符數。 |
topK |
6 |
skill_search 每個領域組返回的最大命中數(限制在 1–20 之間)。 |
sortByUsage |
true |
是否按調用頻率排序目錄條目。 |
matchThreshold |
6 |
主動匹配提示的最小相關性分數。 |
示例配置片段:
- insert:
- id: skill-lazy
name: 'dsh-skill-lazy'
config:
catalogDescriptionMaxLength: 40
topK: 6
典型用法¶
-
檢索技能
在需要詳細信息時,調用skill_search工具並傳入關鍵詞。工具會返回完整描述、使用次數以及按領域分組的搜索結果。 -
檢查領域覆蓋
在創建新技能前,先運行skill_mece_check,確保新技能不會與現有技能重疊,且覆蓋了必要的領域。 -
審計 Token 成本
定期查看cost_audit的輸出,識別哪些工具或技能描述超過了 1500(工具)或 800(技能)的 Token 預算,並進行精簡。
注意事項¶
- 插件依賴 DeepSeek Harness 的運行時環境,確保已安裝所需版本的
@deepseek-ai/dsh-tools。 usage.json是運行時生成的數據,不會被 Git 跟蹤。- 如果工具描述過長,會觸發審計警告,建議將詳細文檔移至技能自身的文檔目錄,而非注入描述中。
dsh-skill-lazy 通過犧牲一點初始檢索的延遲,換取了顯著的上下文 Token 節省,適合擁有大量技能庫的場景。更多細節可參考 GitHub 倉庫 或 技能目錄頁。