dsh-skill-rag:可配置的 DSH Skill 發現與檢索

前言

DeepSeek Harness(DSH)通過 Skill 擴展智能體能力。Skill 庫變大之後,若每次對話都把完整目錄塞進提示詞,上下文會被佔滿,模型也更容易在無關 Skill 裏打轉。另一種做法是硬改內置 skill 加載器,但會牽動 instructions、resources 和 procedural-learning 等既有鏈路。

下面介紹社區插件 dsh-skill-rag(維護者 Kosello,分類:工作流)。它在不改動原有 skill 工具與加載流程的前提下,提供可選的 Skill 發現方式:保留 DSH 默認全量目錄、本地關鍵詞檢索,或關鍵詞加向量混合檢索。

這是什麼

dsh-skill-rag 是面向 DeepSeek Harness 的可選 Skill 發現插件。一句話定位:讓完整 Skill 庫可檢索,又不必在每個 prompt 裏羅列全部 Skill;原生的 skill loader、說明、資源與相關工具保持原樣。

  • 目錄頁:https://www.skillhub.cn/plugins/Kosello/dsh-skill-rag
  • 源碼:https://github.com/Kosello/dsh-skill-rag
  • 許可證:MIT(見倉庫 package.json,當前版本 0.2.0)

三種工作模式

插件通過 cordis.patch.yml 裏 skill-rag 行的 config.mode 切換行爲。新裝默認是 catalog,無需 API Key、模型服務或外網。

模式 作用 Embedding 索引
catalog 標準模式,不用 RAG;沿用 DSH 自帶全量目錄與 loader 無 無
keyword 本地 SQLite FTS5/BM25,配合精簡後的 Skill 目錄 無 本地關鍵詞索引
hybrid 關鍵詞 + 語義檢索 Jetson、Google、OpenRouter 或 OpenAI 兼容端點 帶版本號的向量 generation

hybrid 需顯式配置;catalog 不會註冊 skill_search、不會建索引、不會初始化 embedding 提供商。

環境與依賴

資料中寫明的運行條件如下:

  • DSH 0.2.1-rc.2(README 中的 tested target)
  • Node >=22.19,且需原生 node:sqlite
  • hybrid 模式下需任選一種 embedding 來源:本機 TensorRT manager(默認 http://127.0.0.1:8110)、Google Gemini API Key、OpenRouter API Key,或 OpenAI 兼容的 embeddings 端點與模型
  • 不需要額外 SDK 或獨立向量數據庫

安裝與啓用

從已發佈的 Git 倉庫安裝(命令來自 README 原文):

dsh plugin --profile web add github:Kosello/dsh-skill-rag

若使用本地 checkout,需先 npm ci、npm run verify,再:

dsh plugin --profile web add "$PWD"

包聲明瞭一個 bundle 行(skill-rag)和可選的 browser client;客戶端會在 Settings → Skill discovery 註冊配置入口,無需改 DSH shell。

重啓 harness 前,可先確認 composition:

dsh --profile web --dump-config | grep -A4 'id: skill-rag'

然後按你平時的服務方式重啓 harness。若 agent 正在該服務內運行,宜用外部延遲重啓,避免打斷當前 turn。

配置要點

配置寫在 profile 的 cordis.patch.yml 中 skill-rag 條目;與設置面板編輯的是同一份契約。密鑰只寫環境變量名,不寫明文;設置面板只報告變量是否存在,不展示、不寫入 secret 值。

零配置默認(catalog)

- id: skill-rag
  config:
    mode: catalog

本地關鍵詞(keyword)

- id: skill-rag
  config:
    mode: keyword
    coreNames: []              # user/project DSH skills are always retained
    autoIndex: false

啓用 skill_search 與精選目錄;不構造 embedding 提供商,也不發起 embedding 請求。

混合檢索(hybrid)示例

本機 Jetson manager:

- id: skill-rag
  config:
    mode: hybrid
    embedding:
      provider: jetson
      model: Qwen3-Embedding-0.6B-TensorRT
      baseURL: http://127.0.0.1:8110
      dimensions: 1024
      timeoutMs: 15000
    index:
      content: excerpts
    privacy:
      allowRemoteEmbeddings: false
    autoIndex: true

Google Gemini、OpenRouter、OpenAI 兼容端點等完整 YAML 見倉庫 README;遠程 embedding 需 privacy.allowRemoteEmbeddings: true,且沒有自動本地到雲端的 fallback——提供商失敗時由 onEmbeddingError 決定退回帶標籤的關鍵詞結果(默認)或嚴格報錯。

索引 generation 與 provider、model、dimensions、內容策略等綁定;換模型或策略會新建 generation,舊的可繼續服務直到替換完成。reindex 必須帶 --confirm 纔會真正重建;模型側工具不能改 provider、憑證或觸發 rebuild。

典型用法

模型可通過 skill_search 檢索,例如:

{"query":"render a short video from a photograph on my desktop", "limit":5}

返回的是 Skill 名稱與路由摘要,不是完整 instructions;模型仍用未改動的 skill 工具加載原 Skill。搜索與索引不會僞造成功的 skill 結果,read-before-write 與 self-evolve reviewer 仍基於真實加載。

人類可用 slash 命令維護索引與診斷:

/skill-search status
/skill-search models
/skill-search test
/skill-search preview
/skill-search reindex            # prints the data-consent disclosure
/skill-search reindex --confirm  # starts the rebuild
/skill-search cancel

數據出站說明

  • catalog:無額外出站。
  • keyword:無;僅本地 SQLite。
  • hybrid 本機(Jetson / loopback):Skill 卡片與查詢留在本機。
  • hybrid 遠程:僅發送配置允許的卡片內容與搜索查詢;metadata 含名稱、描述、觸發指引等,excerpts 還含標題與短引言;路徑與全文不在卡片內。

適用場景與注意

適合希望在 DSH 裏擴大 Skill 庫、又不想每次對話塞滿目錄的開發者;需要語義匹配時可 opt-in hybrid,只想離線關鍵詞時可只用 keyword;想完全保持 stock 行爲則保持 catalog 即可。

DSH 社區插件目錄(如 SkillHub)是獨立生態站點,與 DeepSeek / 幻方無官方從屬關係。插件以當前 dsh 進程權限運行;安裝前請自行審閱源碼與 MIT 許可證,並按 README 配置環境變量與隱私項。

結尾

dsh-skill-rag 把 Skill 發現做成可配置、可關閉的插件層:默認不打擾現有 harness,需要時再打開本地或混合檢索,並仍通過原生 skill 工具完成加載。

  • 目錄頁:https://www.skillhub.cn/plugins/Kosello/dsh-skill-rag
  • GitHub:https://github.com/Kosello/dsh-skill-rag
羽毛球分组比赛记分
小程序二维码

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

小夜