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

目录页:未提供地址。

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

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

小夜