前言¶
DeepSeek Harness(dsh)允許通過插件擴展智能體行爲,也允許在會話中加載技能清單。默認情況下,沒有做過選擇的對話會保持 dsh 默認行爲,即全部載入。如果一次只想讓某些技能進入當前對話,就需要一個按對話控制的入口。
dsh-skill-loader 是 dsh 的一個插件。它在新建對話的開始頁增加「技能清單」選擇器,讓你決定本次對話載入哪些技能的清單條目。未勾選的技能在該對話中不可用。
這是什麼¶
dsh-skill-loader 的倉庫位於 kezboardpj/dsh-skill-loader,許可證爲 MIT。它解決的是 dsh 會話中技能可見性的問題:在開始對話前選擇技能清單,而不是在對話開始後通過外部配置逐個排除。
核心功能¶
開始頁增加「技能清單」chip¶
在新建對話的開始頁,「工作目錄」「agent 預設」chip 旁會出現「技能清單」chip。它只在當前會話處於 blank(未開始對話)時顯示;對話開始後自動消失。
實現上,它不是聲明一個新的內置槽位,而是在開始頁該行內追加自己的 chip 節點,並用 react-dom 渲染。
按勾選載入技能¶
勾選某個 skill 後,該 skill 的清單條目會載入本對話;模型看到的 <available_skills> 只包含勾選的技能。
未勾選的 skill 在本對話不可用。模型目錄、/名稱 手勢與 skill 工具都會拒絕調用未選中的技能。
沒有做過選擇的對話保持 dsh 默認行爲,即全部載入。
選擇狀態持久化¶
選擇狀態寫入 dsh settings 的 skill-loader 命名空間,文件爲 $DSH_HOME/settings.yaml。刷新或重啓後狀態仍然準確。
命令¶
/skill-select <name1,name2,...>:將本對話的技能清單設爲這些技能;逗號分隔。無參數時清空選擇。
/skill-unarchive <sessionId1,...>:取消歸檔指定會話,使其重新出現在側邊欄。
接管與攔截¶
插件通過宿主 agent/pre-step 接管技能目錄,並通過 tools/pre-execute 攔截未選技能的 skill 調用。
安裝與啓用¶
下面以 web profile 爲例。如果你使用其他 profile,把命令中的 web 替換爲對應 profile 名。
從 GitHub 安裝:
dsh plugin --profile web add https://github.com/kezboardpj/dsh-skill-loader.git
從本地目錄安裝:
dsh plugin --profile web add ./dsh-skill-loader
安裝後重啓該 profile 的 dsh。已安裝插件不做熱加載。
注意:dsh plugin add 不能處理含空格的路徑。如果本地路徑包含空格,需要直接編輯 profile 的 package.json 依賴和 dsh.profile.bundles,然後運行:
pnpm install
典型用法¶
1、新建一個 dsh 對話。
2、在開始頁點擊「技能清單」chip。
3、勾選本次對話要載入的 skill。
4、開始對話。此時模型只能看到已勾選技能的清單條目。
5、如果運行中想調整清單,可以輸入:
/skill-select <name1,name2>
6、如果要清空當前對話的技能選擇:
/skill-select
7、如果要讓某個已歸檔會話重新出現在側邊欄:
/skill-unarchive <sessionId1>
從 0.1 升級到 0.2¶
如果之前安裝的是 0.1,升級時建議保持 dsh 停止,按下面步驟操作。
1、運行 scripts/repair-v01-logs.mjs,修復被 0.1 寫壞的歷史會話日誌。
2、如果 0.1 時期使用本地目錄 link 安裝,請改爲從 GitHub 安裝。0.2 的宿主端有依賴,裸目錄可能無法解析。
3、進入你的 profile 目錄,執行:
pnpm update dsh-skill-loader
4、重啓 dsh。
升級後,修復過的舊會話中 0.1 時期的選擇不再生效,會回到默認的「全部載入」。需要重新勾選。
0.2 宿主端新增了 @deepseek-ai/dsh-settings 與 @deepseek-ai/schemastery 依賴;package.json 中還聲明 client 注入 @deepseek-ai/dsh-client-runtime、@deepseek-ai/dsh-client-locale、@deepseek-ai/dsh-client-connection。
適用場景與注意¶
適合以下情況:
- 你在 dsh 中維護了多個技能,但希望不同對話只載入相關技能。
- 你希望在新建對話時快速選擇清單,而不是進入全局配置。
- 你需要通過
/skill-select快速清空或切換當前對話技能。 - 你需要恢復側邊欄中缺失的已歸檔會話。
使用前注意:
- 插件以當前 dsh 進程權限運行,會接管技能目錄、攔截
skill調用,並寫入$DSH_HOME/settings.yaml。安裝前建議檢查源碼、依賴與許可證。 - 當前版本許可證爲 MIT。
- 安裝後需要重啓對應 profile 的 dsh。
- 路徑含空格時,按上文的手動 profile 配置方式處理。
鏈接¶
GitHub 倉庫:
https://github.com/kezboardpj/dsh-skill-loader
如果只需要按對話控制 dsh 中可見的技能,這個插件提供了入口和持久化選擇狀態。