前言¶
在使用 DeepSeek Harness(DSH)时,一个常见问题是:本机明明安装了某个技能,但在对话中却找不到;或者某个技能明明存在,但从未被调用。这些问题往往只能通过翻阅日志或猜测来排查。dsh-skill-cockpit 在 DSH 的应用级导航中增加了一个页面,集中展示本机实际暴露的全部技能、解释某技能为何不可见,并提供按文件名切换启用/禁用的能力。
插件定位¶
dsh-skill-cockpit 是一个 DSH 客户端插件,作者为 zhaorui-wu。它在官方导航栏(sidebar.panellist)中占据一个固定位置(order: 5),介于“Plugins”和“Schedule”之间,通过框架的 slots 服务注册,与内置页面使用相同的扩展点。插件扫描 DSH 的全部六种技能根目录(project-dsh、project-agents、custom、user-dsh、user-agents、bundled),报告技能列表、缺失原因以及使用次数,并通过重命名入口文件(SKILL.md ⇄ SKILL.md.disabled)实现启用/禁用。
核心能力¶
- 全量技能扫描与展示:扫描全部六种技能根目录,不仅限于 ~/.dsh/skills,避免漏报。每条技能以卡片形式呈现:名称、来源根标签、功能标签、描述、大小、开关,以及“看正文”查看入口文件内容。
- 缺失原因诊断:当技能因 frontmatter 格式问题(如缺少 frontmatter、未闭合、bad-yaml、缺少必要字段、bad-name)或缺少根目录、被覆盖(shadowed)等原因而不可见时,面板会给出具体原因(dropped:no-frontmatter、dropped:unclosed、dropped:bad-yaml、dropped:missing-fields、dropped:bad-name、missing root、shadowed entry 等),而不是简单不显示。
- 用量统计:从会话日志中解析 tool-call 块(name: “skill”,参数 arguments.name)统计技能调用次数。计数结果存储在
<dshHome>/dsh-skill-cockpit/usage.json,仅包含技能名称、次数和时间戳,不含消息文本。0.6.9 修复了对旧格式 skill-invocation 的识别,使统计能反映真实使用情况。 - “加载但不有效”检查:识别四类技术上有效但模型不会选中的技能:shadowed(同名被更高优先级的根覆盖)、short-description(描述过短)、dir-name-mismatch(目录名与 frontmatter 名称不一致)、empty-body(正文为空,按文件字节判定)。
- 启用/禁用切换:通过重命名入口文件实现切换(SKILL.md ⇄ SKILL.md.disabled),不依赖额外状态文件,文件名即唯一事实源。项目级技能根目录始终只读,仅用户级目录可写。
- 独立页面与多视图:导航页包含四个视图:列表(全部技能)、分组(自定义拖拽分组,内置文档办公、代码工程、设计视觉、写作沟通、研究资料、元技能等六类)、用量(按技能统计调用次数)、问题(“加载但不有效”与缺失原因诊断)。
- 安全与权限:通过 host half 的两道拒绝机制保护:/body 仅白名单内列出的入口文件,其他路径返回 403;/toggle 仅写入 ~/.dsh/skills 或 ~/.agents/skills,项目级路径即使被列出也不允许写入。跨域请求均被拒绝。
安装与启用¶
安装命令如下:
npm i dsh-skill-cockpit
安装后重启 DSH,插件会在左侧导航栏的“Plugins”和“Schedule”之间自动出现一个新页面。页面位置由框架的 slots 服务注册,无需手动配置。
典型用法¶
- 打开技能中心页面,查看“列表”视图,确认所有技能是否正常显示。
- 如果某技能不出现,切换到“问题”视图,查看具体原因(如 dropped:no-frontmatter)。
- 通过“用量”视图查看各技能的调用次数,识别从未被使用的技能。
- 在“分组”视图中拖拽技能卡片到不同功能组,便于按场景管理(如将文档办公技能归入“文档办公”组)。
- 点击技能卡片上的开关或组的开关,通过重命名入口文件实现启用/禁用。启用时文件名为 SKILL.md,禁用时为 SKILL.md.disabled。
适用场景与注意¶
该插件适合需要精细管理 DSH 技能集、排查技能不可见原因或统计技能使用频率的开发者。它以本地进程权限运行,不会触碰凭据相关接口(host half 声明 inject=[],不依赖 @deepseek-ai/dsh* 依赖)。使用前应检查源码与许可证。
总结¶
dsh-skill-cockpit 在 DSH 中增加了一个集中管理技能的页面,覆盖扫描、诊断、统计与切换四个维度,帮助开发者快速定位技能问题并优化技能配置。
- 插件目录页:https://www.skillhub.cn/plugins/zhaorui-wu/dsh-skill-cockpit
- GitHub 仓库:https://github.com/zhaorui-wu/dsh-skill-cockpit