dsh-skill-cockpit:DSH 技能驾驶舱

前言

在 DSH(DeepSeek Harness)里,技能来自多个根目录,但系统默认只扫描 ~/.dsh/skills,很容易漏掉其他根里的技能;技能文件的前置声明(frontmatter)写错时,运行时静默丢弃,难以排查;开启或关闭技能通常需要编辑文件名,改动分散。这些问题会让技能列表与实际可用能力不一致,影响模型调用效率。

插件定位

dsh-skill-cockpit 是一个面向 DSH 的技能驾驶舱插件。它在应用级导航中占据一个官方页面,列出机器实际暴露的全部技能,说明某技能为何不可见,并支持按技能重命名入口文件来启停。由 huanlin-labs 维护,分类为客户端。

核心功能

  • 导航栏页面:占据 sidebar.panellist 位置(order:5),位于“Plugins”与“Schedule”之间,与官方页面使用相同的扩展点注册。
  • 全根扫描:扫描全部六类 skill 根:project-dsh、project-agents、custom、user-dsh、user-agents、bundled,避免漏报。
  • 可解释的不可见原因:对因 frontmatter 错误导致的静默丢弃,给出具体原因(如 dropped:no-frontmatter、dropped:unclosed、dropped:bad-yaml 等),并提示根缺失、名称冲突或显式错误。
  • 使用次数统计:从会话日志中解析 tool-call 形式的技能调用,按技能名聚合计数,数据存储在 <dshHome>/dsh-skill-cockpit/usage.json,仅含名称、次数和时间戳,不记录消息正文。
  • “加载但不被使用”检查:识别四类技术上有效但模型不会选用的技能:shadowed(名称冲突)、short-description(描述过短)、dir-name-mismatch(目录名与 frontmatter 不符)、empty-body(内容为空或极小)。
  • 仅改入口文件即可启停:启用/禁用通过重命名 SKILL.md ↔ SKILL.md.disabled 实现,没有额外状态文件,入口文件名是唯一事实来源。项目级 skill 根始终只读。
  • 诚实标明能力边界:无法禁用第三方或 bundled 提供的技能,相关行会说明原因,避免误操作。
  • 无 peer 依赖:插件声明 inject = [],客户端只声明 slots,不依赖 @deepseek-ai/dsh* 系列,不触碰凭据面。

安装与启用

通过 npm 安装:

npm i dsh-skill-cockpit

也可在 DSH 插件管理器中将该包作为 bundle 安装。安装后重启 DSH,该页面会出现在左侧导航中。

典型用法

  • 打开技能驾驶舱页面,查看全部已加载技能及其来源根。
  • 若某技能不在列表中,查看“问题”视图,了解不可见原因。
  • 在“列表”页为可写技能启用/禁用,或通过拖拽调整分组。
  • 在“用量”页查看各技能调用次数,识别从未被选用的技能。
  • 在“管理”页新建、导入或编辑技能,支持备份与回收站机制。

适用场景与注意

适合需要在导航中统一管理技能、排查技能不可见原因、统计技能使用情况、通过简单文件重命名控制技能可用性的 DSH 用户。插件以当前 DSH 进程权限运行,安装前应检查源码与许可证(MIT)。

短结尾

dsh-skill-cockpit 提供了一个集中的技能视图、可解释的不可见诊断、使用统计与轻量启停机制,帮助维护技能清单与可用性。目录页与代码仓库见下。

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

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

Xiaoye