概述
代理技能使用专业功能扩展 Claude,Claude 会在相关时自主调用这些功能。技能被打包为SKILL.md 文件,包含说明、描述和可选的支持资源。
有关技能的全面信息,包括优势、架构和编写指南,请参阅代理技能概述。
技能如何与 SDK 配合使用
使用 Claude 代理 SDK 时,技能具有以下特点:- 定义为文件系统工件:在特定目录(
.claude/skills/)中创建为SKILL.md文件 - 从文件系统加载:技能从配置的文件系统位置加载。您必须指定
settingSources(TypeScript)或setting_sources(Python)以从文件系统加载技能 - 自动发现:加载文件系统设置后,在启动时从用户和项目目录发现技能元数据;触发时加载完整内容
- 模型调用:Claude 根据上下文自主选择何时使用它们
- 通过 allowed_tools 启用:将
"Skill"添加到您的allowed_tools以启用技能
默认行为:默认情况下,SDK 不加载任何文件系统设置。要使用技能,您必须在选项中显式配置
settingSources: ['user', 'project'](TypeScript)或 setting_sources=["user", "project"](Python)。在 SDK 中使用技能
要在 SDK 中使用技能,您需要:- 在
allowed_tools配置中包含"Skill" - 配置
settingSources/setting_sources以从文件系统加载技能
技能位置
技能根据您的settingSources/setting_sources 配置从文件系统目录加载:
- 项目技能(
.claude/skills/):通过 git 与您的团队共享 - 当setting_sources包含"project"时加载 - 用户技能(
~/.claude/skills/):跨所有项目的个人技能 - 当setting_sources包含"user"时加载 - 插件技能:与已安装的 Claude Code 插件捆绑
创建技能
技能定义为包含具有 YAML 前置内容和 Markdown 内容的SKILL.md 文件的目录。description 字段确定 Claude 何时调用您的技能。
示例目录结构:
- Claude Code 中的代理技能:包含示例的完整指南
- 代理技能最佳实践:编写指南和命名约定
工具限制
SKILL.md 中的
allowed-tools 前置内容字段仅在直接使用 Claude Code CLI 时受支持。通过 SDK 使用技能时不适用。使用 SDK 时,通过查询配置中的主 allowedTools 选项控制工具访问。allowedTools 选项:
假设第一个示例中的导入语句在以下代码片段中。
发现可用技能
要查看 SDK 应用程序中可用的技能,只需询问 Claude:测试技能
通过提出与其描述相匹配的问题来测试技能:故障排除
找不到技能
检查 settingSources 配置:仅当您显式配置settingSources/setting_sources 时才会加载技能。这是最常见的问题:
settingSources/setting_sources 的更多详情,请参阅 TypeScript SDK 参考或 Python SDK 参考。
检查工作目录:SDK 相对于 cwd 选项加载技能。确保它指向包含 .claude/skills/ 的目录:
技能未被使用
检查技能工具是否启用:确认"Skill" 在您的 allowedTools 中。
检查描述:确保它具体且包含相关关键字。有关编写有效描述的指导,请参阅代理技能最佳实践。
其他故障排除
有关一般技能故障排除(YAML 语法、调试等),请参阅 Claude Code 技能故障排除部分。相关文档
技能指南
- Claude Code 中的代理技能:包含创建、示例和故障排除的完整技能指南
- 代理技能概述:概念概述、优势和架构
- 代理技能最佳实践:有效技能的编写指南
- 代理技能食谱:示例技能和模板
SDK 资源
- SDK 中的子代理:具有编程选项的类似文件系统代理
- SDK 中的斜杠命令:用户调用的命令
- SDK 概述:一般 SDK 概念
- TypeScript SDK 参考:完整 API 文档
- Python SDK 参考:完整 API 文档