Skill 技能系统详解与设计方法

Claude Code 学习笔记

分类:核心功能 > Skill 技能系统

核心主题:Claude Code Skills 技能系统的架构原理、自定义技能设计开发与最佳实践

主要内容:本文全面解析 Claude Code 的 Skills 技能系统,涵盖技能架构与触发机制、Skill Creator 工具使用、技能配置文件格式、提示词设计方法、开发工作流、评估优化策略、插件技能开发以及最佳实践与设计模式,帮助读者从零掌握技能系统的设计与开发。

关键词:Claude Code, Skill, 技能系统, Skill Creator, 自定义技能, 技能开发, 技能设计, 技能触发, 提示词工程, 评估优化, 插件技能, CLAUDE.md

一、Skills 系统概述

1.1 什么是 Skills

Skills(技能)是 Claude Code 中一套可扩展的能力模块系统。每个 Skill 本质上是一个结构化的提示词模板,它告诉 Claude Code 在特定场景下应该如何表现、遵循什么流程、使用什么工具以及产出什么结果。Skills 让 Claude Code 从通用 AI 助手转变为领域专家。

核心概念:Skill = 提示词 + 元数据 + 配置。三者共同定义了一个特定能力的完整行为规范。

Skills 的设计哲学遵循"关注点分离"原则——每个技能专注于一个特定的任务领域,而不是试图在一个巨型提示词中处理所有场景。这种模块化设计带来了以下优势:

1.2 Skills 的类型

根据来源和注册方式,Skills 分为三大类:

类型 来源 示例 特点
内置技能 (Built-in Skills) Claude Code 出厂自带 simplify, review, security-review, init 核心功能,不可修改,随 CLI 更新
插件技能 (Plugin Skills) 通过 claude-plugins-official 安装 skill-creator, claude-md-management, update-config, keybindings-help, loop, schedule, claude-api 社区/官方开发,注册后可通过 /command 调用
自定义技能 (Custom Skills) 用户在 CLAUDE.md 中定义或通过 Skill Creator 创建 a_learnnotehcl, a_medical, a_news, a_shl 按需定制,高度灵活,可绑定特定触发条件

内置技能速览

Claude Code 自带一组开箱即用的内置技能,覆盖代码审查、安全审查、CLAUDE.md 初始化等常见场景:

  • simplify — 审查变更代码的复用性、质量和效率,修复发现的问题
  • review — 审查 Pull Request
  • security-review — 审查当前分支的安全变更
  • init — 初始化新的 CLAUDE.md 文件

学习提示

理解三种技能类型的关键区别:内置技能是 CLI 的一部分,插件技能通过文件系统注册,自定义技能则完全由用户定义和维护。三种技能在触发机制上略有不同,但核心架构一致。

二、Skills 架构与原理

2.1 技能调用机制

当 Claude Code 收到用户输入时,系统会经历一个"技能匹配-触发-执行"的完整流程:

用户输入 技能匹配引擎 匹配成功? 触发技能 执行提示词 返回结果

技能调用的核心流程详解:

  1. 输入解析:系统解析用户消息,提取关键词和意图
  2. 技能匹配:技能匹配引擎遍历所有已注册技能的描述和触发条件,计算匹配度
  3. 触发决策:根据匹配度阈值、斜杠命令前缀、TRIGGER 块条件等决定是否触发
  4. 上下文注入:将技能提示词注入到当前对话上下文中
  5. 技能执行:Claude Code 按照技能提示词中的指令执行任务
  6. 结果返回:执行完成后,技能上下文退出,恢复正常对话

2.2 触发模式

Skills 支持多种触发模式,以适应不同的使用场景:

触发模式 触发方式 适用场景 示例
描述匹配 (Description Triggering) 根据用户输入与 skill description 的语义匹配 自然语言触发,最常用 用户说"帮我审查代码",触发 review 技能
斜杠命令 (Slash Command) /skill-name 格式直接调用 明确调用,避免误触发 /simplify, /review
TRIGGER 块条件 在 CLAUDE.md 中定义触发条件表达式 文件匹配、正则匹配等条件式触发 检测到 import anthropic 触发 claude-api
手动调用 用户明确说"使用某个技能" 测试和调试场景 "使用 skill-creator 创建新技能"

