使用强制评估钩子,提高 Skills 命中率

Mar 09, 2026 舍温 舍温 11 min read AI Coding Claude Code

在 Claude Code 的实际使用过程中,Skill 是否触发,Skill 触发哪个,是一件带有概率性质色彩,很玄学的事情
我们都知道 description 部分的内容,决定了这个 Skill 是否会触发,什么时候会触发这个 Skill。

description helps Claude decide when to load it automatically.

官方文档对 Skill 的是否触发也写的云里雾里,只写了两个建议。

https://code.claude.com/docs/en/skills#skill-not-triggering
Skill not triggering
If Claude doesn’t use your skill when expected:

  1. Check the description includes keywords users would naturally say

  2. Try rephrasing your request to match the description more closely

但是这本身是一件很主观的事情,根据你输入的 prompts,使得 Skills 的是否会触发,触发时机,蒙上了一层”不可知,不可名状”的表现。
程序员喜欢确定的事情,因为程序是一件确定的事情,确定的输入给到了确定的结果。但是,在面向黑洞洞的终端 Terminal 的时候,更像更像是面向计算机跳舞的神婆。

这篇帖子给到了几个有用的例子,利用 hooks 来评估 Skills,以提升 Skills 的触发概率和准确度。如果你是一个非常狂热的 skills 爱好者,那么这个方法是你值得深究的。
作者通过系统化的测评方法,给到了数据,在启用强制评估钩子的情况下,启用 Skills 的概率能够达到惊人的 84%:

No hooks: 0% activation
Simple instruction hook: 20% (the coin flip)
LLM eval hook: 80% (fastest, cheapest)
Forced eval hook: 84% (most consistent)

Hooks 是 Claude Code 的一个强大的用法,在特定的时间点,如”UserPromptSubmit = 提交 prompts 前触发”,在”SubagentStart = 派发出一个 sub-agent 时触发”,允许我们注入一些特定的代码,做一些特别的事。
3 种钩子来优化 skills 的触发:

  • 简单评估钩子: 每次在 prompts 提交前,加一句简单的表述,建议 agent 来判断并启用某个 Skill。

  • LLM 评估钩子: 每次在 prompts 提交前,把现在所有的 skills 列出来,给到一个更小的模型,如 haiku(更快更便宜),来决定哪个 skill 更适合处理现在的 prompts,并启用它。

  • 强制评估钩子: 每次在 prompts 提交前,通过 [强制且系统化] 的 step 1-2-3 描述,告诉现在的主模型,判断哪个 skills 是适合现在的 prompts 的,并启用它。

我实际做了本地的测试,打出了这三种钩子的技能触发和日志,结果如下。

| | 简单评估钩子 | LLM 评估钩子 | 强制评估钩子 |

skill-simple-instruction-hook skill-llm-eval-hook skill-forced-eval-hook
触发的 Skill
输出的日志

我的结论是:

  • 对于 Skill 狂热爱好者(特指本地 + Project 有 > 50 个 skills 的操作人员),选用 LLM 评估钩子或者强制评估钩子,能显著的发挥 Skills 的能力,不用再担心 Skills 没有被触发了。

  • 强制评估钩子效果最好,但是整体太重,需要花费上下文,每次都会显示,或许对于想尝试的人员来说,LLM 评估钩子是一个好的选择。

  • 简单评估钩子是个添头,和每次你手打:”请检查本地的 skills,如果有合适的,帮我触发它”的效果是类似的。

最后给到 hooks 的地址和评测框架:

Last updated on