加载中

排查技能问题

第 6 课8 分钟
本节课内容学完后,您将能够
  • 使用技能验证器在调试前捕获结构性问题
  • 诊断并修复常见的技能触发和加载问题
  • 解决企业、个人和项目技能之间的技能优先级冲突
  • 调试运行时错误,包括缺少依赖项、权限和路径问题

排查技能问题

加载中

排查技能问题 · 4 min

摘要文字记录

当技能无法按预期工作时,问题通常属于几个可预测的类别之一。本视频将逐一讲解这些情况——从无法触发的技能,到优先级冲突,再到运行时故障——并为您提供一套系统化的故障排查方法。您还将了解技能验证器工具,以及如何使用 claude --debug 来诊断加载问题。

关键要点

  • 从技能验证器工具开始——它能在您花时间调试其他问题之前捕获结构性问题
  • 如果技能无法触发,原因几乎总是出在描述上——添加与您实际表达请求方式相匹配的触发短语
  • 如果技能无法加载,请检查 SKILL.md 是否位于一个命名目录内(而不是在技能根目录下),并且文件名是否恰好为 SKILL.md
  • 如果使用了错误的技能,说明您的描述过于相似——让它们更具区分度
  • 对于运行时错误,请检查依赖项、文件权限(chmod +x)以及路径分隔符(始终使用正斜杠)

当技能无法正常工作时,问题通常属于以下几类之一:技能不触发、不加载、存在冲突,或在运行时失败。好消息是,大多数修复方法都相当直接。

使用技能验证器

首先要尝试的是 claude plugin validate 命令。在您的 shell 中,对于个人技能运行 claude plugin validate ~/.claude/skills,对于项目技能运行 claude plugin validate .claude/skills。该命令需要 Claude Code v2.1.233 或更高版本。

验证器会找出那些 frontmatter 无法解析的 SKILL.md 文件,这样您就能在花时间调试其他问题之前先发现这个问题。上面的视频展示了一个单独的验证工具,您可以通过 uv 安装它。

技能无法触发

您的技能存在且通过了验证,但 Claude 在您期望的时候没有使用它。原因几乎总是出在描述上。

Claude 使用语义匹配,因此您的请求需要与描述的含义有所重叠。如果重叠不够,就不会匹配。以下是应对方法:

  • 对照您实际表达请求的方式检查您的描述
  • 添加用户实际会说的触发短语
  • 用诸如"帮我分析一下这个的性能"、"为什么这个这么慢?"、"让这个更快一点"之类的变体进行测试
  • 如果任何变体未能触发,请将这些关键词添加到您的描述中

技能无法加载

如果当您询问 Claude"有哪些可用技能"时,您的技能没有出现,请检查以下结构性要求:

  • SKILL.md 文件必须位于一个命名目录内,而不是在技能根目录下
  • 文件名必须恰好为 SKILL.md——"SKILL"全部大写,"md"小写

运行 claude --debug 查看加载错误。留意提及您技能名称的消息。有时仅凭这一点就能直接指出问题所在。

使用了错误的技能

如果 Claude 使用了错误的技能,或者在多个技能之间似乎感到困惑,您的描述很可能过于相似。让它们更具区分度。尽可能具体不仅有助于 Claude 决定何时使用您的技能——还能防止与其他听起来相似的技能发生冲突。

技能优先级冲突

如果您的个人技能被忽略,可能是有一个企业级或更高优先级的技能使用了相同的名称。

技能优先级层级结构——企业级高亮显示于个人、项目和插件之上——旁边是 managed-settings.json 文件名

例如,如果存在一个企业级的"code-review"技能,而您也有一个个人的"code-review"技能,企业级的那个每次都会胜出。您的选择:

  1. 将您的技能重命名为更具区分度的名称(这通常是更简单的方法)
  2. 与您的管理员沟通企业级技能的情况

插件技能未出现

安装了插件但看不到它的技能?运行 /plugin 并检查该插件是否列在已安装下并已启用,然后查看错误标签页。如果您是在本次会话中安装的,请运行 /reload-plugins。

如果之后技能仍未出现,可能是插件结构有误。技能应从插件根目录下的 skills/ 目录加载,而不是从 .claude-plugin/ 内部加载。在您的 shell 中,对该插件的目录运行 claude plugin validate,以检查其清单文件以及每个技能的 frontmatter。

运行时错误

技能能够加载,但在执行过程中失败。几个常见原因:

  • 缺少依赖项: 如果您的技能使用了外部软件包,必须先安装它们。将依赖信息添加到您的技能描述中,让 Claude 知道需要什么。
  • 权限问题: 脚本需要执行权限。对您的技能所引用的任何脚本运行 chmod +x。
  • 路径分隔符: 始终使用正斜杠,即使在 Windows 上也是如此。

快速故障排查清单

  • 无法触发? 改进您的描述并添加触发短语。
  • 无法加载? 检查您的路径、文件名和 YAML 语法。
  • 使用了错误的技能? 让各个描述之间更具区分度。
  • 被遮蔽了? 检查优先级层级结构,必要时重命名。
  • 插件技能缺失? 检查 /plugin 中的错误,然后运行 /reload-plugins。
  • 运行时失败? 检查依赖项、权限和路径。

课程反思

  • 您在自己的工作中遇到过这些故障排查场景吗?哪种修复方法能为您节省最多时间?
  • 您会如何建立一套流程,在与团队分享技能之前先对其进行验证?

课程总结

恭喜您完成了《Agent Skills 入门》课程!您已经学会了如何在 Claude Code 中创建、配置、分享和排查技能问题。当您开始为自己的工作流构建技能时,请记住:最好的技能往往来自真实的痛点——从您发现自己最常重复的那些指令开始。