dsh-skill-invocation-monitor

DSH PLUGIN会话与消息

仓库 YYC-JNU/dsh-skill-invocation-monitor

会话与消息 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

Read-only skill invocation monitor for DeepSeek Harness — which Agents are running, which Skill each is calling, status and elapsed time, live in the Web GUI sidebar. · 只读技能调用监控:侧边栏实时展示活动 Agent 正在调用的 Skill、状态与耗时。

一句话选型结论

按资料字段整理

dsh-skill-invocation-monitor 是会话与消息类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类会话与消息 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-14 创建于 2026-10-14
README 11.7 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:YYC-JNU/dsh-skill-invocation-monitor#v1.0.0
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

智能体编排联网搜索

上游标签

dsh-plugindsh-plugin-desktop

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在会话与消息场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-skill-invocation-monitor当前 L5 · 运行验证通过 低风险 0 未标注 有
dsh-desktop L3 · 安装规范通过 低风险 3.0 万 未标注 无
openpets L4 · 沙盒安装通过 低风险 1,274 未标注 有
deeptide L4 · 沙盒安装通过 低风险 1,104 0.1.1-rc.2 有
jingyun-dsh L3 · 安装规范通过 低风险 1,004 未标注 有
study-mate 未做沙盒验证 未标注 856 未标注 无

仓库档案

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方YYC-JNU仓库 dsh-skill-invocation-monitor · 默认分支 main
分类会话与消息desktop
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-14 · 2026-10-14最后推送 2026-10-14
本站收录2026-10-30首次进入本站目录的时间

README 全文

11.7 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-skill-invocation-monitor

English | 简体中文

> 一个只读的 DeepSeek Harness(DSH)插件,把技能调用摊在一屏里:
> 当前有哪些 Agent 在跑、每个正在调用哪个 Skill、是运行中 / 已完成 / 失败、已经跑了多久——在 Web GUI 侧边栏实时可见。

取自运行中的插件:点侧边栏入口打开面板,每个 Agent 一组,每一行是一次技能调用(状态、时长、起始时刻)。

装完之后你会得到什么

DSH 里的技能调用是隐形的。模型读了某个技能,你只看到结果——看不到那次调用、看不到耗时、更看不到那个
一直没回来的。装上这个插件之后:

  • 侧边栏多一个 技能监控 入口,图标上带一个运行中调用数的实时徽标;
  • 面板列出每个活动 Agent,以及它下面每一次技能调用的状态与时长;
  • 技能的两条到达路径都被覆盖且可区分:模型调用 skill 工具,以及你自己触发的技能(那一行带 用户触发 标记);
  • 全程不写任何东西:不注册工具、不改会话状态、不拦截也不延缓任何调用。

安装

# 从 npm 安装(推荐:装到的是预构建产物,不需要任何构建脚本授权)
dsh plugin --profile web add @yyc-jnu/dsh-skill-invocation-monitor

# 或直接从 GitHub 安装(纯 ESM JavaScript,没有构建步骤,pnpm 不会要求 allowBuilds)
dsh plugin --profile web add github:YYC-JNU/dsh-skill-invocation-monitor

然后重启 DSH 并刷新页面。两个半(宿主的只读观察器与路由、浏览器 bundle)都在宿主启动时扫描,
所以重启之前侧边栏不会出现入口。

启动前可先验证层是否生效:

dsh --profile web --dump-config     # 应看到: # == @yyc-jnu/dsh-skill-invocation-monitor

如果这一层不存在,说明包只作为普通依赖装上了,插件并未激活。

卸载:

dsh plugin --profile web remove @yyc-jnu/dsh-skill-invocation-monitor

功能

实时 Agent 列表 每个活动 Agent、它的会话标题,以及它是运行中还是空闲
每次调用一行 Skill 名、状态(运行中 / 已完成 / 失败 / 未观测到结果)、时长、起始时刻
两条调用路径 模型的 skill 工具调用,以及人手动触发的技能——后者标 用户触发
时长实时跳动 运行中的调用每秒刷新一次时长
侧边栏徽标 运行中计数直接挂在侧边栏入口上,不打开面板也能看出有没有活动
如实呈现失败 失败的调用附带截断后的原因,例如 skill "…" is unknown or no longer available
自检诊断 每次响应都带一组计数,描述插件实际看到了什么,让错误假设可见而不是静默
零依赖 两个半都不 import 任何第三方包(浏览器半只用宿主模块表里的 react)

