使用强制评估钩子,提高 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

  3. …

但是这本身是一件很主观的事情,根据你输入的 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