AI News HubLIVE
站内改写3 分钟阅读

如何在Claude中创建自定义技能:逐步指南

本文详细介绍了如何在Claude中创建自定义技能(Skills),从基础概念到实际构建一个数据质量审核技能。覆盖了技能的工作原理、文件结构、配置选项,以及在Claude Code和Web/桌面应用中的使用差异。无需编程基础即可创建简单技能,通过Markdown即可定义任务指令。

来源Analytics Vidhya作者: Janvi Kumari

在人工智能模型日益强大的今天,如何让AI工具更高效地服务于特定工作流程成为团队关注的焦点。Claude作为一款先进的AI助手,能够审查数据、检查代码、撰写报告和准备演示文稿,但团队经常发现自己在每次对话中重复相同的结构、验证规则、公司标准和最终检查指令。这种重复不仅浪费时间,还导致结果不一致。

Claude的自定义技能(Custom Skills)正是为解决这一痛点而设计。它通过打包可重用的指令、工作流、模板、脚本、示例和参考文件,让Claude能够在匹配任务时自动加载这些资源。本文将全面解析Claude技能的工作原理,探讨配置选项,并逐步构建一个实用的CSV数据审核技能。

什么是Claude自定义技能?

一个技能本质上是一个目录,包含让Claude完成特定任务的指令和可选资源。每个技能至少需要一个SKILL.md文件,该文件定义了技能的功能、使用场景以及Claude应遵循的步骤。它还可以定义输出格式,并指向脚本、模板、示例或参考文件。

技能遵循Agent Skills开放标准(agentskills.io),其核心——名称、描述和纯Markdown——可在Claude应用、Claude Code、Claude Agent SDK和Claude开发者平台之间移植。不同的产品会在此基础上扩展自己的特性,这也是大多数混淆的来源。

技能与自定义命令的合并

如果您之前使用过Claude Code,可能已经在.claude/commands/目录下存放了一些文件。现在自定义命令已合并到技能中。.claude/commands/deploy.md和.claude/skills/deploy/SKILL.md都会创建/deploy命令,行为完全相同。现有的命令文件继续有效,技能在此基础上增加了可选功能:支持文件的目录、控制调用方式的前言元数据,以及任务相关时的自动加载。如果技能和命令同名,技能优先。

是否需要编程?

不需要。一个基本的自定义技能只需要Markdown。例如,以下就是一个完整的技能:

---
name: code-review-python
---

Review Python code for best practices, type hints, and PEP 8 compliance.

当需要分析数据、处理文件、验证输出、生成可视化、转换结构化信息、调用命令行工具、执行确定性计算、创建或修改文档,或自动化开发工作流时,代码才会派上用场。规则很简单:纯指令工作流不需要代码;确定性处理或自动化需要代码帮助;外部系统集成通常需要工具、脚本或MCP。从Markdown开始,仅在指令无法产生可靠执行时才添加代码。

Claude技能的工作原理

技能采用渐进式披露机制,而不是将每个技能和每个文件都加载到上下文窗口中。Claude分阶段加载信息:

  • 阶段1:发现:启动时,Claude仅读取每个技能的元数据(名称和描述),根据描述判断是否匹配您的请求。
  • 阶段2:指令加载:一旦Claude确定技能相关,就加载SKILL.md的Markdown正文。
  • 阶段3:支持资源:Claude根据需要读取脚本、示例、引用和模板。参考文件和数据在读取前不消耗上下文令牌;脚本通过bash执行,只有输出消耗上下文。

一个重要后果:技能内容在会话中持续存在。在Claude Code中调用技能后,渲染的SKILL.md作为一条消息进入对话,并在会话剩余部分保持。因此,应将在整个任务中适用的指导写为常设指令,而非一次性步骤。SKILL.md中的每一行都是反复出现的令牌成本,应保持正文简洁,将细节推送到参考文件中。

技能剖析

典型的技能目录结构:

  • SKILL.md(必需):YAML前言 + Markdown指令
  • references/:详细信息的参考文件(编码标准、业务规则等)
  • examples/:好结果和坏结果的示例
  • templates/:固定输出结构
  • scripts/:确定性处理脚本

仅打包文件是不够的,需要在SKILL.md中显式引用它们。建议将SKILL.md控制在500行以内。

前言参考

前言的便携核心字段是name(标识符/显示名称)和description(技能功能和使用场景)。在Claude Code中,所有前言字段都是可选的,只有description推荐填写。其他字段如when_to_use(触发短语)、argument-hint(自动完成提示)、arguments(命名位置参数)、disable-model-invocation(禁止自动加载)、user-invocable(隐藏/菜单)、allowed-tools/disallowed-tools(工具权限)、model(指定模型)、effort(努力水平)、context(子代理上下文)、hooks(生命周期钩子)、paths(自动激活的文件路径模式)、shell(shell类型)等提供了更精细的控制。

在Claude.ai(Web/桌面应用)中,name和description必须填写,name最多64字符,description最多200字符。还可选dependencies字段声明所需的包。

手把手项目:构建数据质量审核技能

我们将构建一个分析CSV数据集并检查行/列计数、缺失值、重复记录、数据类型、高基数列、常量列、数值摘要及其他异常模式的技能。

前提条件

  • 安装Claude Code
  • Python 3.9以上
  • Pandas(pip install pandas)
  • 一个项目目录和用于测试的CSV文件

步骤1:创建技能目录

对于项目级技能:

.claude/skills/data-quality-auditor/

对于个人技能(跨所有项目),使用~/.claude/skills/。

步骤2:创建SKILL.md

在.claude/skills/data-quality-auditor/SKILL.md中写入内容,包含YAML前言和Markdown指令,定义技能名称、描述、触发条件,以及具体的审核步骤。例如,设置allowed-tools允许Claude运行Python脚本。

步骤3:编写审核脚本

在scripts/目录下创建Python脚本(如audit.py),使用Pandas加载CSV并生成各项统计信息。脚本应输出可被Claude解析的结果。

步骤4:使用技能

在Claude Code中,可以通过/命令调用技能,或让Claude根据描述自动加载。对于Web/桌面应用,需要将技能目录上传到账户设置中。

结论

Claude的自定义技能为团队提供了标准化工作流、提高一致性和效率的强大工具。从简单的Markdown指令到包含脚本和参考文件的复杂技能,用户可以根据需求逐步扩展。无论是代码审查、数据质量检查还是报告生成,技能都能减少重复劳动,让AI更智能地适应团队需求。