权限与数据

这个插件存在的意义就是观察,它的全部设计都围绕"不参与"。

观察(只读) 五个 Cordis 事件:tools/pre-execute、tools/result、session/event、agent/status、agent/disposed
读取 活动 Agent 列表、会话标题、以及边落盘边推送的会话事件流
不写入 不写会话状态、不写 session log、不落盘、不写配置、不注册工具、不注册命令
不干预 tools/pre-execute 监听器原样返回 next(),从不拒绝/取消/改写/延缓任何调用;每个观察器都整体包裹,插件自身的 bug 无法破坏工具派发
HTTP 面 只有一条路由 GET /api/plugins/skill-monitor/state——无请求体、无写操作、cache-control: no-store
网络暴露 仅回环:非回环来源、跨站标记或外部 Origin 一律 403;非 GET 方法一律 405
数据在哪 宿主内存里的一个 Map。记录有上限(默认 200)并按时间淘汰(结算后 10 分钟);重启 DSH 即清空
不收集 提示词正文、模型输出、文件内容、凭据,以及任何插件根本没有读的东西

兼容性

DSH 在 0.2.0-rc.2 上验证通过(本插件的开发与测试环境)。所用接缝均为官方核心面,预期其他 0.2.x 构建同样可用
Node.js 声明 >=20。插件运行在 DSH 宿主内,实际以宿主自身的 Node 要求为准
界面 Web GUI(dsh.client.platform: "web")。只用官方 Slot——入口用 sidebar.panellist,面板用 main——不做任何 DOM 注入
技能路径 两条路径都走持久化契约:工具调用走 tools/pre-execute / tools/result;人的调用走技能接缝声明的 skill-invocation 消息来源

工作原理

两条调用路径——以及为什么人这条是读消息来源

技能在 DSH 里有两种结构性完全不同的到达方式,插件两条都观察。

模型路径 用户路径
触发 模型调用 skill 工具 你在会话里调用一个技能(例如 /grill-me)
DSH 的行为 走工具流水线并产生工具结果 把技能正文作为一条 user/message 追加进对话——既不产生工具调用,也不产生命令事件
配对键 callId 该消息的 id
时长口径 tools/result − pre-execute turn/end − 注入时刻(见下)
行内标记 无 用户触发

人这条路径读的是技能接缝自己附上的结构化来源(持久化目录里的 SkillInvocationSource):

{ "type": "user/message", "data": {
"source": { "kind": "skill-invocation", "name": "grill-me", "form": "instructions" },
"role": "user", "id": "7c2e0f5a-3b9d-4e18-9a6c-1d2f3a4b5c6d" } }

名字直接来自 source.name,既不需要查技能目录,也不需要解析正文。这是量出来的而不是猜的:早先的
实现假设人这条路径走 command/run / command/done,一份真实会话日志否掉了它——人手动调用的技能
完全不产生命令事件,于是那套目录缓存与它的 60 秒 TTL 一并删除。

一个刻意的口径选择:人类技能没有自己的结果事件,所以它的时长是该轮次的窗口(注入 → turn/end),
而不是技能自身的执行耗时。这是声明出来的约定,不是测量值——若你更想看到"瞬时事件、时长为 0",
要改的只是结算点。

状态语义

状态 含义
运行中 已观察到开始(pre-execute 或技能消息),结束事件还没到;时长实时增长
已完成 工具报告 isError === false,或承载该技能的那一轮正常结束
失败 工具报告 isError === true;该行附带截断后的原因
未观测到结果 15 分钟内没有任何结束事件(调用在派发前被拒、父调用被取消、宿主崩溃)。这是推导状态,从不写回记录

只读契约

这是本插件的核心约束,每一行都有测试断言。

约束 实现方式
不注册可写工具 从不触碰 ctx.tools——无 register / restrict / guard;apply() 不向 ctx 添加任何成员(有测试断言)
不修改会话状态 从不 append 会话事件、从不写 session log、从不调用任何服务方法;只读 agents.list() / sessions.get() / sessionTitle.get()
不拦截任何调用 tools/pre-execute 监听器原样返回 next(),从不拒绝/取消/改写/计时;用恶意 Proxy 实参也无法让它阻断调用(有测试断言)
不落盘 全部状态是内存里一个 Map,有上限、会淘汰;无历史、无持久化、无告警
单一只读路由 只有 GET /api/plugins/skill-monitor/state——无 POST、无请求体、无写路径
零运行时依赖 两个半都不 import 任何第三方包

