DeepSeek Harness 插件

dsh-skill-mcp-stats

统计每轮对话中 agent 使用的 skill 与 MCP 工具,支持对话内查询与 Web 面板查看(英文原文)

跳到安装方式

来源信息

GitHub 仓库
cransmathenia666-hash/dsh-skill-mcp-stats
最近更新
2026年8月19日
分类
自动化与任务
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/cransmathenia666-hash/dsh-skill-mcp-stats
插件名:dsh-skill-mcp-stats
作者:cransmathenia666-hash

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器2 个文件
README.md来源说明 · 只读预览

dsh-skill-mcp-stats

> 想知道每一轮对话里 agent 到底动了哪些 skill 和 MCP?把每一轮翻成一张清单,按钮一点就知道。

Per-turn skill & MCP usage stats for DeepSeek Harness (dsh) — see what the agent actually called, per turn, without digging through transcripts.

原生 DSH 插件:宿主监听 session/event 事件流聚合统计,浏览器端在每条 assistant 消息的操作栏加一个 📊 按钮展开查看。

功能

  • 📊 消息栏统计按钮:不弹窗、不遮屏,面板直接在按钮所在消息下方展开,随对话流滚动
  • 🏷 重点概览:skill(绿)与 MCP(橙)彩色标签 + 调用次数,本轮/本会话用了什么一眼可见
  • 📚 轮次明细折叠:每轮一行摘要,点击展开 skill / MCP / 其他工具的明细;默认展开最新一轮
  • 🧠 按会话隔离:面板只统计你当前所在的会话,不会被其他会话的记录干扰
  • 💾 自动落盘:每轮结束实时追加 JSONL 日志,进程重启不丢历史
  • 🛠 对话内可查:注册 skill_mcp_stats_summary 工具,你直接问 agent"这轮用了哪些 skill 和 MCP"也能答
  • 🌗 主题自适应:全部使用 DSH 官方主题令牌,深浅色自动适配
  • 📡 HTTP API:GET /skill-mcp-stats/api/overview(可带 ?session= / ?scope=latest)供二次开发取数

安装(原生 DSH 装配)

这个插件是标准的 DSH npm 插件包:宿主侧是 cordis 插件(lib/index.js),浏览器侧通过 package.json 的 dsh.client 字段声明(lib/client.js),走 profile bundle 装配,不需要任何特殊注入工具。

0. 构建

npm install          # 安装 typescript / tsdown 等构建依赖
npm run build        # → lib/index.js + lib/client.js + 类型声明

1. 加进 web profile

编辑 ~/.dsh/profiles/web/package.json

{
  "dependencies": {
    "dsh-skill-mcp-stats": "link:D:/dshcahjian/dsh-skill-mcp-stats"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "dsh-skill-mcp-stats"
      ]
    }
  }
}

> 用 link:(pnpm 本地链接)而非 file::链接模式让插件的 lib/ 改动即时生效,与 profile 里其他本地插件(如 dsh-message-finder)一致。bundles 是 cordis 装配列表,宿主插件在这里被装载。

2. 安装并重启

cd ~/.dsh/profiles/web
pnpm install

然后重启 dsh web。重启后:

  • 宿主开始监听事件流统计,日志写到 ~/.dsh/skill-mcp-stats/turns.jsonl
  • 每条 assistant 消息操作栏出现 📊 按钮,点击展开本会话统计

> 依赖实例约定:插件运行时的 @deepseek-ai/* 依赖必须与 dsh 宿主共享同一实例(否则 cordis Service 注入会因双实例失效)。构建后请确认插件目录 node_modules/@deepseek-ai/* 是指向 D:\DSH\npm-global\node_modules\@deepseek-ai\dsh\node_modules\@deepseek-ai\* 的 junction(本项目 scripts/link-host-deps.mjs 可一键重建),不要在插件目录直接 npm install(会覆盖 junction 为 registry 副本)。日常改动后只需 npm run build

卸载

~/.dsh/profiles/web/package.json 移除依赖和 bundles 条目,pnpm install 后重启即可。

它怎么工作的

  • 数据:宿主监听 session/event 事件流,只消费三个事件——turn/start(一轮开始)、tool/call(每次工具调用,含工具名与参数)、turn/end(一轮结算)
  • 分类:工具名 skill 记入 skill(取参数里的技能名);以 mcp__ 开头的记入 MCP;其余归为其他工具
  • 界面:conversation.chat.assistant-actions Slot(官方给消息反馈类插件预留的按钮席位)注入 📊 按钮,点按后直接在按钮行下方插入内联面板
  • 持久化:turn/end 时把整轮(轮号、时间、分类计数、调用明细)追加到 JSONL;进程内按 session+turn 内存聚合
  • 生命周期:宿主 ctx.on / ctx.effect 注册,client 卸载即净,无残留

开发

npm run typecheck   # host + client 双端类型检查
npm run build       # 构建 lib/
npm run watch       # client 增量打包(tsdown --watch)

结构:

  • src/index.ts — 宿主侧:事件监听、聚合、JSONL 落盘、skill_mcp_stats_summary 工具、HTTP API
  • src/client/index.ts — 浏览器侧:📊 按钮 + 内联面板
  • tsconfig.json / tsconfig.client.json — host / client 编译配置
  • tsdown.config.ts — client 打包(window.__ModuleLoader__.load 格式,与官方插件一致)

已知限制

  • 插件注入之后产生的轮次才计入实时统计;历史轮次只能在注入时刻按已加载的会话事件回填一次(时间戳为注入时刻,不影响统计正确性)
  • 极个别历史事件里 skill 参数为不可解析格式时记为 (unknown),新产生的轮次不受影响
  • 目前聚焦"用了什么",暂不做耗时/成败/参数明细的深挖

兼容性

  • DeepSeek Harness Web GUI(dsh web),@deepseek-ai/dsh-* 0.1.0-rc.x
  • 依赖官方 Slot:conversation.chat.assistant-actions / 宿主 session/event 事件流(若未来官方调整这些接口需适配)
  • Node.js 任意现代版本(宿主侧仅用 node:fs / node:path / node:os / node:http

License

BSD-3-Clause