30款热门AI模型一站整合DeepSeek/GLM/Claude 随心用限时 5 折。 点击领海量免费额度Claude Code 的 Skills 功能是开发者提升 AI 助手工作效率的“超级武器”。它让你能把那些重复粘贴的指令、复杂的多步骤流程封装成一个可复用、可智能触发的“技能包”。简单来说Skills 就是 Claude Code 里的“自定义指令”或“宏”但它更强大、更智能能深度集成到你的开发工作流中。这篇文章将彻底讲清楚 Skills 是什么、怎么装、怎么写、怎么用。无论你是想自动化代码审查、一键部署还是为特定项目定制专属的 AI 助手读完本文你都能立刻上手。我们会从核心概念讲起一步步带你创建第一个 Skill并深入高级用法和实战技巧。1. 核心能力速览在深入细节前我们先通过一个表格快速了解 Claude Code Skills 的核心特性让你判断它是否适合你当前的需求。能力项说明项目类型Claude Code 的内置扩展机制非独立软件包。开源/来源Anthropic 官方功能遵循 Agent Skills 开放标准。主要功能创建、管理和共享自定义技能扩展 Claude 的能力。支持自动触发或手动调用可执行复杂任务、注入动态上下文、在子代理中运行。硬件/环境门槛无特殊硬件要求。需要已安装并运行 Claude Code 桌面版或 Web 版。显存/资源占用不直接占用额外显存。Skill 内容仅在调用时加载对模型上下文窗口占用影响小。复杂技能如运行脚本会消耗对应进程资源。支持平台支持 Claude Code 的所有平台macOS, Windows, Linux。启动/安装方式无需额外安装。通过创建特定目录和SKILL.md文件即可定义。部分高级功能如skill-creator插件需通过/plugin install安装。是否支持 API本身不是对外 API但 Skills 可以封装调用外部 API 的逻辑如调用 GitHub API、部署服务。Claude Code 本身提供/claude-api等捆绑技能。是否支持批量任务支持。可通过 Skills 定义批量处理逻辑如/batch捆绑技能或创建自定义批量处理技能。适合场景1.自动化重复任务代码审查、提交信息生成、部署流程。2.项目知识库团队编码规范、API 使用指南。3.复杂工作流结合外部工具Git、构建系统的多步骤操作。4.个性化助手为特定技术栈或项目定制 Claude 的行为。2. 适用场景与使用边界Skills 的核心价值在于将你的“经验”和“流程”固化让 Claude 从“通用助手”变成你的“专属专家”。下面是一些典型的使用场景非常适合的场景固化团队规范将代码审查清单、API 设计规范、提交信息格式要求写成 Skill确保团队输出一致性。自动化高频操作将“运行测试并部署到预发环境”这一系列命令封装成/deploy-staging一键执行。注入动态上下文在 Skill 中嵌入!git status 这样的命令让 Claude 的回答基于实时代码状态而非过时的聊天记录。创建领域专家为特定项目如一个 React 组件库或一个微服务创建专属 Skill包含该项目的特有约定、脚本和知识。探索与报告创建 Skill 来自动分析代码库结构、生成依赖图或测试覆盖率报告。需要注意的边界不是万能脚本Skills 的核心是“提示工程”它指导 Claude 如何使用其现有工具读文件、运行命令等。对于高度复杂、需要精确控制流程的逻辑可能仍需编写独立脚本。依赖 Claude 的工具权限Skill 中如果包含allowed-tools来预授权工具如Bash(git *)需要用户信任该 Skill 的来源。对于检入项目的 Skill首次使用时会触发工作区信任确认。上下文长度限制虽然 Skill 内容仅在调用时加载但过长的 Skill 描述和内容仍会占用宝贵的上下文窗口。需保持简洁或将详细文档拆分为支持文件。安全与合规Skills 可以执行 Shell 命令。务必只从可信来源安装或创建 Skill并仔细审查包含!command 或allowed-tools 的 Skill 内容防止恶意操作。3. 环境准备与前置条件使用 Skills 功能前你需要确保基础环境就绪。核心前提Claude Code你必须已经安装并可以正常运行 Claude Code。无论是桌面版还是 Web 版确保你能正常启动 Claude Code 并与 Claude 模型对话。验证 Claude Code 版本部分高级功能如/run,/verify,/run-skill-generator捆绑技能需要 Claude Code v2.1.145 或更高版本。你可以在 Claude Code 界面中通过/version命令查看当前版本。操作系统与权限macOS / Linux需要终端Terminal操作权限用于创建目录和文件。Windows需要 PowerShell 或 CMD或者使用 WSL (Windows Subsystem for Linux) 以获得更一致的体验。部分涉及 Shell 命令注入的 Skill 可能需要设置CLAUDE_CODE_USE_POWERSHELL_TOOL1环境变量。文件系统权限需要有在用户目录~/.claude/或项目目录.claude/下创建和写入文件的权限。基础工具链可选但推荐Git许多 Skills 会与 Git 仓库交互例如总结变更、创建提交。代码编辑器如 VS Code、Vim、Sublime Text 等用于编辑SKILL.md文件。Python/Node.js 等如果你创建的 Skill 需要运行外部脚本则需要对应的运行时环境。4. 安装部署与启动方式Skills 不是传统意义上的“安装”而是“创建”和“放置”。Claude Code 会自动发现并加载它们。我们分步来看如何部署你的第一个 Skill。4.1 理解 Skills 的存放位置Skill 的生效范围取决于你将它放在哪里。Claude Code 会按以下优先级加载和覆盖 Skills企业级最高优先级通过托管设置部署组织内所有用户可用。个人级~/.claude/skills/存放在用户主目录下对你所有项目生效。这是创建通用个人技能的最佳位置。项目级.claude/skills/存放在项目根目录的.claude文件夹内仅对该项目生效。适合存放项目特定的配置和流程。插件级plugin/skills/随插件安装在插件启用时生效。捆绑 Skills最低优先级Claude Code 内置的技能如/code-review,/debug。可以被用户自定义的同名 Skill 覆盖。自动发现机制Claude Code 会从当前工作目录开始向上查找所有父目录中的.claude/skills/也会向下查找子目录中的.claude/skills/。这意味着在 Monorepo 中子包可以拥有自己独立的 Skills。4.2 创建你的第一个 Skill总结 Git 变更让我们动手创建一个最实用的 Skill自动总结未提交的 Git 变更并识别潜在风险。步骤 1创建 Skill 目录在你的个人 Skills 目录下为新 Skill 创建一个文件夹。文件夹名将成为命令名。# 在终端中执行 mkdir -p ~/.claude/skills/summarize-changes步骤 2编写 SKILL.md 文件在刚创建的目录中新建一个名为SKILL.md的文件。这是 Skill 的核心文件包含两部分YAML Frontmatter配置和 Markdown 内容指令。使用你喜欢的编辑器创建并编辑~/.claude/skills/summarize-changes/SKILL.md内容如下--- description: Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff. --- ## Current changes !git diff HEAD ## Instructions Summarize the changes above in two or three bullet points, then list any risks you notice such as missing error handling, hardcoded values, or tests that need updating. If the diff is empty, say there are no uncommitted changes.关键点解析Frontmatter (---之间)description字段至关重要。Claude 根据它来决定何时自动调用此 Skill。这里描述为“当用户询问变更、需要提交信息或审查差异时使用”。**动态上下文注入 (!git diff HEAD)**这行代码会在 Skill 内容发送给 Claude **之前**被执行并将其输出结果替换到原位置。这样Claude 收到的就是实时的git diff 结果而不是一条命令文本。指令部分清晰告诉 Claude 该做什么“用两三点总结变更然后列出风险”。步骤 3测试 Skill打开一个 Git 仓库并做一些修改。启动或切换到 Claude Code 会话。测试方式一自动触发直接问 Claude “What did I change?”我改了啥。Claude 识别到你的问题匹配 Skill 的description会自动加载并执行/summarize-changes。测试方式二手动调用在聊天框中输入/summarize-changes并回车。无论哪种方式你都应该立刻收到一个基于当前git diff的变更摘要和风险分析。4.3 实时变更检测与加载Claude Code 会监控~/.claude/skills/和项目.claude/skills/目录的文件变化。这意味着编辑现有 Skill修改SKILL.md后保存即可无需重启 Claude Code当前会话立即生效。新增/删除 Skill在已存在的目录内操作同样实时生效。新建顶级目录例如第一次创建~/.claude/skills/需要重启 Claude Code 以建立监控。5. 功能测试与效果验证创建 Skill 后如何验证它工作正常且有效我们从基础到高级分场景测试。5.1 基础功能测试触发与执行测试目标确保 Skill 能被正确发现、触发并产生预期输出。操作步骤列出可用 Skills在 Claude Code 中输入/查看自动补全列表你的 Skill如/summarize-changes应该出现在其中。检查 Skill 描述输入/skills或询问 “What skills are available?”Claude 会列出所有可用 Skills 及其描述确认你的 Skill 在其中且描述正确。手动触发测试直接输入/your-skill-name进行调用。观察 Claude 的响应是否符合SKILL.md中的指令。自动触发测试根据 Skill 的description设计一个自然语言问题。例如对于上面的summarize-changes可以问 “帮我看看我改了哪些文件” 或 “生成一个提交信息”。观察 Claude 是否会自动调用该 Skill。预期结果与判断标准成功Claude 正确执行了 Skill 定义的流程并输出了基于你指令的结果如变更总结。Skill 未触发Claude 没有使用 Skill而是用通用方式回答。可能原因description不够精确Skill 存放位置不对YAML 格式错误可用--debug启动 Claude Code 查看日志。Skill 触发但输出不符Claude 调用了 Skill但结果不是你想要的。需要检查SKILL.md中的指令是否清晰无歧义。5.2 高级功能测试参数传递与动态注入测试目标验证 Skill 能接收参数并能执行动态命令注入。创建一个带参数的 Skill创建一个修复 GitHub Issue 的 Skill~/.claude/skills/fix-issue/SKILL.md--- name: fix-issue description: Fix a GitHub issue disable-model-invocation: true arguments: [issue_number, branch_name] --- Fix GitHub issue $issue_number on branch $branch_name following our coding standards. 1. Read the issue description from the repository. 2. Understand the requirements. 3. Implement the fix. 4. Write or update tests. 5. Create a commit with a descriptive message referencing the issue.测试步骤手动调用并传参/fix-issue 123 feature-branch观察 Claude 的响应。它应该将$issue_number替换为123将$branch_name替换为feature-branch并基于此上下文开始工作。测试动态上下文注入使用之前的summarize-changes它已经包含了 !git diff HEAD。确保你在一个 Git 仓库中调用它并确认 Claude 的总结是基于最新的、真实的diff 内容而不是一个静态的例子。5.3 复杂场景测试在子代理中运行测试目标验证 Skill 可以在独立的子代理Subagent上下文中运行实现任务隔离。创建一个研究型 Skill创建~/.claude/skills/deep-research/SKILL.md--- name: deep-research description: Research a topic thoroughly within the codebase. context: fork agent: Explore --- Research $ARGUMENTS thoroughly: 1. Find all relevant files using the Glob and Grep tools. 2. Read and analyze the code in those files. 3. Summarize your findings with specific file references and code snippets. 4. Identify any potential issues or improvements.测试步骤在一个代码库中打开 Claude Code。输入/deep-research authentication logic。观察关键现象Claude 会启动一个独立的“Explore”代理。这个代理的对话上下文与你主会话隔离它只拥有该 Skill 的指令和 Explore 代理自带的工具主要是文件读取和搜索。它会专注地执行研究任务完成后将结果总结并传回主会话。判断成功标准任务在一个独立的“线程”中执行主会话的聊天历史不会干扰它。返回的结果是聚焦且深入的。6. 接口 API 与批量任务虽然 Skills 本身不是对外 HTTP API但它们极大地增强了 Claude Code 的程序化交互能力和批量处理能力。6.1 利用捆绑 Skills 实现“类 API”工作流Claude Code 内置了强大的捆绑 Skills可以组合使用来实现复杂工作流。/claude-api这个 Skill 允许 Claude 代表你调用 Claude API。你可以创建一个 Skill 来标准化 API 调用参数、处理错误和解析响应实现一个内部“微服务”。/batch这是处理批量任务的利器。你可以创建一个 Skill其逻辑是读取一个目录下的所有文件或处理一个文件列表然后结合/batch来让 Claude 对每个项目执行相似的操作。示例批量代码风格检查 Skill假设你有一个lint-files的 Skill它接收一个文件路径并输出 lint 建议。你可以这样调用/batch Run the lint-files skill on each file in the src/components/ directory.Claude 会利用/batch技能来并行或串行处理src/components/下的所有文件。6.2 创建支持批量处理的 Skill一个 Skill 本身可以设计成处理批量输入。关键在于 Skill 的指令要能接受参数或从上下文中获取文件列表。示例批量重命名文件 Skill (bulk-rename)--- name: bulk-rename description: Rename a batch of files according to a pattern. Provide a list of current and new filenames. disable-model-invocation: true --- You will be given a list of file rename operations in the format: - old_path_1 - new_path_1 - old_path_2 - new_path_2 ... Your task: 1. Verify each old_path exists. 2. For each operation, use the Bash tool to execute mv old_path new_path. 3. Report the result of each operation, and note any failures. 4. If a new_path already exists, ask for confirmation before overwriting. Here is the list: $ARGUMENTS调用方式你可以手动构造一个列表作为参数传入或者更常见的结合其他 Skill 或 Claude 的文件查找能力先生成这个列表再调用/bulk-rename。6.3 通过外部脚本实现 API 桥接对于需要与外部系统深度集成的场景可以在 Skill 中调用外部脚本由脚本负责调用真正的 HTTP API。示例调用外部部署系统的 Skill--- name: deploy-to-k8s description: Deploy the current service to Kubernetes staging environment. context: fork allowed-tools: Bash(${CLAUDE_PROJECT_DIR}/scripts/deploy.sh *) --- Deploy the service using the deployment script. The script handles building, tagging, pushing to registry, and applying Kubernetes manifests. Run: ${CLAUDE_PROJECT_DIR}/scripts/deploy.sh staging这里的${CLAUDE_PROJECT_DIR}会被替换为项目根目录的绝对路径。deploy.sh脚本内部可以包含调用 CI/CD API、K8s API 等所有逻辑。7. 资源占用与性能观察Skills 机制本身非常轻量其资源占用主要来自两个方面Claude 模型调用开销和 Skill 中执行命令的开销。1. 上下文令牌占用Skill 描述所有 Skills 的description和when_to_use会被加载到会话上下文中以便 Claude 判断何时触发。这部分有总字符数预算默认约为模型上下文窗口的1%。使用/doctor命令可以查看是否有 Skill 描述因超出预算被截断或移除。Skill 内容只有当 Skill 被调用时其完整的SKILL.md内容才会作为一条消息插入对话历史。之后它会参与正常的上下文压缩过程。频繁调用大型 Skill 可能会挤占其他对话内容的上下文空间。优化建议保持description简洁、精准。将大型参考文档移出SKILL.md放到支持文件中并通过链接引用。在设置中调整skillListingBudgetFraction或设置SLASH_COMMAND_TOOL_CHAR_BUDGET环境变量来增加预算。对于不常用的 Skill在skillOverrides设置中将其设为name-only仅显示名称不加载描述。2. 命令执行开销如果 Skill 使用了!command 动态注入这些命令会在 Skill 执行前运行。其资源占用CPU、内存、IO取决于命令本身。一个git diff 很快但一个启动完整测试套件的命令可能很重。性能观察在 Skill 执行时观察系统活动监视器如htop,任务管理器。如果 Skill 涉及长时间运行的进程Claude Code 的界面可能会在命令执行期间暂时无响应这是正常的。3. 子代理 (Subagent) 开销使用context: fork的 Skill 会启动一个新的 Claude 会话子代理。这会产生额外的模型调用成本令牌和可能的 API 费用取决于你的 Claude Code 配置。子代理独立运行其生命周期在任务完成后结束。主会话的上下文压力不会传递给子代理这对于处理复杂、独立的任务是有利的。8. 常见问题与排查方法问题现象可能原因排查方式解决方案Skill 未出现在/列表中1. 存放路径错误。2. 目录名或文件名不正确。3.SKILL.md缺少或格式错误。1. 检查路径个人 Skill 在~/.claude/skills/skill-name/SKILL.md。2. 运行claude --debug查看启动日志搜索解析错误。3. 输入/skills查看 Claude 识别到的列表。1. 确保目录和文件路径完全正确。2. 检查SKILL.md的 YAML frontmatter 格式---必须成对出现。3. 重启 Claude Code 以加载新创建的顶级目录。Claude 不自动触发 Skill1.description不够精确与用户问题不匹配。2. Skill 描述被上下文预算截断。3. 有更高优先级的同名 Skill。1. 检查 Skill 的description和when_to_use。2. 运行/doctor查看上下文使用情况。3. 检查是否存在企业级或个人级同名 Skill 覆盖了当前项目级 Skill。1. 优化description包含更具体的关键词。2. 简化描述或增加预算。3. 使用限定名称调用如/apps/web:deploy或调整 Skill 存放位置。Skill 被过度触发description太宽泛匹配了太多不相关的对话。回顾对话历史看 Skill 在哪些不该出现的时候被调用了。1. 使description更具体限定使用场景。2. 如果只想手动调用在 frontmatter 中添加disable-model-invocation: true。!command未执行1. 语法错误!后不是反引号或不在行首。2. 权限设置禁用了 Shell 执行。1. 检查SKILL.md中!command 的语法是否正确。br2. 检查 Claude Code 设置中disableSkillShellExecution是否为true。1. 确保格式为!command 或!多行。br2. 对于项目 Skill需要先接受工作区信任。br3. 在设置中将disableSkillShellExecution设为false默认。参数 ($ARGUMENTS) 未替换1. 占位符拼写错误。2. 参数包含空格未用引号包裹。1. 检查SKILL.md中是否包含$ARGUMENTS或$0,$1等。2. 尝试用引号包裹参数调用/skill arg with spaces。1. 确保占位符书写正确。2. 调用时用引号将包含空格的参数作为一个整体。例如/my-skill hello world。子代理 (context: fork) 未启动或报错1.agent字段指定的代理类型不存在或不可用。2. Skill 内容缺少明确的任务指令。1. 检查agent字段值如Explore,Plan,general-purpose或自定义代理名。2. 检查 Skill 内容是否是一个可执行的“任务”而非静态知识。1. 确保指定的代理类型有效。内置代理有Explore,Plan,general-purpose。2. 确保 Skill 内容是动作指令例如“Research X”、“Analyze Y”。9. 最佳实践与使用建议1. 从简单开始迭代优化不要试图一次性创建完美的、复杂的 Skill。先从自动化一个你每天手动操作3次以上的小任务开始如生成提交信息、运行特定测试。创建并测试通过后再逐步增加复杂度例如添加参数、动态注入或子代理。2. 精心设计descriptiondescription是 Skill 的“搜索引擎”。用自然语言描述 Skill 的功能和触发场景。把最关键的使用场景放在最前面因为描述可能被截断。例如不佳“A utility for git.”太宽泛优秀“Summarizes uncommitted git changes and flags risks. Use when asked ‘what changed’, for commit messages, or code review.”具体包含触发短语3. 保持 SKILL.md 简洁善用支持文件SKILL.md是每次调用都会加载到上下文的内容。将其保持在500行以内。将详细的 API 文档、示例集合、复杂脚本拆分成单独的支持文件如reference.md,examples/,scripts/并在SKILL.md中通过链接引用它们。这能显著减少上下文占用。4. 明确控制调用权限disable-model-invocation: true对于有副作用如部署、发送消息或需要你精确控制时机的 Skill务必设置此字段防止 Claude 自动触发。user-invocable: false对于纯背景知识类 Skill如项目架构说明可以设置此字段使其不出现在/菜单中仅供 Claude 在需要时自动加载。谨慎使用allowed-tools在项目级 Skill 中预授权工具如Bash(*)时确保你信任该 Skill 的所有协作者因为这会绕过每次的工具使用确认。5. 利用动态注入获取实时数据!command 是你的超能力。它让 Skill 基于**实时状态**工作而不是陈旧的聊天记录。常用于注入git 状态、当前目录文件列表、环境变量、API 调用结果等。6. 为复杂任务使用子代理 (context: fork)当任务需要深度专注、大量文件读取或与主会话隔离时使用context: fork和agent: Explore用于研究或agent: Plan用于多步骤规划。这能保持主会话的上下文清洁并让子代理使用更适合该任务的工具集。7. 使用skill-creator插件进行科学评估不要靠感觉判断 Skill 是否有效。安装官方skill-creator插件 (/plugin install skill-creatorclaude-plugins-official)它可以帮你创建测试用例集 (evals.json)。在干净环境中自动运行 A/B 测试有 Skill vs 无 Skill。量化 Skill 带来的通过率提升、耗时和令牌开销。基于测试结果迭代优化 Skill 的指令和描述。8. 安全与版本控制将项目级 Skills (.claude/skills/) 纳入 Git 版本控制作为项目资产的一部分。定期审查个人 Skills (~/.claude/skills/)清理不再使用的。对于来自外部的 Skill尤其是插件仔细检查其内容特别是包含!command 和allowed-tools 的部分确保没有安全风险。10. 总结与下一步Claude Code 的 Skills 功能将一个强大的通用 AI 助手转变为你个人或团队工作流中高度定制化的智能引擎。它的核心价值在于“固化流程”和“注入上下文”将重复劳动转化为一句命令或一个自然的问题。最值得尝试的起点/summarize-changes立即创建这个 Git 总结 Skill它几乎适用于所有开发项目能立刻提升代码审查和提交的效率。项目专属的/code-review覆盖默认的捆绑技能加入你们团队的特定代码规范、安全扫描规则和测试要求。一键部署流程将你们的部署检查清单跑测试、构建、推送、重启服务封装成一个/deploy-stagingSkill。最容易踩的坑路径错误这是新手最常见的问题。牢记个人 Skill 在~/.claude/skills/项目 Skill 在.claude/skills/。描述不准确导致 Skill 该触发时不触发或不该触发时乱触发。花时间打磨description。忘记disable-model-invocation: true让一个具有部署能力的 Skill 被 Claude 自动触发可能会造成意外后果。后续扩展方向探索插件市场通过/plugin发现社区创建的 Skills快速获得诸如数据库管理、云服务操作等能力。创建可视化 Skill参考官方文档中“生成视觉输出”的例子创建能生成图表、架构图的 Skill将代码库洞察可视化。与 MCP (Model Context Protocol) 服务器集成将 Skills 与连接外部数据源如 Jira、Notion、数据库的 MCP 服务器结合让 Claude 的能力突破本地文件系统的限制。现在打开你的终端创建第一个.claude/skills/目录开始构建你的专属 AI 技能库吧。每封装一个流程你就为自己节省了未来的无数次重复操作。 30款热门AI模型一站整合DeepSeek/GLM/Claude 随心用限时 5 折。 点击领海量免费额度