游乐游手机版
首页/AI教程/文章详情

Claude Agent技能入门指南:原理与规范打造肌肉记忆式可扩展能力

时间:2026-05-31 19:48
Claude Code Agent Skills 入门指南(上):原理与规范 —— 让 AI Agent 拥有 "肌肉记忆 "的可扩展能力 摘要 引言 问题:上下文窗口的困境 你是否希望你的 Agent 能同时掌握多种专业能力?例如,依据团队规范审查代码、生成符合约定式提交规范的 commit mess

Claude Code Agent Skills 入门指南(上):原理与规范 —— 让 AI Agent 拥有"肌肉记忆"的可扩展能力

摘要

引言

问题:上下文窗口的困境

你是否希望你的 Agent 能同时掌握多种专业能力?例如,依据团队规范审查代码、生成符合约定式提交规范的 commit message、或者输出格式统一的 API 文档……这个能力清单可以列得很长。

传统做法是将所有这些能力一次性塞进系统提示词中。然而,这会带来一个明显的痛点:当能力增多时,上下文窗口很快就会不堪重负。

我们来算一笔简单的账:
10 个专业能力 × 每个 500 字 = 5,000 tokens。请注意,在正式对话还未开始前,宝贵的上下文空间就已经被占去了一大半!

类似的问题在 MCP(Model Context Protocol)中也同样存在:每连接一个 MCP 服务器,所有工具的详细描述都需要占用上下文。一旦连接 3 个服务器,轻易就能吃掉 10,000+ tokens。

Agent Skills 提供的解决方案是:渐进式披露。

简单来说,就是"用到多少就加载多少":

时机加载内容占用
启动时所有 Skills 的 name + description~100 tokens/个
激活时完整 SKILL.md~3000 tokens
需要时references/ 资源按需

效果非常直观:即使同时启用 20 个 Skills,启动时也仅占用 2,000 tokens。用到哪个,就加载哪个,上下文压力瞬间得到了显著缓解。

本文将从零开始,带你深入理解 Skills,并掌握如何让 Agent 高效获取并运用专业能力。

一、5 分钟快速入门

1.1 创建你的第一个 Skill

首先,在项目的 .claude/skills/ 目录下创建文件夹:

mkdir -p .claude/skills/code-reviewer

然后,创建 SKILL.md 文件:

---
name: code-reviewer
description: Review code for quality, security, and best practices. Use when asked to review code, check for bugs, audit security.
allowed-tools: "Read Grep Glob"
---

Code Reviewer

Review workflow

  1. Read the code - Understand purpose and context
  2. Identify issues - Security, bugs, performance
  3. Prioritize findings - Critical > Major > Minor > Suggestion

Output format

Critical Issues: X

Critical

  • [Line 42] SQL injection vulnerability

```python
# Before: query = f"SELECT * FROM users WHERE id = {user_id}"
# After: cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,))
```

1.2 使用 Skill

# 方式1:Claude 自动识别(当你问"帮我审查代码"时)
# 方式2:手动调用
/code-reviewer

就是这么简单。现在,你的 Agent 已经具备了专业的代码审查能力,并且每次都会记得检查诸如 SQL 注入这类常见的安全漏洞。

二、核心原理:为什么 Skills 如此优雅?

2.1 元工具架构(Meta-Tool)

Skills 的核心是一个元工具(Meta-Tool)设计。我们来看一下 Claude API 的请求结构:

