dsh-useof-skill-panel:在 DSH 裏記錄每輪 skill 用量,並在應用內裝卸更新

前言

用 DSH(DeepSeek Harness)跑智能體,遲早會裝一堆 skill:模型調用的工具包、你自己攢的 SKILL.md。裝完之後有兩個問題不好回答——這一輪對話到底觸發了哪幾個 skill,以及這些 skill 是從哪裝的、作者有沒有更新。模型不會每次都在回覆裏明說”我調了某某”,光靠對話記錄數不出來;裝卸 skill 也常要跳外部腳本或填字段。

下面介紹的 doctorpancode/dsh-useof-skill-panel 就是衝這兩件事來的。它是 DSH Desktop Beta 的 cordis 插件,fork 自 VDERR/dsh-echocat-skill-panel(保留署名與出處,v5.1.4),改動只有一處:刪掉了輸入框上方那條摘要橫欄。維護者是 doctorpancode,MIT 許可,許可證聲明版權歸 dsh-skill-report contributors。截至抓取時 GitHub 星標爲 0。

先說清楚定位:它不是模型,也不是 skill 市場,它是裝在 DSH 客戶端裏的一塊麪板,管”貴不貴、調了誰、能不能更新”。

這是做什麼的

一句話:統計每輪對話用到哪些 skill,並提供一個不離開應用的 skill 裝卸、更新管理器。

關鍵設計是判定不依賴模型自覺。插件從會話事件流推導本輪調了哪些 skill——模型自動調用、你手動輸入 /name、或者一個都沒用,三種情形都能報;模型忘了說自己調了什麼,照樣統計。界面有兩處,共用同一份數據:

  • 左欄一個常駐圖標,註冊在 sidebar.panellist 座位(order 60),點它就在中欄打開面板。
  • 中欄面板(main 座位),放完整報告和 skill 目錄。

原版還有第三個座位——輸入框上方的摘要橫欄(conversation.input.dock)。這個 fork 把組件和註冊一併刪除,所以那條橫欄根本不會被掛載。代價是:原橫欄是唯一能往輸入框裏插入 /技能名 的位置,一鍵插入技能名的功能沒有了。要看橫欄,啓用原版就行,兩個插件可以同時安裝、互不干擾。

核心功能

每輪 skill 用量

面板報告每輪對話實際用到的 skill,包括計數、來源(模型自動 / 手動 /name / 未使用)。原版橫欄上那四個計數器隨橫欄一起移除了,但計數本身保留在面板裏。

應用內裝卸 skill

報告右上角打開裝卸面板,把作者給的地址整個粘進來就行,比如:

https://github.com/owner/repo/tree/main/skills/my-skill

倉庫主頁、倉庫裏的文件夾鏈接、SKILL.md 鏈接、zip 直鏈、owner/repo、SSH 地址都認。host 自己判斷該克隆還是該下載,分支與子目錄從地址裏解析,不用你填三個框。也可以上傳 .md/.zip,或直接粘貼整篇 SKILL.md。

安全規矩是明寫的:同名不會靜默覆蓋,先備份再替換;裝錯了能刪,刪除是移進備份目錄,永不硬刪。

裝完能更新

3.0 的問題是地址用一次就丟(git 克隆還會被刪掉),作者發了修復你也無從判斷新舊,只能刪了重裝。4.0 的做法是安裝時把來源寫進該 skill 自己的 .echocat.json:地址、分支、子目錄、安裝時的 commit、一份內容指紋。於是:

  1. 卡片上多一行來源;遠端有新 commit 時標成「可更新」,點兩下即替換,舊版本先進備份。
  2. 判斷只跑一次 git ls-remote,不重新下載內容;來源固定在某 commit 上時不會被誤報成”有新版”。
  3. 你手改過這個 skill 的文件時,確認文案會明說”更新會覆蓋它們”——這是唯一會丟改動的場景。
  4. 手工裝的、或 2.x/3.0 裝的 skill 沒有這條記錄,卡片上給一個「標記來源」,填一次地址即納入更新。
  5. 中文顯示名不受影響,更新沿用你設的 display-name-zh。

順帶一提,插件自己也能檢查更新:面板頭部「檢查更新」問 npm 與 GitHub 誰更新(10 分鐘緩存,只有點擊才聯網),旁邊是 GitHub 發佈頁跳轉。查到新版本時按鈕帶強調色和小圓點,頭部直接寫出「可更新 x.y.z」;查不到和已是最新是兩句不同的話。

停用等於移出目錄

每個 skill 一個開關。停用會把目錄移出 DSH 監視的 skills 目錄——模型真的加載不到它,而文件一個不少,隨時一鍵啓用回來。已啓用與已停用分兩組列出,停用的卡片仍可改名、查來源、更新、刪除。

中文顯示

中文名寫進該 skill 自己的 meta.yaml(display-name-zh),面板就按中文顯示。安裝時能填,裝完在卡片上隨時能改,留空則清除。/名字 手勢仍然走 ASCII 代號,兩者互不干擾。

