dsh-skill-stats:在 DeepSeek Harness 里看清每个 Skill 到底用了多少次

前言

DeepSeek Harness(DSH)可以安装、挂载大量 Skill,界面里也能看到「有哪些 Skill」。但「装了很多」和「经常用」是两回事:几个月前装过、再也没碰过的 Skill,在列表里和每天必用的 Skill 看起来一样;反过来,你依赖某个 Skill 做审查或写文档,Harness 本身也不会给你一份可对照的用量证据。

dsh-skill-stats 是维护者 HLhhh 发布的客户端插件,在 Harness 左侧边栏增加一块 Skill 用量统计面板:列出当前能发现的每个已安装 Skill,并给出调用次数、覆盖会话数、占全部 Skill 调用的比例,以及最近使用时间。计数从插件启用之后开始,不解析历史会话日志,数据落在本地 JSON 文件里。

社区目录页:SkillHub - dsh-skill-stats。源码与说明见 GitHub:HLhhh/dsh-skill-stats。SkillHub 为社区独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」,本文仅介绍该插件本身的行为与用法。

这是什么

一句话:为 DeepSeek Harness 提供的 Skill 用量统计侧栏面板——每个已安装 Skill 的使用次数、会话覆盖范围,以及占全部 Skill 使用的份额。

插件分类为客户端(package.json 中 dsh.client.platform 为 web,immediately: true)。它不注册额外工具、斜杠命令,也不改动其他面板;打开面板时读一次本地计数文件即可展示。

什么算「用了一次」

计数从插件首次启用起算,不会读取任何会话日志。在同一个用户请求(一轮对话)里,对某个 Skill 最多计 1 次,以下任一信号出现即计入:

  1. 智能体通过 skill 工具加载该 Skill;
  2. 你以 /name 形式调用;
  3. 在本会话中该 Skill 已被加载过的前提下,你在后续轮次里再次提到其名称(匹配较宽松,code-review、code review、CodeReview 等视为同一 Skill)。

以下不计入:仅在提示词里列名、智能体只读 SKILL.md、或 merely 打开统计面板。

面板表格列含义(与 README 一致):

列 含义
Calls 当前筛选时间窗内,使用该 Skill 的对话轮次数
Sessions 使用该 Skill 的不同会话数
Share 该 Skill 的 Calls ÷ 当前筛选下所有已计数 Calls
Last used 最近一次使用的时间
Source dot Skill 来源:用户目录、某插件、Harness 内置、项目内、或已卸载但仍出现在统计中等

核心功能

下面介绍 README 中已写明、且与实现描述一致的能力。

实时计数,不解析日志。 计数来自宿主已提交的会话事件,按用户请求去重,防抖写入小型 JSON 文件,重启后保留;打开面板仅一次文件读。

列出所有能发现的已安装 Skill,包括只能以 /name 手动调用的 Skill(带 manual 标记)以及插件提供的 Skill。

来源标签。 bundled 在 skills 服务里只表示「来自 bundled skill 根目录」;插件会按文件真实路径解析,例如插件包内 skill/、skills/ 下的 Skill 会标成 plugin:<包名>。

时间窗与筛选: 全部时间、今天、7 天、30 天;按来源筛选;搜索;「仅从未使用」;可选包含已卸载但仍出现在计数里的 Skill。

仅本地。 计数文件位于 DSH 用户目录下,无网络请求、无遥测。

Skill 清单会合并 ctx.skills.list()、磁盘上的 skill 根(如 $DSH_HOME/skills、~/.agents/skills 等)、已安装插件包内的 skill 目录、以及 agent preset 作用域,按名称去重;缓存约一分钟,并在 skills/change 时失效。

安装与启用

包为纯 JavaScript,无需构建步骤。安装前请自行查看仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行,安装第三方插件前应完成你方安全审查。

从 GitHub 安装(README 推荐,npm 正式发布前)

若你的 profile 不叫 web,把下面命令里的 web 换成实际 profile 名:

dsh plugin --profile web add github:HLhhh/dsh-skill-stats

本地打包或 tarball

npm pack
dsh plugin --profile web add ./dsh-skill-stats-0.1.0.tgz

(npm pack 产生的文件名以当前 package.json 版本为准;资料中示例为 0.1.0。)

在 agent 会话中安装

plugin_manager install_bundle target=/absolute/path/to/dsh-skill-stats

安装完成后刷新页面一次,侧栏会出现与其他面板并列的柱状图图标。

更新与移除

dsh plugin --profile web update github:HLhhh/dsh-skill-stats
dsh plugin --profile web remove dsh-skill-stats

典型用法

入口 作用
侧栏柱状图图标 打开 Skill usage 面板
面板顶栏 汇总:已安装 / 已使用 / 从未使用 / 总 Calls / Sessions
筛选栏 时间窗、来源、搜索、仅从未使用、包含已卸载
表头 点击列排序,再次点击反向

无其他注册项:无新工具、无新斜杠命令、不改变其他面板行为。

兼容性与环境

面 说明
DeepSeek Harness 0.2.x(README 写明针对 0.2.1-rc.3 Desktop 与 Web 构建测试)
Node ^22.19.0 \|\| >=24.0.0(使用 zlib.zstdDecompressSync)
平台 带 skills 功能的 Desktop 与 Web profile

适用场景与注意

适合谁: 在 DSH 里装了不少 Skill、想区分「常用 / 闲置 / 从未点开」的开发者;需要本地、可重启保留的轻量统计,且接受「启用插件之后才有数据」这一设计。

设计上的限制(README Known limitations):

  • 无历史: 启用前的使用一律不计;若需要旧数据只能依赖读历史会话日志,本插件刻意不做。
  • 名称提及仅在本会话已加载过该 Skill 后才计数;插件重启后会话内「已加载集合」需重新建立。
  • 名称匹配偏宽松;极短名称(如 pr、tdd)需整词出现才计。
  • 删除 $DSH_HOME/storages/dsh-skill-stats/usage.json 会重置基线,之后需重载插件以便新建文件。
  • 用过但清单源都发现不了的 Skill 会出现在「uninstalled」类下,可在筛选栏打开。
  • 重名 Skill 只展示生效的那一个。

截图说明:仓库文档中的预览图为示例数据;面板读取的是插件自维护的计数文件,而非会话日志。

结尾

Harness 回答「有哪些 Skill」;dsh-skill-stats 用最小的诚实数据集回答「哪些 Skill 真的在用」——Calls、Sessions、Share 与来源一目了然,且全部留在本机。

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

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

小夜