前言¶
在 DeepSeek Harness(DSH)里,Agent 调用 Skill 的过程是透明的:模型加载技能,你看到结果,但看不到调用、看不到耗时、看不到失败的调用。对于调试和性能分析来说,这会丢失很多信息。
dsh-skill-invocation-monitor 是一个只读插件,它把所有活动的 Agent 以及它们正在调用的 Skill,以列表形式放在 Web GUI 侧边栏。你可以看到每个调用的状态(运行中/已完成/失败/未观测到结果)和已持续的时间。
插件不写入任何状态,不拦截调用,不修改配置,只观察。
插件定位¶
- 名称:dsh-skill-invocation-monitor
- 维护者:YYC-JNU
- 分类:客户端
- 版本:1.0.0
- 许可证:MIT
- Node.js 要求:>=20
- DSH 兼容版本:0.2.0-rc.2(其他 0.2.x 构建预计兼容)
插件通过监听 DSH 的核心事件,在 Web GUI 侧边栏展示一个「技能监控」面板,列出当前活动的 Agent 和它们的 Skill 调用详情。
核心功能¶
侧边栏面板¶
安装后,Web GUI 侧边栏会出现「技能监控」入口。入口上有一个徽章,显示当前正在运行的调用数量。
点击后打开面板,列出所有活动的 Agent。每个 Agent 下面列出它发起的 Skill 调用,每行显示:
- Skill 名称
- 状态:运行中 / 已完成 / 失败 / 未观测到结果
- 已持续时间(实时更新)
- 开始时间
两种调用路径¶
DSH 中 Skill 有两种调用方式,插件都会记录:
- 模型通过
skill工具调用 - 用户直接触发 Skill(例如通过命令
/grill-me)
对于用户触发的调用,行首会有「用户触发」标记。
实时与过期策略¶
- 调用正在运行时,持续时间每秒更新
- 记录在内存 Map 中,最多保留 200 条
- 一旦调用结束(无论成功或失败),记录会在 10 分钟后过期
- 重启 DSH 会清空所有记录
自检与错误处理¶
- 每条记录携带计数器,描述插件观测到的情况
- 失败调用会截断原因(例如
skill "…" is unknown or no longer available) - 插件监听器返回
next()不做任何修改,不会阻断或延迟调用
安装与启用¶
插件可以从 npm 安装(推荐,预构建,无需构建权限):
dsh plugin --profile web add @yyc-jnu/dsh-skill-invocation-monitor
也可以从 GitHub 直接安装(纯 ESM JavaScript,无构建步骤):
dsh plugin --profile web add github:YYC-JNU/dsh-skill-invocation-monitor
安装后必须重启 DSH 并刷新页面。插件会在启动时扫描 host 观察者和只读路由,以及浏览器 bundle,因此重启前不会出现侧边栏入口。
安装完成后,可以在启动时检查插件层是否加载:
dsh --profile web --dump-config
在输出中查找 # == @yyc-jnu/dsh-skill-invocation-monitor,如果存在则说明插件已激活。
卸载命令:
dsh plugin --profile web remove @yyc-jnu/dsh-skill-invocation-monitor
使用方式¶
安装并重启后,打开 DSH Web GUI,侧边栏会出现「技能监控」入口。
- 点击入口,面板展开,列出所有活动的 Agent 和它们的 Skill 调用
- 徽章显示当前正在运行的调用数量
- 悬停或滚动可查看所有记录
- 失败的调用会显示截断后的错误原因
插件不提供任何配置项,也不支持交互,全部由 DSH 运行时状态驱动。
适用场景与注意¶
适合需要观察 DSH 中 Skill 调用情况、排查调用失败、统计执行时间的开发者。
注意:
- 插件以当前 DSH 进程权限运行,请确保安装来源可信
- 插件完全只读,不会写入任何状态或配置
- 插件依赖 DSH 的核心接口,需在 0.2.x 版本上测试
- 数据存储在内存中,重启会清空
结尾¶
dsh-skill-invocation-monitor 提供了一个轻量级、零侵入的视角来观察 DSH 中 Skill 的调用情况,适合调试和性能分析。
目录页:https://www.skillhub.cn/plugins/YYC-JNU/dsh-skill-invocation-monitor
GitHub:https://github.com/YYC-JNU/dsh-skill-invocation-monitor