Skip to main content

Claude Code Skills 不会自动激活?这有个解决方案Claude Code 的 Skills 功能号称是"自主激活"的——只要你的请求匹配技能描述,Claude 就会自动使用

  1. Claude Code Skills 不会自动激活?这有个解决方案

    Claude Code 的 Skills 功能号称是"自主激活"的——只要你的请求匹配技能描述,Claude 就会自动使用。但现实很骨感:它根本不会

    作者创建了一个 research 技能,用于验证信息来源。每当说"research this",Claude 应该自动调用该技能。结果呢?Claude 每次都无视技能,直接蛮干。

    问题根源

    Claude 太过专注于完成任务,会直接跳过检查可用工具的步骤。即使 Hook 提醒"检查一下 skills",Claude 也当成背景噪音忽略。

    解决方案:用 Hook 强制激活

    核心思路:不要依赖"自主激活",而是通过 UserPromptSubmit Hook 检测触发词,显式命令 Claude 使用技能。

    # 温柔提醒(无效)
    echo '💡 Check skills for relevant skills'
    
    # 强制指令(有效)
    echo "🔍 INSTRUCTION: Use Skill(research) to handle this"
    


    区别在于:一个是"请考虑一下",另一个是"闭嘴听令"!

    更简洁的通用方案

    后来作者发现了更简单的方式——一条通用 Hook 指令适用于所有技能:

    "command": "echo 'INSTRUCTION: If prompt matches any skill keywords, use Skill(skill-name) to activate it.'"
    


    无需维护关键词脚本,无需处理冲突。

    实测结果

    20 次测试,成功率约 50%——基本靠运气。但比维护复杂脚本省心多了。

    结论:官方说 Skills 会自动激活,实际不会。用简单 Hook 碰碰运气,重要任务还是显式调用 Skill(skill-name) 最靠谱。

    🔗 原文链接

    #ClaudeCode #AI工具 #开发技巧 #Hooks #编程 Claude Code Skills Don't Auto-Activate (a workaround) - Scott Spence
1px