dsh-skill-lazy: DSH 技能目錄懶加載與按需檢索

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

典型用法

  1. 檢索技能
    在需要詳細信息時,調用 skill_search 工具並傳入關鍵詞。工具會返回完整描述、使用次數以及按領域分組的搜索結果。

  2. 檢查領域覆蓋
    在創建新技能前,先運行 skill_mece_check,確保新技能不會與現有技能重疊,且覆蓋了必要的領域。

  3. 審計 Token 成本
    定期查看 cost_audit 的輸出,識別哪些工具或技能描述超過了 1500(工具)或 800(技能)的 Token 預算,並進行精簡。

注意事項

  • 插件依賴 DeepSeek Harness 的運行時環境,確保已安裝所需版本的 @deepseek-ai/dsh-tools。
  • usage.json 是運行時生成的數據,不會被 Git 跟蹤。
  • 如果工具描述過長,會觸發審計警告,建議將詳細文檔移至技能自身的文檔目錄,而非注入描述中。

dsh-skill-lazy 通過犧牲一點初始檢索的延遲,換取了顯著的上下文 Token 節省,適合擁有大量技能庫的場景。更多細節可參考 GitHub 倉庫 或 技能目錄頁。

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

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

小夜