前言¶
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