先决条件
- Claude Code 版本 1.0 或更高版本
- 基本熟悉 Claude Code
什么是 Agent Skills?
Agent Skills 将专业知识打包成可发现的功能。每个 Skill 包含一个SKILL.md
文件,其中包含 Claude 在相关时读取的指令,以及可选的支持文件,如脚本和模板。
Skills 如何被调用:Skills 是模型调用的——Claude 根据您的请求和 Skill 的描述自主决定何时使用它们。这与斜杠命令不同,斜杠命令是用户调用的(您明确输入 /command
来触发它们)。
好处:
- 为您的特定工作流程扩展 Claude 的能力
- 通过 git 在团队中共享专业知识
- 减少重复提示
- 组合多个 Skills 来完成复杂任务
要深入了解 Agent Skills 的架构和实际应用,请阅读我们的工程博客:为现实世界的代理配备 Agent Skills。
创建 Skill
Skills 存储为包含SKILL.md
文件的目录。
个人 Skills
个人 Skills 在您的所有项目中都可用。将它们存储在~/.claude/skills/
中:
- 您的个人工作流程和偏好
- 您正在开发的实验性 Skills
- 个人生产力工具
项目 Skills
项目 Skills 与您的团队共享。将它们存储在项目内的.claude/skills/
中:
- 团队工作流程和约定
- 项目特定的专业知识
- 共享实用程序和脚本
插件 Skills
Skills 也可以来自 Claude Code 插件。插件可能捆绑在安装插件时自动可用的 Skills。这些 Skills 的工作方式与个人和项目 Skills 相同。编写 SKILL.md
创建一个包含 YAML 前置元数据和 Markdown 内容的SKILL.md
文件:
description
字段对于 Claude 发现何时使用您的 Skill 至关重要。它应该包括 Skill 的功能和 Claude 应该何时使用它。
查看最佳实践指南获取完整的编写指导。
添加支持文件
在 SKILL.md 旁边创建其他文件:使用 allowed-tools 限制工具访问
使用allowed-tools
前置元数据字段来限制 Claude 在 Skill 激活时可以使用的工具:
- 不应修改文件的只读 Skills
- 范围有限的 Skills(例如,仅数据分析,不写文件)
- 您希望限制功能的安全敏感工作流程
allowed-tools
,Claude 将按照标准权限模型正常请求使用工具的权限。
allowed-tools
仅在 Claude Code 中的 Skills 支持。查看可用的 Skills
Claude 从三个来源自动发现 Skills:- 个人 Skills:
~/.claude/skills/
- 项目 Skills:
.claude/skills/
- 插件 Skills:与已安装插件捆绑
测试 Skill
创建 Skill 后,通过询问与您的描述匹配的问题来测试它。 示例:如果您的描述提到”PDF 文件”:调试 Skill
如果 Claude 不使用您的 Skill,请检查这些常见问题:使描述具体
太模糊:验证文件路径
个人 Skills:~/.claude/skills/skill-name/SKILL.md
项目 Skills:.claude/skills/skill-name/SKILL.md
检查文件是否存在:
检查 YAML 语法
无效的 YAML 会阻止 Skill 加载。验证前置元数据:- 第 1 行有开始的
---
- 在 Markdown 内容之前有结束的
---
- 有效的 YAML 语法(没有制表符,正确的缩进)
查看错误
使用调试模式运行 Claude Code 以查看 Skill 加载错误:与团队共享 Skills
推荐方法:通过插件分发 Skills。 通过插件共享 Skills:- 在
skills/
目录中创建包含 Skills 的插件 - 将插件添加到市场
- 团队成员安装插件
步骤 1:将 Skill 添加到您的项目
创建项目 Skill:步骤 2:提交到 git
步骤 3:团队成员自动获得 Skills
当团队成员拉取最新更改时,Skills 立即可用:更新 Skill
直接编辑 SKILL.md:删除 Skill
删除 Skill 目录:最佳实践
保持 Skills 专注
一个 Skill 应该解决一个功能: 专注:- “PDF 表单填写”
- “Excel 数据分析”
- “Git 提交消息”
- “文档处理”(拆分为单独的 Skills)
- “数据工具”(按数据类型或操作拆分)
编写清晰的描述
通过在描述中包含特定触发器来帮助 Claude 发现何时使用 Skills: 清晰:与团队一起测试
让队友使用 Skills 并提供反馈:- Skill 是否在预期时激活?
- 指令是否清晰?
- 是否缺少示例或边缘情况?
记录 Skill 版本
您可以在 SKILL.md 内容中记录 Skill 版本以跟踪随时间的变化。添加版本历史部分:故障排除
Claude 不使用我的 Skill
症状:您询问相关问题,但 Claude 不使用您的 Skill。 检查:描述是否足够具体? 模糊的描述使发现变得困难。包括 Skill 的功能和何时使用它,以及用户会提到的关键术语。 太通用:Skill 有错误
症状:Skill 加载但无法正常工作。 检查:依赖项是否可用? Claude 将在需要时自动安装所需的依赖项(或请求安装权限)。 检查:脚本是否有执行权限?scripts/helper.py
错误:scripts\helper.py
(Windows 样式)
多个 Skills 冲突
症状:Claude 使用错误的 Skill 或在类似的 Skills 之间似乎困惑。 在描述中要具体:通过在描述中使用不同的触发术语来帮助 Claude 选择正确的 Skill。 而不是:示例
简单 Skill(单个文件)
具有工具权限的 Skill
多文件 Skill
在描述中列出所需的包。在 Claude 可以使用它们之前,包必须安装在您的环境中。