dsh-skills-manager:在 DSH 侧栏管理 Agent Skills

前言

在 DeepSeek Harness(DSH)里跑智能体时,Agent Skills 往往分散在项目目录与用户目录两处:项目内常见 <projectRoot>/.dsh/skills,用户级则在 $DSH_HOME/skills(未设置 DSH_HOME 时为 ~/.dsh/skills)。手工维护 SKILL.md、从 GitHub 拉取公开技能、核对格式与启用方式,容易打断日常开发节奏。

下面介绍社区插件 dsh-skills-manager(维护者 Aero123421,分类为客户端)。它把列表、预览、创建、编辑、删除、启用/禁用、校验,以及从 GitHub 安装与更新,集中到 DSH Web 侧栏的 SKILLS 入口,同时覆盖项目与用户两套根目录。

这是什么

dsh-skills-manager 是 DSH 的 Web 客户端插件:在左侧边栏增加 SKILLS 管理界面,对接上述两个 skills 根目录。实现为无构建步骤的 Host/Client JavaScript,依赖固定的 yaml 与官方 skills@1.7.4;CLI 仅在用户明确发起「分阶段安装」时使用,不作为任意 shell 执行器。

插件在 SkillHub 目录页 可查,源码与文档在 GitHub:Aero123421/dsh-skills-manager。当前资料中的版本号为 v0.5.0,许可证 MIT。

环境与依赖

使用前需满足:

  • 已安装 DeepSeek Harness(dsh),且使用带 web 的 profile(安装命令中带 --profile web)。
  • Node.js 版本为 ^22.20.0 或 >=24.0.0(与插件内固定的 skills CLI 要求一致)。

核心功能

侧栏管理与双作用域

从 SKILLS 打开管理页;界面语言跟随 DSH 语言设置(资料中写明支持日语、英语,具体以你当前 DSH 配置为准)。可先输入项目路径并 打开;在支持目录选择的环境下可使用 Host 提供的参照按钮。

  • 项目:<projectRoot>/.dsh/skills
  • 用户:$DSH_HOME/skills(未设置则为 ~/.dsh/skills)

列表支持按名称、说明搜索;点选条目可查看步骤正文、保存位置与调用相关设置。

创建、编辑与并发控制

通过 新建/编辑 修改 frontmatter 与正文,可做形式校验并保存。新建不会静默覆盖同名技能;更新、切换、删除仅在与当前加载版本一致时执行。若返回冲突(HTTP 409),需核对内容后重新加载再操作。

与 Agent 相关的元数据方面:资料写明支持 disable-model-invocation(控制是否由模型调用)、user-invocable(斜杠命令);未知的 metadata 与注释会保留。

未保存草稿会按项目与格式写入浏览器本地存储;保存或明确丢弃后清除。存储不可用或空间不足时无法保留。

安装技能

安装技能 提供两类入口:

  1. 本地文件夹:指定 DSH Host 上的目录(含 SKILL.md)或单个 .md 文件;会复制同捆资源,且不覆盖已有安装目标。
  2. npx skills:粘贴 npx skills add 形式命令,预览公开 GitHub 源上的候选技能后勾选安装。

npx skills 侧当前为官方 CLI 的 子集:主要支持 add 与公开 GitHub 源;支持 --skill / -s(可多选、'*')、--copy、-y / --yes,以及 #ref 指定 Git 引用。-g / --global 仅在界面已选 用户 作用域时接受。不支持把命令当作 shell 管道执行;本地路径应走本地文件夹标签页。

预览 token 有效期为 10 分钟;部分名称冲突时成功与失败分项展示,整批并非单一事务。

从 GitHub 更新已安装技能

对已安装的 文件夹形式 技能,可在详情中使用 从 GitHub 更新(与顶部列表刷新不同)。流程为:确认来源并勾选信任 → 确认更新 → 查看当前/目标提交与文件差异 → 应用更新。应用前会备份整包旧内容与来源信息。

v0.5.0 起从 GitHub 安装会记录来源 URL、提交与 bundle 基准哈希;更新时按同名、同来源再取,不会擅自把固定 SHA 改成最新分支。v0.4.0 及更早安装或手工放置的技能可能没有来源记录,需首次手动输入 owner/repo 或公开 GitHub 仓库/tree URL。本地正文、同捆文件或权限有改动时,需确认 备份本地变更后替换;无自动合并。

可选配置与 Host API

可通过 cordis.patch.yml 的 patch 行覆盖插件配置(dsh profile 的 patch 层或 --patch):