2.3 上下文隔离与生命周期

每个 Skill 在执行时拥有独立的上下文空间,这种隔离机制保证了技能之间不会相互干扰:

重要理解:Skills 并非独立的进程或容器,而是在 Claude Code 的对话上下文中注入结构化的提示词。技能的本质是"经过精心设计的系统提示词片段",这种设计使得技能的创建和调试非常轻量。

三、Skill Creator 工具详解

3.1 工具概述

Skill Creator 是 Claude Code 官方提供的一款插件技能,全名为 skill-creator:skill-creator。它提供了一套完整的技能创建、编辑、优化和评估工作流,是自定义技能开发的核心工具。

一句话概括:Skill Creator = 技能的"元技能"。它本身就是一个 Skill,专门用来创建和优化其他 Skill。

3.2 主要功能

Skill Creator 提供以下核心能力:

3.3 从零创建技能的工作流

使用 Skill Creator 创建一个新技能的典型流程:

  1. 启动工具:在对话中输入 "使用 skill-creator 创建新技能" 或直接使用 /skill-creator:skill-creator
  2. 描述需求:向工具描述你想创建的技能用途,例如"创建一个自动检查代码格式的技能"
  3. 交互式配置:Skill Creator 会询问一系列问题来确定技能的关键参数:
    • 技能名称(需遵循命名规范)
    • 技能描述(用于触发匹配)
    • 技能类型(如 software-development, code-review 等)
    • 首选模型(如 opus, sonnet)
    • Agent 类型(如 code, general)
    • 触发条件(可选的 TRIGGER 块)
  4. 提示词编写:Skill Creator 会生成一段基础提示词模板,用户可以在其基础上细化和扩展
  5. 自动注册:完成配置后,Skill Creator 会自动将技能注册到项目的 CLAUDE.md 中
  6. 验证测试:创建完成后,立即测试技能是否能被正确触发和执行

技能名称命名规范