自检诊断——让错误假设可见而不是静默

每次状态响应都带一个 diagnostics 对象,描述插件实际看到了什么:

字段 它告诉你什么
sessionEvents 落盘事件流确实到达了插件
skillInjections / trackedInjections 技能消息被看见并被记录
unmatchedInjections 收到了一条 skill-invocation 消息,但名字读不出来
turnEnds / settledByTurnEnd 轮次结束事件到达了,以及它结算掉了多少条人类记录

这不是装饰:最早那条被证伪的"命令路径"假设,正是被它抓出来的。

配置(可选)

- id: skill-invocation-monitor
name: '@yyc-jnu/dsh-skill-invocation-monitor'
config:
maxRecords: 200          # 内存中保留的调用记录上限
retentionMs: 600000      # 已结算记录保留 10 分钟
staleMs: 900000          # 15 分钟没有结果 → 未观测到结果
maxCallsPerAgent: 20     # 单个 Agent 在面板里展示的调用条数

开发

测试、脚本与仓库结构(面向贡献者)

cd dsh-skill-invocation-monitor
npm run verify   # 对三个入口文件做 node --check
npm test         # 72 个离线测试:node --test

72 个离线测试覆盖三层:纯聚合模型(test/tracker.test.mjs,36——两条路径的时长结算、配对键、陈旧超时、
淘汰与上限、Agent 合并、以及那个持久化载荷的按字段名解析)、只读契约本身(test/host-plugin.test.mjs,25
——恰好五个事件、恰好一条 GET 路由、pre-execute 是纯透传、回环围栏、释放时全部卸载)、以及浏览器 bundle
(test/client-bundle.test.mjs,11——按 shell 真实加载它的方式加载,断言 Slot 注册与渲染输出)。

本插件是手写 ESM 的普通 JavaScript:lib/ 就是源码,没有构建步骤,也没有 src/。

dsh-skill-invocation-monitor/
├── package.json          # 名称 / exports / dsh.bundle.patch / dsh.client
├── cordis.patch.yml      # 两个半都由这一行 profile 行挂载
├── lib/
│   ├── host/
│   │   ├── index.js      # 宿主半:5 个只读观察器 + 1 条 GET 路由
│   │   └── tracker.js    # 纯聚合模型(无 Cordis / 无 I/O / 显式时间戳)
│   └── client.js         # 浏览器半:ModuleLoader bundle,2 个 Slot 注册
├── docs/
│   ├── screenshot.png             # 上面那张截图
│   └── skill-monitor-flow.json    # archify 时序图源规格
└── test/                 # 72 个离线测试

许可证

MIT

致谢

本插件的代码在 AI 辅助下完成:作者提出需求、评估并验收结果,AI 负责实现与文档。所有行为都在真实
DSH 运行环境中逐项验证过;测试与文档中出现的会话标题、消息 id、时间戳等全部为合成值,不含任何
真实用户数据。

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-skill-invocation-monitor 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:YYC-JNU/dsh-skill-invocation-monitor#v1.0.0` 即可。

dsh-skill-invocation-monitor 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-skill-invocation-monitor 安全吗?

低风险。

dsh-skill-invocation-monitor 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-skill-invocation-monitor 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

会话与消息
按星标排序,可作替代方案

dsh-desktop

dsh-desktop

为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。

L3 · 安装规范通过 3.0 万 星

openpets

openpets

L4 · 沙盒安装通过 1,274 星

deeptide

deeptide

L4 · 沙盒安装通过 1,104 星

jingyun-dsh

jingyun-dsh

井云 DSH 客户端插件,为 DeepSeek Harness 注入会员登录、订阅支付、算力管控与应用市场,让智能体和技能快速变成可交易商品

L3 · 安装规范通过 1,004 星

study-mate

study-mate

StudyMate 是 DSH 的「学习模式」预设与技能包,为数学、计算机科目定制学习路线、讲解课件与练习评估,跨科目共享记忆。

未标注验证等级 856 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。