dsh-skill-stats:技能调用统计插件

在 DeepSeek Harness (DSH) 的开发流程中,随着技能库规模的扩大,判断哪些技能真正被调用、哪些可以清理,是维护工作的一部分。传统的日志排查方式效率有限,且技能形态的统计工具通常只能事后全量扫描,无法实时感知调用。下面介绍 dsh-skill-stats 插件,它通过双通道数据(历史回放 + 实时订阅)统计技能调用次数,帮助开发者判断哪些技能值得保留。

核心功能

该插件提供以下功能:

  1. 调用统计:统计每个技能的累计调用次数、使用过的会话数、首次/最近调用时间,以及每次调用的具体时间戳。
  2. 双通道数据:
    • 历史回放:启动时扫描宿主环境的会话日志(session.jsonl / session.jsonl.zstd),解析 tool/call 事件中的技能调用。
    • 实时订阅:监听进行中的工具调用事件,即时累加统计数据。
  3. 会话视图:展示单个会话用过的技能列表,支持排序。每行附带迷你趋势图,展开可查看大图及每次调用时间;已删除的技能标记「已删除」。
  4. 全局面板:提供所有技能(含 0 次使用)的统计表,支持排序、SVG 趋势图,并支持 1/3/7/30 天范围筛选及每次调用明细。
  5. 增量缓存:基于文件大小与修改时间记录水印,重启时仅重放发生变化的日志,加快启动速度。
  6. 已删除标记:扫描所有工作区与全局技能根目录,检测目录不再存在的技能。
  7. 加载态:在日志重放未完成时显示提示,避免将空快照误报为「未使用」。

安装与启用

使用以下命令进行安装和构建:

git clone git@github.com:chen-zz20/dsh-skill-stats.git
cd dsh-skill-stats && pnpm install && pnpm run build
dsh plugin --profile web add link:/path/to/dsh-skill-stats

说明:
* 该插件为 bundle 型插件,安装后自动加入 profile 的 dsh.profile.bundles 层,无需手动配置行。
* 依赖 @deepseek-ai/* 已发布至公共 npm registry,pnpm install 可直接拉取。
* 若遇 pnpm 10.19+ 的 minimumReleaseAge 拦截,仓库已包含 pnpm-workspace.yaml 豁免配置。

典型用法

插件提供 REST API 用于查询统计数据:

GET /skill-stats/api/stats                # 全局统计(含已删除技能)
GET /skill-stats/api/stats?scope=current  # 当前磁盘上的技能(含 0 次使用,无已删除)
GET /skill-stats/api/stats?sessionId=...  # 单会话技能使用

响应示例:

{
  "skills": [
    { "name": "file-dsh-issue", "invocations": 5, "sessions": 2,
      "firstUsedAt": 1786000000000, "lastUsedAt": 1786009000000,
      "deleted": false, "callTimes": [1786000000000, 1786009000000] }
  ],
  "archivedSessionCount": 0,
  "ready": true,
  "updatedAt": 1786010000000
}

字段说明:
* ready:指示启动重放是否已全部完成(未完成时前端显示加载态)。
* callTimes:每次调用的时间戳,升序排列。
* sessionId 参数:按会话查询;未就绪的会话会在查询时按需重放其日志。

注意事项

  • 只读插件:插件不修改任何会话日志或技能文件。
  • 实时能力:插件形态的独特优势在于可以边发生边统计,而技能形态的统计工具只能事后全量扫描。
  • 依赖与兼容性:依赖 @deepseek-ai/* 包需由宿主环境注入。

总结

dsh-skill-stats 是一个专注于技能使用统计的只读插件。它通过增量缓存和双通道数据,既能快速提供历史数据,又能实时更新,帮助开发者清理不再需要的技能文件,维护健康的技能库。

  • 项目主页:https://github.com/chen-zz20/dsh-skill-stats
  • 社区目录:https://www.skillhub.cn/plugins/chen-zz20/dsh-skill-stats
羽毛球分组比赛记分
小程序二维码

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

小夜