背景與界面

面板可以有背景,報告右上角「背景自定義」打開設置面板,左側實時預覽,預覽、取消、恢復默認是三件不同的事。四類樣式(液態、柔和漸變、純色、本地圖片)加六套低飽和預設。圖片接受 JPG/PNG/WebP(上限 8 MB),在本機縮到長邊 1920 以內,存在客戶端數據庫裏,不上傳、不改動 skill 數據、不碰宿主配置。設置跨本插件各表面共享、刷新後保留,但不宣稱跨設備同步——因爲它確實不跨。

界面寬度由宿主輸入框寬度推導(--dsh-composer-card-max-width 減 16px),永遠比輸入框窄,並共享同一條中軸。深淺兩套都驗過,文字色按 WCAG 算過對比度(正文 18.2:1、次級 6.4:1、元數據 5.3:1),prefers-reduced-motion、prefers-reduced-transparency、窄屏各有覆蓋。

安裝與啓用

插件沒有發佈到 npm,從 GitHub 拿源碼。安裝命令如下(PowerShell):

git clone https://github.com/Doctor-Pan-code/dsh-useof-skill-panel.git
cd dsh-useof-skill-panel
npm install            # 只裝兩個 optional peer,運行時並不需要

然後把倉庫目錄接進 profile(<DSH_HOME> 默認是 ~/.dsh):

# 1) 在 <DSH_HOME>/profiles/<你的 profile>/package.json 的 dependencies 里加:
#      "dsh-useof-skill-panel": "link:<本倉庫的絕對路徑>"
# 2) 在同文件的 dsh.profile.bundles 數組裏加:
#      "dsh-useof-skill-panel"
# 3) 再 pnpm install 一次

cordis.patch.yml 隨包提供,bundles 裏聲明它就會自動掛載,不需要手寫 patch 行。

兩點要注意:

  • 兩個 peerDependencies(@deepseek-ai/dsh-llm、@deepseek-ai/schemastery)標了 optional,由 DSH 運行時提供,npm 不會自己下載一份頂替宿主。
  • 裝完必須重啓 DSH Desktop Beta。host 半側在 boot 時快照進內存,而客戶端 bundle 每次開頁面重新拉取——只改客戶端刷新頁面就夠,改了 host 必須重啓。

手動安裝的四步、卸載回滾,以及五條會讓應用起不來的硬性約束,寫在倉庫的 安裝說明.md 裏,安裝前值得讀一遍。

典型用法

裝好之後的日常流程:

  1. 左欄點常駐圖標,打開中欄面板,看本輪報告裏模型調了哪些 skill,是自動調用還是你的 /name 手勢。
  2. 要加 skill 時,在裝卸面板粘貼作者地址,等 host 解析克隆或下載;裝完卡片上能看到來源行。
  3. 列表出現「可更新」標記時,點兩下替換,舊版本先進備份;確認彈窗會提示是否覆蓋你手改過的文件。
  4. 不常用的 skill 用開關停用,目錄移出監視範圍,需要時再啓用。
  5. 報告右上角「背景自定義」調面板外觀,預覽滿意了再保存。

開發側工具鏈:改客戶端後跑 node tools/build-client.mjs 重建 lib/client.js,npm test 跑十四個套件 1520 項斷言,node tools/preview.mjs 渲染真實面板截圖。lib/client.js 是入庫的構建產物,改了 src/client/ 必須在同一個 commit 裏重建。

適用場景與注意

適合誰:用 DSH Desktop Beta、裝了多個 skill 或給自己寫 skill 的人;想確認每輪實際調用情況、不想靠模型自覺的用戶。它是客戶端插件,分類在社區目錄的客戶端類目下,Star/StarHub 這類目錄頁是獨立站點,與 DeepSeek / 幻方無官方從屬關係。

需要明確的幾點:

  • 插件以當前 dsh 進程的權限運行,裝卸 skill 時會真實寫 skills 目錄、對遠端倉庫做 git clone 或下載。安裝前應自己檢查源碼與許可證(MIT,LICENSE 在倉庫根目錄),別把內部倉庫地址直接粘進面板。
  • fork 未發佈到 npm,版本檢查地址仍指向上游的 npm 包和 GitHub 發佈頁;這意味着「檢查更新」對本 fork 的判斷要打個折扣,以 GitHub 倉庫爲準。
  • 星標 0、無第三方使用記錄,行爲全靠其自帶測試背書(十四個套件 1520 項斷言)。功能細節與上游逐字一致這點有據可查,但生產環境接入前建議在測試 profile 裏先跑一輪。

結尾

這個插件解決的是兩件小事:每輪 skill 用量不再靠猜,裝卸更新不用離開應用。fork 與上游的關係寫在 README 裏,一字不改地保留了署名,也就保留了和原版並存的可能——想要摘要橫欄和一鍵插入技能名,啓用原版 dsh-echocat-skill-panel@5.1.3 即可。

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

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

小夜