dsh-skill-loader:DeepSeek Harness 的按對話技能清單選擇器

前言

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 中可見的技能,這個插件提供了入口和持久化選擇狀態。

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

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

小夜