- id: dsh-skills-manager
  config:
    allowUserWrite: true   # false 时 user 作用域只读
    allowRemoteInstall: true # false 时禁止 GitHub 拉取/更新(本地操作仍可用)
    maxBodyBytes: 262144   # 单个 skill 正文上限(字节)

Host 在已认证的 /api 通道上提供 list、get、save、remove、validate、setInvocation、install 及远程安装、GitHub 更新相关路由;插件还可选附带 Agent 工具 skills_manager_list、skills_manager_read、skills_manager_validate。具体路由与 JSON 形态见仓库 README 的 API 小节。

技能目录格式(扫描规则)

每个 root 仅扫描一层:

  • 目录:<root>/<name>/SKILL.md(可有 references/、scripts/、assets/)
  • 扁平:<root>/<name>.md

frontmatter 至少包含 name、description;更完整的约定见 DSH 的 dsh-skill-filesystem 文档。

安装与启用

安装命令须使用 README 原文形式(github: 为 dsh plugin 接受的 pnpm add 风格):

# 安装 main 最新
dsh plugin --profile web add github:Aero123421/dsh-skills-manager

# 固定版本(需要可复现时)
dsh plugin --profile web add github:Aero123421/dsh-skills-manager#v0.5.0

安装后重启 DSH,或依赖 HMR 重载,左侧应出现 SKILLS。

在对话中也可通过 Agent 的 plugin_manager 调用 install_bundle,target 设为 github:Aero123421/dsh-skills-manager(或带 #v0.5.0)。

更新与卸载

资料提醒:若仍在 v0.2.0 及更早版本,请先备份技能再升级;v0.3.0 起改进了保存原子性、同名识别与更新冲突检测,但不会自动修复旧版已损坏的内容。

dsh plugin --profile web remove dsh-skills-manager
dsh plugin --profile web add github:Aero123421/dsh-skills-manager#v0.5.0

dsh plugin --profile web remove dsh-skills-manager

典型用法示例

用 npx skills 从公开仓库安装

  1. 在管理页选择 项目 或 用户 作为安装目标。
  2. 打开 安装技能 → npx skills,粘贴命令。
  3. 勾选信任来源,点击 预览技能。
  4. 勾选需要的候选(初始未全选),确认安装。

示例命令(来自 README):

npx skills add vercel-labs/agent-skills
npx skills add vercel-labs/agent-skills --skill web-design-guidelines
npx -y skills@1.7.4 add https://github.com/vercel-labs/agent-skills --skill web-design-guidelines
vercel-labs/agent-skills
https://github.com/vercel-labs/agent-skills/tree/main/skills/web-design-guidelines

官方 CLI 完整语法见 Vercel Labs skills 文档;本插件按 DSH 校验与保存路径做了适配与子集实现。

从 GitHub 更新文件夹技能

  1. 打开已安装的文件夹技能,点击 从 GitHub 更新。
  2. 确认来源并勾选信任,点击 确认更新。
  3. 查看提交与 SKILL.md 等差异。
  4. 点击 应用更新(会先备份再替换)。

备份与来源元数据存放在各 root 下的 skills-manager/<name>/(项目为 .dsh/skills-manager/,用户为 $DSH_HOME/skills-manager/ 或 ~/.dsh/skills-manager/),不参与技能扫描。备份不会自动清理;单技能超过 10 次或 256MiB 的更新会被拒绝,需自行整理。

适用场景与注意

适合谁:经常在 DSH Web 界面开发、需要统一维护项目级与用户级 Agent Skills,并希望用图形界面完成校验、安装公开 GitHub 技能与跟踪更新的开发者。

安全与权限:README 说明该插件面向「已认证的 DSH 使用者以 Host 所有者身份管理本地文件」,并非多用户沙箱隔离;项目路径由使用者显式指定。插件以当前 dsh 进程权限读写文件;安装前请自行审阅 源码与许可证,并在生产或共享 Host 上按需关闭 allowRemoteInstall 或 allowUserWrite。

生态说明:DSH 社区插件目录由 SkillHub 等站点收录,与 DeepSeek / 幻方无官方从属关系;「一切皆插件」是 DSH 的产品思路,本文仅基于公开 README 与 package 信息整理。

结尾

若你希望在 DSH 侧栏完成 Skills 的全生命周期管理,而不是反复手改目录与命令行,dsh-skills-manager 把项目与用户两套根目录、本地安装与 GitHub 预览/更新放在同一套 UI 里。进一步细节、截图与 API 列表请以仓库 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/Aero123421/dsh-skills-manager
  • GitHub:https://github.com/Aero123421/dsh-skills-manager
羽毛球分组比赛记分
小程序二维码

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

Xiaoye