dsh-agent-plugin-market:用 Git 倉庫管理 DSH 的 agent 技能與 hooks

前言

在 DSH 中做智能體擴展時,技能、插件清單和可選 hooks 往往來自不同倉庫和不同目錄。需要在 DSH 中從 Git 倉庫加載 Codex / Claude 技能,並在設置頁統一管理市場、插件、技能和工作區覆蓋時,可以使用 DSH 插件 dsh-agent-plugin-market

它由 Diluka 維護,許可證爲 MIT。下面介紹它的能力、安裝方式和典型用法。

這是什麼

dsh-agent-plugin-market 是一個 DSH 插件。它把 Git 倉庫作爲 agent 內容市場:克隆市場倉庫,識別市場清單和插件清單,加載有效技能,並在設置頁提供管理入口。

可以把它看作 DSH profile 中的一個市場插件。它會在當前 DSH 進程權限內訪問市場倉庫、技能目錄和本機配置,因此安裝前建議檢查源碼、許可證和倉庫來源。

插件基本信息如下:

name: dsh-agent-plugin-market
owner: Diluka
license: MIT
version: 0.5.1-dsh.0.1.1-rc.2

核心功能

先接入市場,再管理插件和技能。這個插件提供以下能力:

  • 將 Git 倉庫作爲 agent 內容市場,克隆市場倉庫並發現技能。
  • 識別市場清單,路徑包括:
.agents/plugins/marketplace.json
.claude-plugin/marketplace.json
.cursor-plugin/marketplace.json
.github/plugin/marketplace.json
marketplace.json
  • 識別插件清單,路徑包括:
.codex-plugin/plugin.json
.claude-plugin/plugin.json
plugin.json
  • 已安裝插件的有效技能默認啓用;根 skills/ 中未被插件引用的獨立技能默認關閉,可單獨或按市場啓用。
  • 支持全局默認和工作區覆蓋。工作區保存稀疏啓用/禁用覆蓋值,缺少覆蓋時繼承全局配置。
  • 安裝插件只保存安裝狀態,不復制市場文件;技能 resourceBase 指向克隆後的技能目錄,實現原地加載。
  • 註冊代理工具,用於查看狀態和寫入工作區覆蓋:
agent_market_info
agent_market_set_plugin
agent_market_set_skill
  • 支持可選 Codex hooks。啓用需要已安裝插件、設置頁雙重確認、配置指紋審批,以及可用的 @deepseek-ai/dsh-hooks-codex bridge。
  • 設置頁添加「技能與掛鉤」區段,提供市場、插件、技能和 hooks 的管理及目錄篩選。
  • Host RPC 以 loopback authority 註冊;客戶端在非本機連接時拒絕顯示市場操作。

相關配置項如下:

source
resourceBase

source 用於市場清單中指向插件目錄;resourceBase 是技能加載時使用的資源基目錄。

安裝與啓用

先安裝插件包,再重啓 DeepSeek Harness:

dsh plugin --profile web add github:Diluka/dsh-agent-plugin-market

重啓後,進入設置 -> 技能與掛鉤,管理市場、插件和 skills。

依賴包如下:

@deepseek-ai/dsh-client-ui-primitives
@deepseek-ai/dsh-hooks-codex

其中 @deepseek-ai/dsh-client-ui-primitives 是運行時 peer dependency,由 DSH profile 提供;@deepseek-ai/dsh-hooks-codex 是 optional peer dependency。bridge 缺失時,設置頁顯示安裝命令並禁用 hooks 開關。

典型用法

下面按常見操作順序介紹。

添加市場

在設置頁輸入 SSH 或 HTTPS Git 倉庫地址,可選擇默認分支、分支、標籤或 commit。

添加後,插件會按已識別的清單和 skills/ 發現可用內容。

安裝插件

市場清單的每項插件由 source 指向市場內的插件目錄;未聲明 source 時使用倉庫根目錄。

更新市場

Host 啓動時會對默認分支和分支引用執行:

git pull --ff-only

標籤和 commit 是固定引用,更新會跳過。

管理技能

已安裝插件的有效技能默認啓用。根 skills/ 中未被插件引用的技能需要先顯式啓用,可逐項或整組切換。

工作區覆蓋

選擇工作區後,使用三態菜單:

繼承全局
僅此工作區啓用
在此工作區禁用

工作區保存稀疏覆蓋值;沒有某個覆蓋鍵時繼承全局配置。

管理 hooks

bridge 可用時,第一次點擊開關只顯示確認;第二次點擊才保存當前配置指紋並嘗試掛載。

具體支持哪些事件點以及非 command hook 的執行語義,由所安裝的 bridge 和協議版本決定,不在本插件中硬編碼。

代理工具

代理可調用:

agent_market_info

查看市場狀態。也可調用:

agent_market_set_plugin
agent_market_set_skill

寫入工作區三態覆蓋。

代理工具只暴露讀取和工作區覆蓋寫入,不執行市場添加、刪除、Git 更新、全局安裝/卸載或 hooks 授權。home 路徑會話會被 scoped restriction 隱藏這些工具;若運行時未能隱藏,執行時也會拒絕。

適用場景與注意

適合需要在 DSH 中從 Git 倉庫統一加載 agent 技能,並對不同工作區保留不同啓停狀態的開發者。

注意以下邊界:

  • 插件以當前 DSH 進程權限運行;安裝前檢查源碼、許可證和倉庫來源。
  • 插件路徑必須解析在市場根目錄內;.dsh 目錄和配置文件不能是符號鏈接;用戶 home 目錄不作爲工作區覆蓋根。
  • 當前 hooks 配置審批仍爲全局配置。
  • Host RPC 以 loopback authority 註冊;客戶端在非本機連接時拒絕顯示市場操作。

結尾

dsh-agent-plugin-market 將市場倉庫、技能加載、工作區覆蓋和可選 hooks 收斂到 DSH 設置頁中。倉庫地址如下:

https://github.com/Diluka/dsh-agent-plugin-market

目錄頁:未提供地址。

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

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

小夜