Skill Creator 要求技能名称遵循以下规则:

  • 只能包含小写字母、数字、连字符 (-) 和下划线 (_)
  • 不能以数字开头
  • 建议使用命名空间前缀,如 claude-md-management:revise-claude-md
  • 对于自定义聚合命令,使用 a_ 前缀(如 a_medical, a_news

3.4 评估功能详解

Skill Creator 的评估功能是其最强大的特性之一:

四、技能配置文件格式

4.1 CLAUDE.md Frontmatter

技能配置存储在项目的 CLAUDE.md 文件中,以 YAML frontmatter 格式定义。每个技能条目包含完整的元数据配置:

# 完整技能配置示例 - name: claude-md-management:revise-claude-md description: Update CLAUDE.md with learnings from this session type: project model: opus agent: type: general trigger: # 可选触发条件 - pattern: update CLAUDE.md type: contains prompt: | You are an expert at documenting project learnings. Review the session transcript and extract key information...

4.2 核心字段详解

字段 必需 说明 示例值
name 技能唯一标识符,支持命名空间格式 skill-creator:skill-creator
description 技能描述,用于触发匹配的关键文本 Create new skills, modify and improve existing skills...
type 技能分类,影响匹配权重 project, software-development
model 首选模型,指定执行该技能使用的 Claude 模型 opus, sonnet
agent.type Agent 类型,决定工具集和运行模式 general, code
trigger 触发条件列表,定义自动触发的规则 [{pattern: "...", type: "contains"}]
prompt 技能的核心提示词,定义行为逻辑 多行文本

4.3 Model 与 Agent 配置

模型选择策略

model 字段指定技能执行时偏好的模型:

  • opus:适合复杂推理任务,如代码审查、安全分析、复杂文档生成
  • sonnet:平衡速度与质量,适合大部分日常任务
  • haiku:适合简单快速的任务,如格式化、简短回答
  • 不指定:使用用户的默认模型配置

Agent 类型配置

agent.type 字段决定技能可用的工具集:

  • general:标准 agent,具备通用工具集,适合文档处理、信息检索等
  • code:编程 agent,额外拥有代码分析和执行工具,适合开发任务
  • 不指定:使用用户默认的 agent 配置

最佳实践

对于需要大量推理的复杂技能(如代码审查、安全审查),建议显式指定 model: opus 以获得最佳效果。对于简单的命令式技能,使用默认模型即可。

五、技能触发机制

5.1 触发机制全览

Claude Code 的技能触发系统采用多层匹配策略,确保技能在合适的时机被正确激活:

  1. 语义匹配层:将用户输入与所有已注册技能的 description 字段进行语义相似度计算,选择匹配度最高的技能
  2. 斜杠命令层:当用户输入以 / 开头时,直接解析为技能名称进行精准匹配
  3. TRIGGER 条件层:检查用户输入是否满足某个技能定义的 TRIGGER 条件(如关键词包含、正则匹配等)
  4. 上下文感知层:考虑当前对话上下文、打开的文件、工作目录等信息,提高匹配准确性

5.2 Description 触发详解

Description 触发是最常用、最自然的技能触发方式。系统将用户输入与技能描述的语义进行匹配,匹配度超过阈值时自动触发:

核心原理:当系统检测到用户输入与某个技能的 description 语义高度相关时,会自动将该技能的提示词注入到当前对话的系统消息中。注入的提示词作为"系统级指令",引导 Claude Code 按照该技能定义的行为模式进行响应。

Description 编写的关键原则:

好的描述示例

Build, debug, and optimize Claude API / Anthropic SDK apps. Also handles migrating existing Claude API code between Claude model versions.

这个描述精确说明了技能用途、操作对象和适用场景,系统能准确判断何时触发。

差的描述示例

Do things with code and APIs and stuff.

这个描述过于宽泛,无法精确匹配,容易产生误触发或漏触发。

5.3 TRIGGER 块条件

TRIGGER 块提供了更精确的触发控制,允许定义基于文件内容、文件名模式、用户输入模式等条件的自动触发规则:

# TRIGGER 块条件示例 trigger: - pattern: import anthropic type: contains - pattern: .*\.py$ type: regex # 当用户代码中包含 'import anthropic' 或编辑 .py 文件时触发

TRIGGER 支持的匹配类型:

5.4 触发决策流程

当多个技能同时满足触发条件时,系统的决策顺序如下:

  1. 斜杠命令优先:如果用户使用 /skill-name 格式,直接触发对应技能
  2. TRIGGER 块次之:满足 TRIGGER 条件的技能获得高优先级
  3. 描述匹配兜底:基于语义相似度评分选择最佳匹配
  4. 冲突解决:当评分相近时,优先选择类型更匹配、最近使用过的技能

注意:技能覆盖

如果多个技能的 description 非常相似,可能会出现技能覆盖(即总是触发同一个技能)的问题。此时需要:

  • 调整各个技能的 description 使其更具区分度
  • 为特定场景添加 TRIGGER 条件
  • 使用斜杠命令直接指定目标技能

六、技能提示词设计

6.1 提示词结构

一个高效的技能提示词通常遵循以下结构:

# 技能提示词模板结构 prompt: | # 1. 角色定义 You are an expert [role] specializing in [domain]. # 2. 核心目标 Your primary goal is to [main objective]. # 3. 行为规范 When performing tasks: - Always [rule 1] - Never [rule 2] - Follow [specific process] # 4. 工作流程 Follow these steps in order: 1. [Step 1] 2. [Step 2] 3. [Step 3] # 5. 输出要求 Your output must: - [Requirement 1] - [Requirement 2] # 6. 约束条件 IMPORTANT restrictions: - [Restriction 1] - [Restriction 2]

6.2 角色定义技巧

角色定义是技能提示词的基石。一个精确的角色定义能让 Claude Code 快速进入正确的工作状态:

好的角色定义

You are an expert DevOps engineer with 10+ years experience, specializing in AWS infrastructure, Kubernetes orchestration, and CI/CD pipeline design.

泛泛的角色定义

You are a helpful assistant that knows about DevOps.

6.3 上下文管理

技能提示词应该合理管理对话上下文,避免过度消耗 token:

6.4 用户交互模式

技能可以定义与用户的交互方式,以引导更高效的协作:

模式 说明 适用场景
指令式 (Directive) 技能直接执行任务,无需用户确认 自动化格式化、安全检查等确定性任务
确认式 (Confirmative) 技能在执行关键操作前请求用户确认 文件修改、代码提交等有副作用的操作
引导式 (Guided) 技能主动提问,引导用户提供必要信息 复杂任务需要收集多维度输入的场景
报告式 (Reportive) 技能执行后生成结构化报告 审查、分析、审计等需要输出的场景
设计原则:好的技能提示词应该让 Claude Code 在执行任务时"知道自己在做什么、为什么做、怎么做、做到什么程度"。这四条信息分别对应角色定义、核心目标、工作流程和输出要求。

七、技能开发工作流

7.1 五阶段生命周期

一个完整的技能开发遵循"计划 → 设计 → 实现 → 测试 → 迭代"的五阶段生命周期:

1. 计划 2. 设计 3. 实现 4. 测试 5. 迭代

7.2 各阶段详解

阶段 1:计划 (Plan)

确定技能的定位和边界:

阶段 2:设计 (Design)

定义技能的架构和行为:

阶段 3:实现 (Implement)

将设计转化为实际的配置:

阶段 4:测试 (Test)

验证技能的正确性和稳定性:

阶段 5:迭代 (Iterate)

根据反馈持续优化:

实用建议

不要追求一次完美。技能的迭代周期建议设置为:初版 30 分钟完成核心功能 → 试用 1-2 天 → 根据实际体验优化 → 稳定后加入评估套件。

八、技能评估与优化

8.1 评估体系

技能评估是确保技能质量的关键环节。Skill Creator 提供了一套完整的评估框架:

评估指标

指标 衡量内容 评估方法
触发准确率 技能是否在正确的场景下被触发 用一系列正向/负向测试用例测试触发匹配
任务完成率 技能是否成功完成其声明的任务目标 运行 eval 测试用例,检查输出是否满足预期
输出质量 生成结果的相关性、准确性和完整性 人工评分或自动化质量检查
方差稳定性 多次执行的输出一致性 同一测试用例运行多次,分析结果差异
执行效率 技能完成任务的耗时和 token 消耗 记录每次执行的耗时和 token 计数

8.2 基准测试 (Benchmarking)

建立技能评估的标准化流程:

  1. 定义测试用例集:准备 5-20 个覆盖不同场景的测试用例
  2. 建立基线:对每个测试用例运行 3-5 次,记录平均表现作为基线
  3. 优化后对比:每次修改后重新运行测试集,对比基线评估改进效果
  4. 持续监控:将评估套件纳入 CI/CD 流程,防止回归

8.3 方差分析与稳定性优化

方差是指同一技能在相同输入下产生不同输出的程度。高方差意味着技能行为不可预测:

降低方差的技巧

  • 减少模糊表述:用具体指令替代模糊描述,如用"输出 JSON 格式"替代"输出结构化数据"
  • 固定输出模板:在提示词中提供明确的输出格式模板
  • 步骤序号化:将流程拆分为编号步骤,减少自由发挥空间
  • 示例锚定:提供输入-输出示例,锚定期望的输出风格和质量
  • 约束条件:明确禁止某些行为,缩小输出空间

8.4 Description 优化方法

Description 是技能触发匹配的核心依据,优化 description 可以直接提升触发准确率:

优化闭环:评估 → 分析 → 优化 → 再评估。这是技能持续改进的核心循环。每次修改后都应该重新运行评估,用数据而不是感觉来判断优化效果。

九、插件技能开发

9.1 claude-plugins-official 架构

Claude Code 的插件系统通过 claude-plugins-official 仓库管理。插件的核心是一个包含多个技能的集合,通过统一的 manifest 文件注册到 Claude Code 中。

# 插件目录结构示例 claude-plugins-official/ 戮── plugin-name/ 戮── manifest.json # 插件清单文件 戮── skills/ 戮── skill-1.yaml # 技能定义文件 1 戮── skill-2.yaml # 技能定义文件 2 戮── node_modules/ # 依赖(如有需要) 戮── index.js # 入口文件(可选)

9.2 插件清单 (Manifest)

每个插件根目录下必须包含 manifest.json,定义插件的元信息和依赖:

{ "name": "skill-creator", "description": "Create and manage Claude Code skills", "version": "1.0.0", "skills": [ { "name": "skill-creator", "file": "skills/skill-creator.yaml" } ], "dependencies": { "node": ">=18.0.0" } }

9.3 多技能插件

一个插件可以包含多个技能,每个技能有独立的配置和提示词:

# manifest.json - 多技能插件 { "name": "claude-md-management", "skills": [ { "name": "revise-claude-md", "file": "skills/revise-claude-md.yaml" }, { "name": "claude-md-improver", "file": "skills/claude-md-improver.yaml" } ] }

多技能插件的优势:

9.4 技能 YAML 定义文件

插件的每个技能使用独立的 YAML 文件定义,结构与 CLAUDE.md frontmatter 一致:

# skills/skill-creator.yaml name: skill-creator:skill-creator description: | Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill... model: opus agent: type: general prompt: | You are an expert skill engineer specializing in creating and optimizing Claude Code skills... trigger: - pattern: create a skill type: contains

插件安装方式

插件通过 /plugin 命令安装:/plugin install <repository-url>。安装后,插件注册的 Skills 会自动出现在 Claude Code 的可用技能列表中。如遇 SSH 认证失败,可改用 HTTPS URL。

十、最佳实践与设计模式

10.1 技能粒度控制

技能粒度的把控是技能设计的核心决策之一:

粒度 特点 优势 劣势 适用场景
粗粒度 一个技能覆盖多个相关任务 触发简单,管理方便 提示词庞大,token 开销大 领域专精型(如 claude-api)
细粒度 每个技能专注一个具体任务 提示词精简,高精度触发 技能数量多,管理成本高 工具命令型(如 update-config)
混合粒度 核心技能+辅助技能的组合 兼顾覆盖面和精确度 需要设计技能协作机制 大多数场景推荐
经验法则:一个技能的 prompt 建议控制在 200-800 字之间。少于 200 字可能不够详细,多于 800 字可能过度消耗 token 且难以维护。

10.2 可复用性设计

设计可复用的技能需要考虑以下因素:

# 参数化技能示例:a_learnnotehcl - name: a_learnnotehcl description: | 按照标准化流程执行,读取 @$ARGUMENTS 文件中的内容,生成学习笔记 prompt: | 按照 D:\claude\www.shjiaoai.com\LearningNotes\HanChangli\info.md 中的标准化流程执行,读取 @$ARGUMENTS 文件中的内容,生成...

10.3 错误处理模式

在技能提示词中嵌入错误处理逻辑,提高技能的鲁棒性:

10.4 用户体验模式

良好的用户体验设计是技能被接受的关键:

10.5 常见设计模式

模式 1:流程代理 (Process Agent)

技能定义完整的工作流程,引导用户一步步完成复杂任务。

示例:a_learnnotehcl — 读取原始文本 → 查看模板 → 生成 HTML → 更新目录列表。技能内置了完整的流程定义,用户只需提供输入文件路径。

适用:周期性执行、步骤固定的标准化任务。

模式 2:命令路由 (Command Router)

一个聚合技能根据输入参数路由到不同的子流程。

示例:a_medical — 根据 $ARGUMENTS 中指定的疾病名称,自动执行对应的疾病详情页创建流程。

适用:多个类似任务需要统一入口的场景。

模式 3:工具封装 (Tool Wrapper)

技能封装特定的工具操作,提供更友好的交互界面。

示例:update-config — 封装 settings.json 的修改操作,用户用自然语言描述配置变更,技能自动执行。

适用:底层工具操作复杂、需要用户友好的场景。

模式 4:审查与反馈 (Review & Feedback)

技能对现有内容进行审查并提供改进建议。

示例:review, security-review, claude-md-improver — 分析输入内容,生成结构化审查报告。

适用:代码审查、文档审查、安全检查等质量保证场景。

十一、核心要点总结

Skills 系统核心认知

  1. Skills 的本质是结构化提示词:Skills 不是独立的程序或容器,而是注入对话上下文的系统级指令。这种轻量级设计使得技能的创建和调试非常便捷。
  2. 三大技能类型各司其职:内置技能提供核心功能,插件技能扩展能力边界,自定义技能满足个性化需求。三者通过统一的配置格式在 CLAUDE.md 中注册。
  3. Skill Creator 是核心开发工具:作为"元技能",Skill Creator 提供创建、编辑、优化、评估的全链路支持,是自定义技能开发的起点。
  4. 触发机制是多层决策系统:斜杠命令、TRIGGER 条件、Description 语义匹配三层触发机制协同工作,确保技能在合适的时机被正确激活。
  5. 提示词设计是技能质量的根本:角色定义、行为规范、工作流程、输出要求四要素构成了高效技能提示词的基础框架。

关键实践要点

  1. 技能粒度适中最好:200-800 字的 prompt 长度是经验推荐值。太粗则 token 开销大,太细则管理成本高。推荐采用混合粒度策略。
  2. 评估驱动优化:建立测试用例集,用数据驱动技能优化。每次修改后重新运行评估,对比基线衡量改进效果。
  3. Description 是触发关键:精确、具体、场景化的 description 能显著提升触发准确率。避免宽泛和模糊的表述。
  4. TRIGGER 块补足匹配精度:对于 description 难以精确覆盖的场景,使用 TRIGGER 条件进行补充,实现更精准的触发控制。
  5. 参数化设计提升复用性:使用 $ARGUMENTS 传递参数,使单个技能适用于多种输入场景,是技能复用的关键设计模式。
  6. 插件技能遵循命名空间规范:使用 plugin-name:skill-name 格式避免命名冲突,manifest.json 和 YAML 定义文件是插件技能的标准配置方式。
  7. 迭代优于一次性完美:采用 30 分钟快速原型 → 试用 → 评估 → 优化的快速迭代模式,避免过度设计。
  8. 用户交互模式需明确:根据任务性质选择合适的交互模式(指令式、确认式、引导式、报告式),并在提示词中清晰定义。

技能开发自我检查清单

  • 技能名称遵循命名规范(小写字母、数字、连字符)
  • Description 精确描述了技能用途和触发场景
  • Prompt 包含完整的角色定义、行为规范、工作流程和输出要求
  • 触方式配置合理(description 匹配 / 斜杠命令 / TRIGGER)
  • 模型和 Agent 类型已根据任务需求配置
  • 已编写至少 3-5 个测试用例用于评估
  • 错误处理逻辑已嵌入提示词
  • 技能可在当前项目环境中正确注册和触发
  • 输出格式满足预期使用场景
  • 文档已记录技能的用途、参数和注意事项
一句话总结:Skills 是 Claude Code 的能力模块化系统,通过结构化的提示词配置实现特定领域的行为定制。掌握技能设计方法,可以让 Claude Code 从通用助手转变为专精于你工作流程的领域专家。核心在于:精确的触发 + 优质的提示词 + 持续的评估优化
30691