现在位置: 首页 > Skills 教程 > 正文

Skills 触发机制

Skills 不是被用户"调用"的,而是由 Claude 自主决定"是否使用"的。

理解这个触发机制,能帮助你写出更容易被准确触发的 Skill。


触发机制的工作原理

Claude 启动时,会将所有可用 Skill 的 namedescription 加载到上下文中。

当用户发送消息后,Claude 会判断:这个任务,我需要参考某个 Skill 吗?

判断依据只有一个:Skill 的 description 字段

SKILL.md 的正文(body)不参与触发判断。Claude 只有在决定使用某个 Skill 之后,才会读取正文内容。

触发流程示意


什么样的任务会触发 Skill

并非所有匹配 description 的请求都会触发 Skill。

Claude 有一个内在判断:这个任务复杂到需要参考专门指令吗?

请求类型 示例 是否触发 Skill 原因
简单单步任务 "读取这个 PDF" 通常不触发 Claude 直接处理更高效
复杂多步任务 "提取 PDF 中的表格并转为 Excel" 触发 需要专门的工作流程
专业领域操作 "合并三个 PDF 并加水印" 触发 涉及特定工具链
输出有明确格式要求 "生成符合我们公司模板的 Word 报告" 触发 需要特定格式规范

如果你的 Skill 很少被触发,通常是因为任务描述过于简单,或者 description 写得不够精准。测试时应使用复杂、具体的用户请求。


Description 的触发策略

description 是触发的唯一凭据,写法直接决定触发准确率。

策略一:列举具体场景

不要只写"这个 Skill 是做什么的",还要写"在什么情况下应该用它"。

# 不推荐:只描述功能
description: 处理 Excel 文件。

# 推荐:描述功能 + 触发场景
description: >
  处理 Excel 和 CSV 文件,包括:读取数据、清洗格式、生成图表、
  计算统计指标、合并多个表格。当用户提到 Excel、xlsx、CSV、
  表格数据、数据清洗、财务报表时,应优先使用此 Skill。

策略二:使用"推动性"语言

Skills 系统天然倾向于"少触发"。在 description 中加入推动性语言可以提升触发率。

description: >
  生成专业的 PowerPoint 演示文稿。当用户需要制作幻灯片、PPT、演讲稿、
  汇报材料时,必须使用此 Skill,即使用户没有明确说"用 pptx 格式"。
  只要涉及演示文稿的创建或修改,都应触发此 Skill。

策略三:列出关键词

在 description 末尾附上触发关键词列表,是一种简单有效的补充手段。

description: >
  代码审查助手,分析代码质量、发现潜在 Bug、给出改进建议。
  关键词:code review、代码审查、代码分析、bug 检查、
  重构建议、代码质量、静态分析。

触发冲突:多个 Skill 同时匹配

当用户的请求可能匹配多个 Skill 时,Claude 会根据匹配程度选择最相关的一个。

为了避免冲突,需要让不同 Skill 的 description 保持清晰的边界。

冲突场景 解决方案
两个 Skill 都处理 PDF 在 description 中区分具体操作,如"PDF 创建"vs"PDF 读取"
通用 Skill 与专用 Skill 重叠 专用 Skill 的 description 中明确写出区别于通用 Skill 的场景
功能相似的两个 Skill 考虑合并为一个 Skill,通过内部分支处理不同情况

Skill 的 description 应当"排他性"地描述自己的适用场景,而不仅仅是描述自己"能做什么"。能做什么 ≠ 应该什么时候用。


使用 Description 优化工具测试触发

skill-creator Skill 提供了一个 description 优化脚本,可以自动评估触发准确率。

实例

# 运行 description 优化循环
# --eval-set:测试用例文件路径
# --skill-path:待优化的 Skill 路径
# --max-iterations:最大迭代次数
python -m scripts.run_loop \
  --eval-set evals/trigger-eval.json \
  --skill-path my-skill/ \
  --model claude-sonnet-4-20250514 \
  --max-iterations 5 \
  --verbose

脚本会自动运行测试、评估得分、修改 description,并输出最优结果。

详细的 description 优化方法参见第 24 篇:Skills 描述优化技巧