前言¶
DeepSeek Harness(DSH)插件 skill-use 用于回答三个原生 UI 无法回答的问题:我到底装了多少 skill、它们来自哪个工具;这次任务真正调用了哪些 skill,成功还是失败;MCP 有哪些 server / 工具,被调用了多少次。入口在对话顶部状态栏,与子智能体、团队看板、任务列表同一排,点击展开面板。
是什么¶
这是一个 DSH 插件,维护者为 yizitiguan,分类为 admin-security。插件扫描本机 20 类 skill 来源(如 DSH、Agent、Claude Code、Cursor、Qoder、Trae 等),标注每个 skill 来自哪个工具,并在对话顶部状态栏实时显示当前会话 skill 与 MCP 的真实调用次数、成败与耗时。
核心功能¶
插件通过直接扫盘获取本机安装的 skill,而非依赖 DSH 原生 ctx.skills.list()(后者只返回当前 session 可见的 skill)。扫描目录遵循各家 AI 编码工具的统一格式:<tool-home>/skills/<skill-name>/SKILL.md(带 YAML frontmatter)。
扫描来源¶
与 @michengai/dsh-skills-manager 的 EXTERNAL_SOURCE_ORDER 对齐,支持以下来源(20 类):
| 来源 | 路径 | DSH 加载 |
|---|---|---|
| DSH | ~/.dsh/skills |
✅ |
| Agent | ~/.agents/skills |
✅ |
| Codex | ~/.codex/skills |
|
| Claude Code | ~/.claude/skills |
|
| Gemini | ~/.gemini/skills |
|
| OpenCode | ~/.config/opencode/skills |
|
| Cursor | ~/.cursor/skills |
|
| Copilot | ~/.copilot/skills |
|
| Windsurf | ~/.codeium/windsurf/skills |
|
| Windsurf (user) | ~/.windsurf/skills |
|
| Trae / Trae CN | ~/.trae/skills、~/.trae-cn/skills |
|
| OpenClaw | ~/.openclaw/skills |
|
| ClawdBot | ~/.clawdbot/skills |
|
| Roo | ~/.roo/skills |
|
| CodeBuddy | ~/.codebuddy/skills |
|
| WorkBuddy | ~/.workbuddy/skills |
|
| Qoder / Qoder CN | ~/.qoder/skills、~/.qoder-cn/skills |
|
| Lingma | ~/.lingma/skills |
每类都支持环境变量覆盖(如 DSH_CLAUDE_HOME),与 skills-manager 约定一致。
面板内容¶
面板包含以下区块:
- Skill 使用:每个被调用 skill 的次数、成败、平均耗时、来源标签
- 来源分布:按工具来源统计数量与使用情况,标出 DSH 会加载的来源
- MCP 使用:MCP server 调用次数、方法明细、已注册 MCP 工具
- 未使用的 Skill:可折叠;标出被 skills-manager 禁用的项
- 统计窗口:事件数与时间跨度
每个 skill 带来源标签:[Claude Code] / [Agent] / … → 磁盘上的来源目录;[内置] → 磁盘上找不到,说明是插件 / preset 自带 skill。
MCP 识别¶
DSH 里 MCP 工具没有统一前缀,插件按三层识别(lib/state.js 的 classifyMcp):
- 内置资源工具(精确集合,来自
@deepseek-ai/dsh-mcp-resources):list_mcp_resources、list_mcp_resource_templates、read_mcp_resource,参数带server字段,可精确归因 - 约定前缀:
mcp__<server>__<tool>或mcp_<server>_<tool> - 注册表匹配:
ctx.tools.schemas()里识别出的 MCP 工具名
server 名优先取调用参数里的 server,否则取工具名前缀。调用了但注册表里没有的 server 会进 stale,便于排查已卸载的配置。
数据来源¶
调用统计通过 DSH 事件获取:
tool/call:name=skill,args={"name":"cordis-plugin-development"}tool/result:message.toolCallId→ 配对回该次调用,读error/isError
统计内容包括调用次数、成功 / 失败、本轮平均耗时;失败时记录 error.reason;用 tool/call 的参数名去来源索引里查,得到来源归因。
来源归因步骤:
- 扫盘得到
name → { source, sourceLabel }索引 - 同名 skill 出现在多个来源时,优先取
native(DSH 实际会加载的那个) - 查不到 → 标记为
builtin(插件 / preset 内置)
安装与启用¶
要求 DSH >= 0.1.5-rc.1。插件无构建步骤,纯 ESM + 浏览器端纯 JS,克隆下来即可用。
方式一:npm(最快)¶
dsh plugin --profile <你的 profile> add @yizitiguan/skill-use
方式二:从 GitHub 本地链接¶
克隆后用 link: 方式装进 profile:
git clone https://github.com/yizitiguan/skill-use.git
dsh plugin --profile <你的 profile> add link:<克隆下来的绝对路径>
或者在 DSH 里用插件管理器:
plugin_manager install_bundle <克隆下来的 skill-use 目录绝对路径>
方式三:手动写进 profile¶
在 ~/.dsh/profiles/<profile>/cordis.patch.yml 中添加:
- insert:
- id: skill-use
name: '@yizitiguan/skill-use'
同时确保包已在 profile 的 node_modules 里(pnpm add link:<目录> 或从 npm 装)。
安装完成后刷新页面,顶部状态栏会出现 Skill · 已用/已发现 按钮。
设置¶
在 DSH 设置 → Skill 使用中可以配置:
- 刷新间隔:1.5 / 2 / 5 / 10 秒
- 汇总 / Skill 使用 / 未使用 / 来源分布 / 统计窗口:逐区块开关,立即生效
也可以通过 profile 的 cordis.patch.yml 进行配置:
- id: skill-use
config:
refreshMs: 2000
sections:
usage: true
idle: true
sources: true
接口¶
插件提供以下接口:
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /api/skill-use/snapshot?session=<id> |
审计快照 |
| GET | /api/skill-use/settings |
读配置 |
| POST | /api/skill-use/settings |
写配置(局部合并) |
适用场景与注意¶
适合需要掌握本机 skill 与 MCP 使用情况的 DSH 用户,尤其是同时使用多款 AI 编码工具、skill 来源分散的场景。插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
短结尾¶
skill-use 插件通过扫盘与事件审计,补齐 DSH 原生 UI 在 skill 与 MCP 可见性上的缺口。访问目录页与 GitHub 仓库了解更多。