Skill 触发机制与遥测覆盖性调研 - Elisabeth15501/skill-inventory GitHub Wiki
skill-inventory 调研归档:用户如何触发 / 使用 skill 与各平台遥测覆盖性
归档用途:支撑
skill-inventory的 P0 防误关护栏设计。开发者向文档,不进代码仓库,归入项目 GitHub Wiki。 来源:由gstack-product-reviewer执行调研,team lead据其回报的精简结论整理成文。逐条来源 URL 见 §8「参考链接」。 状态:结论就绪;参考链接已回填(2026-10-01)。部分论断属推断或「未找到公开来源」,已在 §8 末尾逐条标注。
1. 背景与目的
技能盘点工具若仅凭「用量日志里有没有这条 skill 的调用记录」来判断「该不该关」,会系统性误杀那些用户从不或极少在对话里点名、却被平台机制默默调用的技能。
本调研要回答两个核心问题:
- 终端用户实际怎么触发 / 使用 AI Agent 的 skill?
- 各平台有没有把「非显式激活」也记进用量遥测?
答案直接决定 skill-inventory 要不要、以及如何加「防误关护栏」。
2. 触发机制分类法(T1–T6)
| 类型 | 机制 | 用户是否点名 | 遥测是否可见 |
|---|---|---|---|
| T1 显式对话调用 | 用户 @skill 或直接要求「用 XX 技能」 | 是 | ✅ 可见 |
| T2 模型按 description 自动挂载 | Agent 读 skill 的 description,任务匹配就自动启用 | 否(各平台默认卖点) | ⚠️ 通常不可见(WB 有 call_depth,其余弱) |
| T3 配置化触发 | SKILL.md 触发条件 + 自动化预置 prompt,用户配过一次后零对话触发 | 否 | ❌ 不可见 |
| T4 自动化 / 定时任务 | cron / scheduled task,每日跑 | 否(完全不参与当次对话) | ❌ 不可见 |
| T5 事件 Hook | 会话开始、文件保存、提交等事件钩子触发 skill | 否 | ❌ 不可见 |
| T6 专家 / 连接器 / 子 agent 内部调用 | 用户只调「@投研分析专家」,专家背后跑 4 个 skill | 否(用户层面完全无感) | ❌ 不可见 |
关键结论:T2–T6 都让用户「从不或极少点名」仍活跃使用 skill。任何只看 T1 遥测的盘点工具,对这五类都是盲区。
3. 各平台用量遥测对照
| 平台 | 结构化 per-skill 遥测 | 覆盖非显式激活(T2–T6)? | 备注 |
|---|---|---|---|
| WorkBuddy | ✅ usage-log.json 的 skills 键 + 本地日志 + HTTP API |
部分(含 call_depth) |
唯一有执行级遥测的平台 |
| QwenWork(千问办公) | ❌ 无内置 per-skill 日志 | ❌ | 仅用户自装 Hook 可能有片段 |
| DuMate / 天禧AI | ❌ 无用户侧 per-skill 用量日志 | ❌ | 平台侧可能有,用户侧不可见 |
| Claude Code / Hermes | ❌ 默认不记录 | ❌ | 需 Hook / 审计工具补 |
核心结论:没有任何平台把 T4 / T5 / T6 全激活路径的用量作为开箱即用的统一信号暴露。 这正是 skill-inventory 对无遥测平台做「降级、不判可关闭」的根本原因——不是偷懒,是遥测结构上就不存在。
4. 关键假设核实
假设「用户确实绕过对话显式调用在用 skill」——已核实成立:
- T2 是各平台默认卖点(自动挂载),用户不必点名。
- T4 设一次后零对话每日运行。
- T6 用户只调专家、背后跑多个 skill 完全无感。
5. 误杀概率
高,下限不低(30%–70%+)。依据:
- agentcrew 被动触发率仅 30–50%;
- jiepi-skill 自承漏算语义使用;
- labgrimoire 的 skill DAG 依赖关系实证(一个 skill 被另一 skill 依赖时,孤立删除会断链)。
即:仅凭「无使用记录 = 可关」会误杀三到七成仍在间接使用的技能。
6. 护栏建议(8 条,来自调研)
- 反向依赖扫描:判「可关闭」前先扫自动化 / Hook / 专家·连接器定义里的技能引用,凡被引用一律锁定。
- 重要性分级:不要二元「可关 / 不可关」,按引用数、近期改动、遥测可用性分级。
- archive 非 delete:任何「关闭」先归档(可恢复),绝不直接删。
- 影响预览:关之前展示「哪些自动化 / 专家会受影响」。
- 遥测缺口不判死:无日志时全库落「需人工确认」,绝不输出可关闭项。
- 借鉴 Hermes
skill-drift-check:cron 引用强制检查范式。 - 借鉴 issue #11425:importance 分级范式。
- 用户逐条确认:关闭动作必须人工显式确认,优先引导宿主自带开关(如
/skills菜单,按 Esc 落盘)。
7. 与本工具(skill-inventory)实现的对照
| 调研建议 | skill-inventory 现状 |
|---|---|
| 反向依赖扫描(T4/T5/T6) | ✅ scan_references + 千问路由状态扫描(P2-7)已实现 |
| 遥测缺口不判死 | ✅ telemetry_gap 降级,cleanup 桶在无遥测时恒空 |
| 重要性分级 | ✅ protected / keep / cleanup / review 四档 + 受保护启发式 + 引用锁定 |
| archive 非 delete | ✅ 本工具从不删除,只出草稿;WB 落地关闭也需 --apply --yes + 先备份 settings.json |
| 用户逐条确认 | ✅ --overrides 仅草稿;WB 写 skillOverrides 仍需 --yes 显式确认 |
| 影响预览 | ⚠️ 部分(报告列出「被引用锁定(来源文件)」,但未生成结构化影响清单) |
唯一尚未显式做的是「archive-vs-delete 影响预览」的结构化输出;因本工具本就不删除、只建议,属锦上添花,不阻塞。
8. 来源说明与参考链接
本归档的实质结论来自 gstack-product-reviewer 的调研回报(T1–T6 分类、分平台遥测对照、误杀概率量化、护栏建议 8 条)。以下参考链接由研究员于 2026-10-01 回填,均为其搜索结果中直接呈现支撑论断原文片段的来源;标「社区来源」者为博客/问答/媒体,非官方文档。
触发分类法依据(T1–T6)
| # | 论断 / 主题 | 来源 | 说明 |
|---|---|---|---|
| 1 | T1 显式调用·WorkBuddy 三种方式(列表点选/斜杠/点名) | https://www.yun88.com/qa/6410.html | 社区问答,原文列出三种方式并强调「点名调用最稳」 |
| 2 | T2 自动挂载·机制层:skill 休眠态、仅 name+description 常驻上下文、Agent 匹配后显式 use_skill |
https://www.ufcn.cn/article/2408532.html | 社区深度分析,含调度机制原话 |
| 3 | T2 自动挂载·用户侧:「帮我处理 PDF → 自动触发 pdf 技能」 | https://blog.csdn.net/weixin_45285213/article/details/162698547 | 社区指南,含自动触发实例 |
| 4 | T1/T2/T3 官方依据:AI 选 skill 的因素 + skillOverrides 四态 |
https://www.workbuddy.cn/docs/cli/skills | 官方文档,四态定义与选择因素为原文 |
| 5 | T3/T4/T6·WorkBuddy:自动化任务可选「技能、专家、连接器」+ 定时规则 | https://www.codebuddy.cn/docs/workbuddy/From-Beginner-to-Expert-Guide/Function-Description/Automation-Guide 、https://www.workbuddy.cn/docs/workbuddyapp/features/Auto | 官方文档 |
| 6 | QwenWork T1/T2 官方:自动触发 / 斜杠 / 对话指定 | https://www.alibabacloud.com/help/tc/qwenwork/skills(简体镜像:https://help.aliyun.com/zh/qwenwork/skills) | 官方文档,含内置技能「触发方式」表 |
| 7 | QwenWork T3/T5:SKILL.md 写触发条件;Hook 事件(SessionStart/PreToolUse/SubagentStart…,exit 2 阻断) | https://note.com/ai_driven/n/n86dcb1753da0 | 第三方拆解,含 Hook 事件清单原文 |
| 8 | QwenWork T6:@投研分析专家 背后跑「读财报 PDF + 企查查连接器 + Word/PPTX」全链 |
https://www.toutiao.com/a7676873926093439498 | 媒体文,专家内部调用 skill 的实例 |
| 9 | DuMate 官方开关:每 skill 启用/禁用,禁用不执行不删除;「去使用」自动挂载 | https://cloud.baidu.com/doc/Dumate/s/0mqtgnlbk 、https://aca.bce.baidu.com/doc/Dumate/s/5mmydgic3 | 百度官方文档 |
| 10 | T4 定时任务跨平台:DuMate 时间/事件触发 + 本地沙箱;天禧 Claw 定时任务实测 | https://blog.csdn.net/yanceyxin/article/details/161425278 、https://news.qq.com/rain/a/20260408A00G1000 | 社区指南 + 媒体实测 |
| 11 | Claude Code T2/T6 官方:description 匹配自动挂载;subagent skills 字段启动时全量预加载 |
https://code.claude.com/docs/en/features-overview | 官方文档("Claude matches your task against skill descriptions" 为原话) |
平台遥测覆盖
| # | 论断 / 主题 | 来源 | 说明 |
|---|---|---|---|
| 12 | WorkBuddy 遥测·本地日志字段 skill_id / status / duration_ms / input_hash |
https://www.ufcn.cn/article/2247625.html | 社区文章,给出本地 JSON 日志字段原文 |
| 13 | WorkBuddy 遥测·本地 HTTP API 字段含 skill_name / quota_used / call_depth |
https://m.php.cn/faq/2905988.html | 社区问答含 API 返回字段原文;企业级 TraceID 口径另见 https://cloud.tencent.com/developer/techpedia/2610(厂商宣传口径,补充参考) |
| 14 | DuMate/天禧遥测:DuMate 企业级全操作日志但无用户侧 per-skill 日志;天禧按「调用率」内部发奖、不向 skill 暴露用量账本 | https://news.qq.com/rain/a/20260609A03ZK500 、https://www.geekpark.net/news/364707 | 媒体报道。注:「无用户侧日志」属否定性结论,基于官方文档检索未见,是「未找到公开来源」而非「确认不存在」 |
| 15 | Claude/Hermes 侧遥测:默认不记录需自装 Hook;skills.jsonl 含 invoked_by 区分主/子 agent |
http://onlybits.org/mjunaidca/claude-observability-guardrails-hooks | 社区博客,含 skills.jsonl JSON 示例原文 |
误杀概率 30–70%+ 的实证
| # | 论断 / 主题 | 来源 | 说明 |
|---|---|---|---|
| 16 | 被动触发率仅 30–50%:description 匹配即使任务匹配也只有约一半概率触发 | https://www.agentcrew.cc/blog/posts/en/claude-code-skills-mechanism | 博客原话 "passive trigger rate is only 30-50%" |
| 17 | 审计工具自承漏算:jiepi-skill "may undercount skills that were used semantically without an explicit path read" | https://github.com/Pluviobyte/jiepi-skill | README 原文;同类工具 pi-skill-audit(两类痕迹计数、0 次=建议删除):https://skillsmp.com/zh/creators/cnife/skills/archive-pi-skill-audit |
| 18 | skill 间 DAG 依赖:write_summary 依赖 extract_key_findings 输出,改上游破下游 |
https://labgrimoire.com/zh/blog/ai-skill-decluttering | 博客原文 |
⚠️ 推断标注:「30–70%+」区间是综合上述三条实证 + 「T2 是默认模式」推断出的估算,不是任何单一来源的测量值。
护栏借鉴对象
| # | 论断 / 主题 | 来源 | 说明 |
|---|---|---|---|
| 19 | Hermes skill-drift-check:删除/归档前强制预检 cron 引用("NEVER archive/delete a skill referenced by any active cron job") | https://skillsmp.com/creators/kzinmr/ai-topics/config-hermes-skills-overrides-skill-drift-check | SKILL.md 原文,含 MANDATORY 检查清单 |
| 20 | Hermes issue #11425:纯 usage 统计清理会误杀关键 skill;主张 importance 四级 + archived 状态(非 delete)+ 仅 opt-in 自动归档 | https://github.com/NousResearch/hermes-agent/issues/11425 | issue 原文 |
未找到公开来源 / 属推断的论断(如引用请保留标注)
- 「QwenWork / DuMate / 天禧AI 无用户侧 per-skill 用量日志」→ 否定性结论,基于官方文档检索未见,非确认不存在。
- 「T3 无独立于 description 匹配的产品化关键词路由 UI」→ 未找到公开来源,属推断(功能行为由 T3 的 SKILL.md 触发条件 + 自动化预置 prompt 间接证实)。
- 「WorkBuddy
call_depth可完整覆盖 T5 Hook 触发」→ 基于字段语义的合理推断,无直接文档。