扩展 Claude 的技能
一句话
技能(Skills)扩展 Claude 的能力,通过创建和管理自定义指令集,让 Claude 能够执行特定任务或提供专业知识。
什么时候翻这页
- 当你发现自己在聊天中反复粘贴相同的指令、清单或多步骤流程时
- 当你想要创建可重用的自定义命令来扩展 Claude 的功能时
- 当你需要组织和管理复杂的操作流程时
- 当你想要与其他开发者共享特定的工作流程或专业知识时
核心概念
- 技能(Skills):扩展 Claude 能力的自定义指令集,通过
SKILL.md文件定义 - 内置技能(Bundled skills):Claude Code 预装的技能,如
/code-review、/debug等 - 动态上下文注入(Dynamic context injection):使用
!`command`语法在技能执行前运行命令并获取输出 - 子代理执行(Subagent execution):使用
context: fork让技能在隔离环境中运行 - 技能层级(Skill hierarchy):技能可以存储在个人、项目、企业或插件级别,有不同的作用范围
怎么做
创建你的第一个技能
-
创建技能目录:
mkdir -p ~/.claude/skills/技能名称 -
创建
SKILL.md文件,包含 YAML frontmatter 和指令内容:--- description: 技能描述,告诉 Claude 何时使用此技能 --- ## 指令标题 技能的具体指令内容 -
测试技能:
- 让 Claude 自动调用:询问与描述匹配的问题
- 直接调用:使用
/技能名称命令
技能配置选项
在 SKILL.md 的 YAML frontmatter 中可以配置:
name:显示名称description:技能描述和用途disable-model-invocation:阻止 Claude 自动调用allowed-tools:技能激活时可使用的工具context:设置为fork在子代理中运行paths:限制技能仅在特定文件路径下激活
命令 / 配置速查
| 配置项 | 作用 | 示例 |
|---|---|---|
description | 技能描述和用途 | description: 总结未提交的更改并标记风险 |
disable-model-invocation | 阻止 Claude 自动调用 | disable-model-invocation: true |
allowed-tools | 技能激活时可使用的工具 | allowed-tools: Bash(git *) Read Grep |
context: fork | 在子代理中运行技能 | context: fork |
agent | 指定子代理类型 | agent: Explore |
paths | 限制技能激活的文件路径 | paths: **/*.js, **/*.ts |
初学者易错点
- 技能描述过于模糊,导致 Claude 无法正确识别何时使用该技能
- 技能内容过于冗长,增加了不必要的 token 消耗
- 忘记设置
disable-model-invocation: true导致不希望自动执行的技能被触发 - 动态上下文注入语法错误,导致命令无法正确执行
- 技能层级混淆,不清楚不同级别技能的作用范围
相关词条
commands内置命令参考sub-agents子代理plugins插件系统permissions权限管理memory持久化上下文hooks钩子系统