graph TB
subgraph "Claude API 请求"
A[system: You are Claude Code...]
B[messages: 用户消息 + 对话历史]
subgraph "tools 数组"
C["Skill (元工具)
管理所有 skills"]
D[Read]
E[Write]
F[Bash]
end
end
B --> C
C --> G[("skills 列表
(name + description)")]

关键洞察:

  • Skill(大写 S)是元工具,负责管理所有 individual skills。
  • Skills 并未放置在系统提示词中,而是位于 tools 数组的 Skill 工具描述里。
  • 技能的选择完全由 LLM 推理完成,无需算法匹配或意图分类器。

这意味着什么?你只需写好 description,Claude 就能自动判断何时调用你的 Skill。你不需要编写正则表达式,更不需要训练分类模型——这才是真正的"LLM 原生"设计。

2.2 两消息模式(Two-Message Pattern)

当 Skill 被触发时,系统会注入两条消息:

sequenceDiagram
participant U as 用户
participant A as Agent
participant S as Skill 系统
U->>A: 帮我审查代码
A->>S: 决定调用 Skill(code-reviewer)
S-->>U: 消息1: "code-reviewer skill is loading"
S-->>A: 消息2: [完整 SKILL.md 内容]
A->>A: 根据指令执行代码审查
A-->>U: 返回审查结果

消息受众目的典型长度
元数据消息人类用户状态通知,让用户了解当前操作~50-200 字符
Skill 提示词Claude (AI)执行指令,指导 AI 具体操作~500-5000 词

为什么需要两条消息?这是用户体验与 AI 效能之间的一种精妙平衡——用户希望知道"Agent 正在做什么",但无需看到冗长的指令;AI 则需要完整的操作指南,但这些内容对用户来说可能显得困惑。将两者分离,各取所需。

2.3 渐进式披露(Progressive Disclosure)

这是 Skills 最精妙的设计点之一——通过三层加载策略,高效管理宝贵的上下文窗口:

graph LR
subgraph "第一层:元数据 ~100 tokens"
A1[启动时加载]
A2["所有 skills 的
name + description"]
A3["→ LLM 据此选择"]
end
subgraph "第二层:指令 < 5000 tokens"
B1[Skill 激活时加载]
B2[完整 SKILL.md]
B3["→ AI 获得详细指导"]
end
subgraph "第三层:资源 按需"
C1[需要时才加载]
C2["references/
scripts/assets"]
C3["→ 通过 Read 工具"]
end
A1 --> A2 --> A3 --> B1 --> B2 --> B3 --> C1 --> C2 --> C3

我们再来算一笔账。假设你配置了 20 个 Skills:

  • ❌ 一次性全部加载:20 × 3000 tokens = 60,000 tokens(直接撑爆上下文)
  • ✅ 渐进式披露:启动时仅占 20 × 100 = 2,000 tokens,用到哪个才加载哪个。

这意味着可以节省高达 97% 的上下文空间!这也是为什么你可以在一个项目里配置几十个 Skills,而完全无需担心性能问题。

三、SKILL.md 规范详解

3.1 目录结构

skill-name/
├── SKILL.md # 必需:元数据 + 指令
├── scripts/ # 可选:可执行代码
├── references/ # 可选:详细文档(按需加载)
└── assets/ # 可选:模板、资源

3.2 YAML Frontmatter

---
name: pdf-processing # 必需:1-64字符
description: Extract text from PDF... # 必需:1-1024字符
license: MIT # 可选
compatibility: Python 3.8+ # 可选:环境要求
allowed-tools: "Read Bash(pdftotext:*)" # 可选:预批准工具
---

name 字段约束
规则示例
1-64 字符code-reviewer
只能包含小写字母、数字、连字符pdf-analyzer
不能以连字符开头/结尾-helper, tool-
不能有连续连字符my--tool
必须与目录名匹配目录 code-reviewer/ → name: code-reviewer
description 写作要点(这是 LLM 选择 Skill 的唯一依据!)

# ✅ 好的描述:明确包含做什么、何时使用及相关关键词
description: Review code for quality, security, and best practices. Use when asked to review code, check for bugs, suggest improvements, or audit security.

# ❌ 差的描述:过于模糊,LLM 无法判断适用场景
description: Helps with code

写作技巧:

  • 采用第三人称书写("Review code..."而非"我来审查...")
  • 包含用户自然会使用的关键词(如"review code", "check for bugs")
  • 清晰描述使用场景("Use when asked to...")

3.3 Body 内容结构

推荐的章节结构:

# Skill 名称
## Quick start
简洁的快速开始示例(最为重要!请置于最前面)

## Step-by-step instructions
核心操作流程

## Examples
具体的代码示例

## Common edge cases
常见的边缘情况处理

## Advanced Resources
按需加载的详细参考资料:
- **完整检查清单**: See [references/checklist.md](references/checklist.md)

⚠️ 重要限制:

  • SKILL.md 内容应控制在 500 行以下,并保持在 5,000 tokens 以内。
  • 仅包含每次执行都需要的核心指令。
  • 详细内容应放入 references/ 目录,由 AI 按需读取。

四、最佳实践

4.1 从真实专业知识开始

一个常见的误区:让 LLM 自行生成 skill,却不提供任何领域上下文。结果往往是一些泛泛而谈的"遵循最佳实践"——说了等于没说。

正确的做法有两种:

方法 1:从实际任务中提炼

1. 与 Agent 共同完成一个真实任务(例如代码审查)
2. 记录:成功的步骤、你做出的修正、输入/输出格式
3. 提取可复用的模式,编写为 Skill

方法 2:从现有项目工件中整合

  • 内部文档、工作手册、风格指南
  • API 规范、配置文件
  • 代码审查评论、issue 历史记录

4.2 简洁至上

❌ 啰嗦(约150 tokens):
PDF (Portable Document Format) is a common file format developed by Adobe...
To install the required library, first ensure you ha ve Python 3.8+...Then run pip install pdfplumber...

✅ 简洁(约50 tokens):
Use pdfplumber for text extraction:
import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
text = pdf.pages[0].extract_text()

一个自检问题:如果没有这条指令,Agent 会出错吗?如果不会,那就删掉它。

4.3 设计一致的粒度

  • 粒度过窄:read-python-fileread-js-file → 多个 skills 同时加载,容易引发混乱。
  • 粒度过广:do-everything → 难以精准激活。
  • 粒度适中:code-reviewer → 封装了一致的代码审查工作流。

4.4 偏好过程而非声明

❌ 声明式(针对特定实例,难以复用):
Join the `orders` table to `customers` on `customer_id`...

✅ 过程式(可复用的方法论):
1. Read the schema from `references/schema.yaml` to find relevant tables
2. Join tables using the `_id` foreign key convention
3. Apply filters from the user's request as WHERE clauses

五、SKILL.md 编写模式:用提示词"模拟"代码逻辑

核心问题在于:SKILL.md 是纯文本提示词,没有真正的 if/else、for 循环、while 循环。然而,我们需要 Agent 依据某种"逻辑"来执行任务。

解决方案:采用结构化的自然语言来模拟程序的控制流程。这就是"模式"的价值所在。

5.1 工作流模式 = 模拟 for 循环

场景:你希望 Agent 按步骤依次执行,不能跳过任何一步。

程序思维:

steps = ["检查代码结构", "检查安全漏洞", "检查性能", "生成报告"]
for step in steps:
execute(step)

SKILL.md 写法:

## 审查流程
请复制此检查清单,并逐步完成:
代码审查进度:
- [ ] 第1步:检查代码结构和组织方式
- [ ] 第2步:识别潜在的 bug 或逻辑错误
- [ ] 第3步:审查安全漏洞
- [ ] 第4步:提出性能优化建议
- [ ] 第5步:生成最终审查报告

为什么有效:

  • Agent 会将清单视为"待办事项列表"。
  • 每完成一项,Agent 会在对话中更新状态。
  • 用户可以实时了解执行进度。

5.2 反馈循环模式 = 模拟 while 循环

场景:你希望 Agent "失败了就重试,直到成功为止"。

程序思维:

while not validation_passed:
fix_issues()
validation_passed = run_validation()

SKILL.md 写法:

## 文档编辑流程
1. 修改文档内容
2. **立即验证**:运行 `python scripts/validate.py`
3. 如果验证失败:
- 仔细阅读错误信息
- 修正刚才的修改
- **返回第2步**,重新进行验证
4. **只有验证通过,才能继续执行后续步骤**

为什么有效:

  • 明确告知 Agent "失败后需要回头重试"。
  • 设定了清晰的退出条件("只有验证通过才能继续")。
  • 有效防止 Agent 草草了事。

5.3 模板模式 = 模拟格式化函数

场景:你希望 Agent 的输出格式完全统一,每次都能保持一致。

程序思维:

def format_report(title, summary, findings):
return f"""# {title}
## 摘要
{summary}
## 关键发现
{findings}
"""

SKILL.md 写法:

## 报告结构
**重要:必须严格使用以下模板:**

[分析标题]

摘要

[在此处撰写且仅撰写一段话,概述核心结论]

关键发现

  • 发现1:[具体描述] + [支持数据]
  • 发现2:[具体描述] + [支持数据]
  • 发现3:[具体描述] + [支持数据]

建议

[基于发现的、可操作的具体建议]

为什么有效:

  • 使用"必须"和"严格使用"等措辞,强调格式的严肃性。
  • 提供具体的占位符(如 [分析标题])。
  • 限制内容长度("撰写且仅撰写一段话")。

5.4 示例模式(Few-shot)= 模拟训练数据

场景:你希望 Agent 模仿某种特定的输入→输出格式。

程序思维:需要训练数据,但提示词无法"训练"模型。

SKILL.md 写法:

## Commit Message 格式
请严格按照以下示例格式执行:

示例1:
- 输入:"添加了用户登录功能,使用 JWT 认证"
- 输出:
feat(auth): 实现 JWT 用户认证

  • 新增登录接口和 token 生成逻辑
  • 添加 token 验证中间件

示例2:
- 输入:"修复了用户无法重置密码的 bug"
- 输出:
fix(auth): 修复密码重置失败问题

  • 修正重置流程中的邮箱验证逻辑
  • 添加邮件发送的重试机制

现在,请按照同样格式为用户的变更生成 commit message。

为什么有效:

  • Agent 通过具体例子理解模式,这比抽象描述更为直观。
  • "严格按照以下示例"强调了模仿格式的重要性。
  • 提供多个例子有助于 Agent 泛化规则。

5.5 计划-验证-执行模式 = 模拟 try-catch + 确认

场景:执行破坏性操作(如删除、批量修改)时,需要一个"安全网"。

程序思维:

plan = generate_plan()
if validate(plan):
if user_confirms(plan):
execute(plan)
else:
revise_and_retry()

SKILL.md 写法:

## PDF 表单填写(安全模式)

第1步:分析

运行 `python scripts/analyze_form.py input.pdf`
→ 生成 `form_fields.json`(列出所有字段)

第2步:计划

创建 `field_values.json`,填写你计划填入的值

第3步:验证(关键步骤!)

运行 `python scripts/validate_fields.py form_fields.json field_values.json`
- 检查项:字段名是否存在、类型是否匹配、必填字段是否已填写
- **如果验证失败**:修改 `field_values.json`,然后重新执行第3步
- **在验证通过之前,禁止执行下一步操作**

第4步:执行(验证通过后方可执行)

运行 `python scripts/fill_form.py input.pdf field_values.json output.pdf`

为什么有效:

  • 强制插入验证环节。
  • 明确禁止跳过验证步骤("在验证通过之前,禁止执行下一步操作")。
  • 即使 Agent 试图简化流程,也有脚本层面的检查作为保障。

模式速查表

模式模拟的程序逻辑适用场景关键词示例
工作流for 循环多步骤任务"逐步完成"、"检查清单"
反馈循环while 循环需要确保质量"如果失败,重试"、"只有...才能继续"
模板格式化函数输出格式固定"必须使用此模板"、"严格按格式"
示例(Few-shot)训练数据格式转换、风格统一"按以下示例格式"、"参照示例"
计划-验证-执行try-catch有风险的操作"关键"、"禁止跳过"、"验证通过后"

请记住:这些模式并非魔法,它们只是用自然语言描述了你所期望的执行逻辑。在编写时,想象你正在教导一位聪明的实习生——他需要清晰的步骤指引,但不必每行代码都写出。

六、小结

Agent Skills 的核心设计理念,可以归纳为下表:

概念说明解决的问题
元工具架构通过单一 Skill 工具管理所有 skills无需维护复杂的技能注册表
两消息模式分离用户可见的状态通知与 AI 执行指令兼顾用户体验与 AI 效果
渐进式披露采用三层加载策略优化上下文使用20 个 Skills 仅占用 2000 tokens
LLM 驱动选择无需算法匹配,由模型推理决定技能调用实现零代码意图识别

我的观察是:Skills 的本质,是一个轻量级的上下文管理机制。它通过渐进式披露,成功解决了两个核心问题:

  1. MCP 上下文爆炸:避免了每连接一个 MCP 服务器都要塞入大量工具描述。
  2. 专业能力注入:能够为 Agent 添加多种专业能力,而无需一次性占用所有上下文资源。

相比于将所有指令写入系统提示词,Skills 让你能够"按需加载"——这正是它最大的价值所在。

关键资源

  • Agent Skills 官方规范
  • Claude Code Skills 文档
  • Claude 官方最佳实践
来源:https://juejin.cn/post/7618095292316762164
上一篇小睡传奇助眠故事精选助你快速深度入睡 下一篇Linguisticat最新语言学习助手功能详解与使用技巧指南
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
OiiOii.ai全球首个基于人工智能的动画创作智能体
AI教程 · 2026-06-01

OiiOii.ai全球首个基于人工智能的动画创作智能体

```html 动画制作长期以来一直是一项高门槛的创作活动——从剧本、分镜、角色设计、动作捕捉到后期剪辑,每个环节都离不开专业人员的参与。然而,如今一个名为 OiiOii ai 的平台正在悄然改变这一局面。它自称是全球首个面向全流程动画创作的 AI Agent,其核心理念非常清晰:将动画制作拆解为7

EasySBC 易用型单板计算机使用指南
AI教程 · 2026-06-01

EasySBC 易用型单板计算机使用指南

在EA Sports FC 25的Ultimate Team模式里,SBC(阵容构建挑战)一直是玩家绕不开的核心玩法——搭出一套高化学的阵容,既要控制预算,又要兼顾球员强度,还得应对各种稀奇古怪的挑战条件。不少玩家为此绞尽脑汁,甚至翻遍交易市场。而今天要聊的这款工具,就是专门为解决这些痛点而生的。

AI会议记录软件赋能企业智能化转型
AI教程 · 2026-06-01

AI会议记录软件赋能企业智能化转型

你是否也曾遇到这种情况?开会时奋笔疾书,可会后翻看笔记,发现关键讨论内容遗漏不少,决策和任务分配依然模糊不清。一项扎心的调查显示:高达70%的员工认为会议时间被白白浪费。传统的手动记录方式早已跟不上节奏——要么细节丢失,要么后期整理耗时费力。而AI会议记录软件恰好解决了这一痛点:它借助智能语音识别技

AI工具软件转型发展助力企业未来竞争优势
AI教程 · 2026-06-01

AI工具软件转型发展助力企业未来竞争优势

过去这一年,AI工具软件的发展速度确实惊人,它正推动很多行业经历一场前所未有的转型。比如,有一家初创公司,靠着部署一套自然语言处理工具,客户服务效率大幅提升,在激烈的市场竞争中硬是杀出了一条血路。这个案例很典型,它不仅仅说明了AI在商业世界里的分量,也给其他还在观望的企业提供了一条可借鉴的路径。现在

Cursor新手教程:界面操作、终端命令与Agent技巧
AI教程 · 2026-06-01

Cursor新手教程:界面操作、终端命令与Agent技巧

Cursor界面包含侧边栏资源管理、搜索、Git集成、插件扩展,代码编辑器与终端执行npm等命令。AI核心为Agent对话区,支持Agent、Plan、Debug、Ask四种模式,通过@引用文件或拖放图片协助编程。设置中推荐顶级模型与Editor布局,合理配置可提升开发效率。