jixiaxue 知识库
research / Skill编写指南

Skill 编写指南

1 个章节 · 0 条产出 · 0 条证据

Skill 编写指南

状态:🟢 已完成 日期:2026-03-18 驱动问题:如何编写高质量的 Claude Code Skill?从结构、设计原则到 AEO 优化的完整参考。 方法论:官方指南提炼 + 设计模式归纳 + AEO(Agent Engine Optimization)框架


结论摘要

  1. Skill 本质是「专门化提示模板」而非可执行代码——通过对话上下文注入修改 Claude 处理方式
  2. Description 是 Skill 被发现和选中的唯一依据——必须包含「做什么」+「何时用」+关键触发词
  3. 渐进式加载(三层)是 Skill 的核心机制——平时只暴露元数据,匹配时才加载完整内容
  4. SKILL.md 正文应控制在 500 行以内;超出部分拆分到 references/ 目录
  5. AEO 优化四要素:自带 SOP 封装、反向提示词(负面边界)、自愈能力(结构化错误)、原子化设计

详细论证 → 0-完全指南.md

方法论如何指导本次调研

官方指南提炼 覆盖核心规范:

  • Skill 文件结构(目录、SKILL.md、YAML Frontmatter)
  • 设计原则(简洁至上、自由度设定、可组合性、跨平台可移植性)
  • 五大设计模式(顺序工作流、多 MCP 协调、迭代改进、上下文感知、领域特定智能)
  • 测试与迭代(评估驱动开发、双 Claude 法、调试三大问题)

设计模式归纳 提供可复用模板:

  • 七种工作流模式(含 Problem-first vs Tool-first 决策)
  • 反馈闭环模式、计划-验证-执行模式

AEO 框架 指导面向 AI Agent 的优化:

  • 意图映射、确定性描述、反馈闭环三大准则在 Skill 中的实现

调研框架

└── 0-完全指南.md    ← 完整的 Skill 编写参考文档(单文件,14 章)
    ├── 一、Skill 是什么(第一性原理)
    ├── 二、文件结构
    ├── 三、核心设计原则
    ├── 四、编写高效 Description
    ├── 五、五大设计模式
    ├── 六、工作流与反馈闭环
    ├── 七、常见模式与模板
    ├── 八、脚本与代码最佳实践
    ├── 九、测试与迭代
    ├── 十、反模式清单
    ├── 十一、命名规范
    ├── 十二、分发与部署
    ├── 十三、AEO 优化技巧
    └── 十四、完整 Checklist

关联调研

  • Skill推广营销 — Skill 质量(SKILL.md)是 Agent 信任层的核心护城河

调研章节

0 Claude Skill 编写完全指南

Claude Skill 编写完全指南

📍 位置:Skill编写指南 / 0-完全指南 📌 核心发现:Skill 本质是「专门化提示模板」而非可执行代码;Description 是唯一的发现和选中依据;渐进式加载机制(三层)让 Skill 省 Token 且自治 📥 输入:Anthropic 官方 33 页指南 + 官方文档 + 社区深度分析 + AEO 优化技巧 📤 流向:独立完整参考文档,无后续收敛文件

基于 Anthropic 官方 33 页指南 + 社区深度分析 + AEO 优化技巧 调研日期:2026-03-18


一、Skill 是什么?——第一性原理

1.1 本质定义

Skill 不是可执行代码,而是专门化提示模板,通过对话上下文注入来修改 Claude 处理后续请求的方式。

“Skills 通过注入指令来准备 Claude 解决问题,而非直接解决问题。“

维度传统工具(API/函数)Skill
执行模型同步直接执行提示扩展
返回值立即结果上下文 + 执行环境改变
本质代码知识 + 流程 + 规则
类比扳手带着扳手的老师傅

1.2 Skill vs API vs MCP

载体定位优势劣势
API给人类程序员的数据插座灵活、标准化缺乏上下文,Agent 不知道何时/如何调用
MCP通过 SSE/stdio 的服务器架构远程可调用,标准协议笨重,容易冲突或崩溃
Skill给 Agent 的知识包渐进式加载、省 Token、自治依赖 Claude 生态

Skill 的核心优势 = 极度克制 + 高度自治

  • 平时:只暴露 name + description(几十字的”简历”)
  • 匹配时:动态加载 SKILL.md 完整内容
  • 深度使用时:按需读取 references/、scripts/ 等辅助文件

MCP 是「专业厨房」(工具连接),Skill 是「菜谱」(嵌入最佳实践的工作流)。

1.3 渐进式加载机制(Progressive Disclosure)

Skill 的 Token 消耗分三层递进:

第 1 层:前置元数据(name + description)
         → 始终加载,用于决策匹配
         → 成本:几十个 Token

第 2 层:SKILL.md 正文
         → 仅当 Claude 判断任务匹配时加载
         → 成本:数百~数千 Token

第 3 层:辅助资源(references/、scripts/ 等)
         → 仅当执行过程中需要时按需读取
         → 成本:按需消耗

核心理念:Context Window 是公共资源。你的 Skill 与系统提示、对话历史、其他 Skill 共享上下文窗口。


二、Skill 文件结构

2.1 目录结构

my-skill/
├── SKILL.md              # 核心文件(必需)
├── scripts/              # 可选:可执行脚本
│   ├── analyze.py
│   └── validate.sh
├── references/           # 可选:参考文档
│   ├── api-docs.md
│   └── schema.md
└── assets/               # 可选:模板和资源
    └── template.json

关键规则:

  • 文件夹名必须使用 kebab-case(如 pdf-processing
  • 不要在 Skill 文件夹内放 README.md(文档写在 SKILL.md 或 references/ 中)
  • Skill 名称不能包含 “claude” 或 “anthropic”(保留词)

2.2 SKILL.md 结构

---
name: my-skill-name          # 必填,kebab-case,最大64字符
description: |                # 必填,最大1024字符
  做什么 + 什么时候用。第三人称。
  包含关键触发词。
license: MIT                  # 可选
compatibility:                # 可选
  platforms:
    - claude-ai
    - claude-code
    - api
metadata:                     # 可选
  author: your-name
  version: "1.0.0"
  mcp-server: ServerName      # 如果需要 MCP
---

# Skill 标题

## 快速开始
[核心用法,最简洁的上手方式]

## 工作流程
[详细的步骤说明]

## 高级功能
**详细说明**: 见 [references/advanced.md](references/advanced.md)
**API 参考**: 见 [references/api.md](references/api.md)

2.3 YAML Frontmatter 字段规范

字段必填规则
name≤64字符,仅小写字母+数字+短横线,无 XML 标签,无保留词
description≤1024字符,非空,无 XML 标签,必须包含做什么+何时用
license许可证类型
compatibility平台兼容性声明
metadata作者、版本、MCP 服务器等
allowed-tools工具权限范围(最小化原则)
model模型选择覆盖
disable-model-invocation防止自动调用(危险操作时使用)

三、核心设计原则

3.1 简洁至上——Claude 已经很聪明

默认假设:只添加 Claude 还不知道的信息。

对每段内容问三个问题:

  1. “Claude 真的需要这个解释吗?”
  2. “能不能假设 Claude 已经知道这个?”
  3. “这段话值得消耗它的 Token 成本吗?”

正面示例(约 50 Token):

## 提取 PDF 文本
使用 pdfplumber:
\`\`\`python
import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
    text = pdf.pages[0].extract_text()
\`\`\`

反面示例(约 150 Token):

## 提取 PDF 文本
PDF(Portable Document Format)是一种常见的文件格式,包含文本、
图片和其他内容。要从 PDF 中提取文本,你需要使用一个库。有很多
库可以用于 PDF 处理,但 pdfplumber 是推荐的,因为它易于使用...

3.2 设定恰当的自由度

根据任务的脆弱性和可变性,匹配不同的指令精确度:

自由度适用场景指令风格
高自由度多种方法都有效、依赖上下文判断文本指南,方向性指导
中自由度有首选模式、允许一些变化伪代码/带参数的脚本
低自由度操作脆弱易错、一致性关键、必须按序执行精确脚本,不允许修改

类比:把 Claude 想象成走一条路的机器人——

  • 悬崖上的窄桥:只有一条安全路 → 给精确指令(低自由度)
  • 开阔无障碍的原野:多条路都能到达 → 给方向性指导(高自由度)

3.3 可组合性

  • Skill 应能与其他 Skill 共存,不假设独占性
  • 不要占用过多上下文窗口
  • 保持 SKILL.md 正文在 500 行以内(约 5000 Token)

3.4 跨平台可移植性

Skill 应在 Claude.ai、Claude Code、API 中表现一致:

  • 使用正斜杠路径(scripts/helper.py,非 scripts\helper.py
  • 不使用硬编码绝对路径
  • 明确声明依赖包

四、编写高效 Description 的技巧

Description 是 Skill 被发现和选中的唯一依据。Claude 从可能 100+ 个 Skill 中,仅凭 description 决定使用哪个。

4.1 必须用第三人称

Description 会被注入系统提示,人称不一致会导致发现问题。

# 正确
description: "处理 Excel 文件并生成报告"

# 错误
description: "我可以帮你处理 Excel 文件"
description: "你可以用这个来处理 Excel 文件"

4.2 必须包含「做什么」+「何时用」

# 正确:具体且包含触发词
description: >
  从 PDF 文件中提取文本和表格,填写表单,合并文档。
  当处理 PDF 文件或用户提到 PDF、表单、文档提取时使用。

# 错误:模糊
description: "处理文档"
description: "帮助处理数据"

4.3 包含关键触发词

在 description 中嵌入用户可能使用的各种表达方式:

description: >
  生成 Git 提交信息。当用户需要帮助编写 commit message、
  审查 staged changes、提交代码时使用。
  触发词:提交、commit、git commit、提交信息。

五、五大设计模式

模式 1:顺序工作流编排(Sequential Workflow)

适用:步骤有先后依赖,前一步输出是后一步输入。

## 客户注册流程

1. 创建账户 → 2. 配置支付 → 3. 设置订阅 → 4. 发送欢迎邮件

每步完成后验证再进入下一步。
如果任何步骤失败,执行回滚。

关键:记录回滚程序。

模式 2:多 MCP 协调(Multi-MCP Coordination)

适用:工作流跨越多个外部服务。

## 设计交付流程

Figma 导出 → Drive 上传 → Linear 创建任务 → Slack 通知

使用完全限定工具名:
- Figma:export_assets
- GoogleDrive:upload_file
- Linear:create_issue
- Slack:send_message

关键:阶段间分离清晰,跨阶段前验证。

模式 3:迭代改进(Iterative Refinement)

适用:需要通过反复循环提升质量。

## 内容审核流程

1. 生成初稿
2. 运行验证脚本 → 检查质量标准
3. 如果不通过 → 修正 → 回到步骤 2
4. 通过 → 输出最终版本

终止条件:通过所有检查 OR 达到 3 次迭代上限

关键:定义明确的质量标准、验证脚本、终止条件(防止无限循环)。

模式 4:上下文感知工具选择(Context-aware Tool Selection)

适用:根据输入特征路由到不同工具。

## 文档修改

判断修改类型:

**创建新内容?** → 使用 docx-js 库从零构建
**编辑现有内容?** → 解包 → 修改 XML → 验证 → 重新打包

模式 5:领域特定智能(Domain-specific Intelligence)

适用:需要治理或合规的领域工作流。

## 金融数据查询

规则:
- 始终排除测试账户(account_type != 'test')
- 金额字段使用 DECIMAL,不使用 FLOAT
- 所有查询必须包含日期范围过滤

模式 6:Problem-first vs Tool-first 设计决策

在设计 Skill 前,先确定你的设计出发点:

出发点适用场景示例
Problem-first(以问题为中心)用户想要交付物,不关心用什么工具”帮我生成一份销售报告” → Skill 内部自动选择数据源和格式
Tool-first(以工具为中心)用户想要遵循最佳实践使用某个工具”帮我用 BigQuery 分析数据” → Skill 提供 BigQuery 的工作流指南

选择原则

  • 大多数业务场景用 Problem-first(用户要结果)
  • 技术基础设施场景用 Tool-first(用户要标准化流程)
  • 不确定时,默认 Problem-first——用户关心的是”做什么”,不是”用什么”

模式 7:四种常见工作流模式

模式流程需要的工具适用场景
脚本自动化指令 → 执行脚本 → 解析输出 → 呈现结果Bash(python {baseDir}/scripts/*:*), Read数据处理、文件转换
读-处理-写Read 输入 → 按规范转换 → Write 输出Read, Write格式转换、内容生成
搜索-分析-报告Grep 搜索 → Read 文件 → 分析 → 结构化报告Grep, Read代码审查、日志分析
命令链执行命令 1 && 命令 2 && 命令 3Bash(npm:*)构建、测试、部署

选择匹配的模式可以帮助你确定 allowed-tools 的最小权限范围。


六、工作流与反馈闭环

6.1 复杂任务使用检查清单

## 研究综合工作流

复制此清单并跟踪进度:

\`\`\`
研究进度:
- [ ] 步骤 1: 阅读所有源文档
- [ ] 步骤 2: 识别关键主题
- [ ] 步骤 3: 交叉验证论点
- [ ] 步骤 4: 创建结构化总结
- [ ] 步骤 5: 验证引用
\`\`\`

6.2 反馈闭环模式

核心模式:运行验证 → 修正错误 → 重复

## 文档编辑流程

1. 编辑 document.xml
2. **立即验证**: `python scripts/validate.py unpacked_dir/`
3. 如果验证失败:
   - 仔细查看错误信息
   - 修正 XML 中的问题
   - 再次运行验证
4. **仅当验证通过后才继续**
5. 重建: `python scripts/pack.py unpacked_dir/ output.docx`

6.3 计划-验证-执行模式

适用于批量操作、破坏性变更、高风险操作:

分析 → 创建计划文件(changes.json) → 验证计划 → 执行 → 验证结果

好处:

  • 在执行前捕获错误
  • 机器可验证
  • 可逆的计划(不触碰原始文件)
  • 清晰的调试路径

七、常见模式与模板

7.1 模板模式

## 报告结构

始终使用此模板:

\`\`\`markdown
# [分析标题]

## 执行摘要
[关键发现的一段式概述]

## 关键发现
- 发现 1 及支撑数据
- 发现 2 及支撑数据

## 建议
1. 具体可执行的建议
2. 具体可执行的建议
\`\`\`

7.2 示例模式

提供输入/输出对,比描述更清晰:

## 提交信息格式

**示例 1:**
输入:添加了 JWT 用户认证
输出:feat(auth): 实现基于 JWT 的认证

**示例 2:**
输入:修复了报告中日期显示错误
输出:fix(reports): 修正时区转换中的日期格式

7.3 条件工作流模式

## 文档修改

1. 判断修改类型:
   **创建新内容?** → 走"创建工作流"
   **编辑现有内容?** → 走"编辑工作流"

2. 创建工作流:...
3. 编辑工作流:...

八、脚本与代码最佳实践

8.1 解决问题,不推卸

脚本应自己处理错误,而非甩给 Claude:

# 正确:显式处理错误
def process_file(path):
    try:
        with open(path) as f:
            return f.read()
    except FileNotFoundError:
        print(f"文件 {path} 不存在,创建默认文件")
        with open(path, "w") as f:
            f.write("")
        return ""

# 错误:甩给 Claude
def process_file(path):
    return open(path).read()  # 直接崩溃

8.2 避免魔法数字

# 正确:自解释
REQUEST_TIMEOUT = 30  # HTTP 请求通常在 30 秒内完成
MAX_RETRIES = 3       # 3 次重试在可靠性和速度间取平衡

# 错误:为什么是这个数?
TIMEOUT = 47
RETRIES = 5

8.3 提供工具脚本

预制脚本优于让 Claude 临时生成:

  • 更可靠
  • 节省 Token(无需在上下文中包含代码)
  • 节省时间
  • 确保一致性

8.4 明确脚本用途

# 让 Claude 执行(常见)
运行 `analyze_form.py` 提取表单字段

# 让 Claude 作为参考阅读(复杂逻辑)
参见 `analyze_form.py` 了解字段提取算法

九、测试与迭代

9.1 评估驱动开发

先建评估,再写文档。

1. 识别差距:在没有 Skill 的情况下让 Claude 执行任务,记录失败点
2. 创建评估:构建 3 个测试场景
3. 建立基线:测量无 Skill 时的表现
4. 编写最少指令:仅解决差距的内容
5. 迭代:执行评估 → 对比基线 → 改进

9.2 双 Claude 迭代法

Claude A(设计师)          Claude B(测试者)
    │                          │
    ├── 创建/改进 Skill ──────→ │
    │                          ├── 在真实任务中使用
    │                          ├── 观察行为和问题
    │ ←── 反馈问题 ────────────┤
    ├── 根据反馈改进            │
    ├── 更新 Skill ───────────→│
    │                          ├── 再次测试
    ...                        ...

9.3 调试三大常见问题

问题诊断方法解决方案
触发不足问 Claude:“你什么时候会用 [skill name]?“改进 description,加入更多触发词
过度触发检查是否与其他 Skill 混淆添加负面触发词:“不要用于…”
触发但不遵循检查 SKILL.md 长度保持 <5000 Token,用 ”## 关键” 标题,显式列出验证步骤

9.4 观察 Claude 如何导航你的 Skill

迭代 Skill 时,关注 Claude 的实际使用行为,有 4 个关键观察信号:

信号说明行动
意外的探索路径Claude 按你没预期的顺序读文件说明你的结构不够直观,需调整导航
遗漏的连接Claude 没有跟随引用到重要文件链接需要更显眼或表述更明确
过度依赖某个文件Claude 反复读同一个 reference 文件考虑把该内容提升到 SKILL.md 主文件中
被忽略的内容Claude 从未访问某个 bundled 文件该文件可能没必要存在,或信号不够强

基于观察迭代,而非基于假设。namedescription 是最关键的——Claude 靠它们决定是否触发。

9.5 跨模型测试

模型考虑点
Haiku(快速经济)Skill 是否提供了足够的指导?
Sonnet(平衡)Skill 是否清晰高效?
Opus(强推理)Skill 是否避免了过度解释?

十、反模式清单

10.1 结构反模式

反模式正确做法
在 Skill 文件夹放 README.md用 SKILL.md 或 references/
引用嵌套超过一层所有引用从 SKILL.md 直接链接
SKILL.md 超过 500 行拆分到 references/
使用 Windows 反斜杠路径始终用正斜杠
硬编码绝对路径使用相对路径或 {baseDir}
100+ 行参考文件没有目录在文件顶部加 TOC,确保 Claude 预览时能看到全貌

10.2 内容反模式

反模式正确做法
包含时效性信息用”旧模式”折叠区,或直接给当前方案
术语不一致(混用 API endpoint/URL/route)选一个术语全文统一
提供过多选择给默认方案 + 备选逃生口
假设包已安装显式说明依赖和安装命令

10.3 权限反模式

# 反模式:过度授权
allowed-tools: "Bash,Read,Write,Edit,Glob,Grep,WebSearch,Task,Agent"

# 正确:最小权限
allowed-tools: "Bash(git status:*),Bash(git diff:*),Read"

十一、Skill 命名规范

推荐使用动名词形式(gerund)

# 推荐(动名词形式,清晰描述活动)
processing-pdfs
analyzing-spreadsheets
managing-databases
testing-code
writing-documentation

# 可接受(名词短语或动作导向)
pdf-processing
process-pdfs

# 避免
helper          # 太模糊
utils           # 太通用
documents       # 不描述行为

十二、分发与部署

平台方式
Claude.aiSettings > Capabilities > Skills 上传
Claude Code放入 ~/.claude/skills/ 或项目级 .claude/skills/
API通过 API 编程式上传
GitHub开源仓库分享,附安装说明
管理员部署工作区级别统一推送(2025年12月发布)

十三、面向 AEO 的 Skill 优化技巧

来源:微信公众号「奇点漫游者」/ 虎嗅

在 Agent 互联网时代,Skill 不仅要对 Claude 好用,还要让所有 AI Agent 都能发现、理解、信任并调用你的 Skill。以下是面向 AEO(Agent Engine Optimization)的四大优化特质:

13.1 自带 SOP 封装

不是只扔一个接口地址,而是交付带着工具的数字员工

## 支付处理 SOP

1. 第一步:核对用户余额
2. 第二步:检查风控状态
3. 第三步:发起支付请求
4. 如果遇到风控拦截:
   - 向用户解释原因
   - 建议替代支付方式
   - 记录异常日志

关键:像带徒弟一样,把”老兵经验”写进 SKILL.md。

13.2 设定”反向提示词”(负面边界)

明确告诉 Agent 什么时候不要调用你,反而会极大增加信任评分。

description: >
  处理大额跨境支付(100美元以上)。支持 SWIFT 和 SEPA 网络。
  不要用于:100美元以下的小额支付、国内转账、加密货币交易。
## 不适用场景

以下情况请不要调用本 Skill:
- 小额支付(<100 USD)→ 建议使用 `small-payment` Skill
- 国内银行转账 → 建议使用 `domestic-transfer` Skill
- 需要即时到账 → SWIFT 通常需要 1-3 个工作日

原理:明确边界 → 降低 Agent 出错率 → 提升信任评分 → 关键时刻更多调用。

13.3 具备”自愈能力”(柔性反馈机制)

参数错误时不要直接中断,而是返回结构化的修正指令:

## 错误处理规范

当参数缺失或错误时,返回以下格式的修正指令:

\`\`\`json
{
  "status": "error",
  "error_type": "missing_parameter",
  "missing": "delivery_address",
  "suggestion": "请向用户追问配送地址",
  "example": "请提供您的配送地址(包含城市、区/县、详细地址)"
}
\`\`\`

不要返回空洞的 404 或 500 错误。
每个错误都应包含 suggestion 字段,帮助 Agent 自我纠偏。

对比

  • 平庸 Skill:{"error": 500, "message": "Internal Server Error"} → 任务中断
  • 优秀 Skill:{"error": "missing_address", "suggestion": "请向用户追问配送地址"} → Agent 自我纠偏,任务闭环

13.4 原子化与跨平台互通

## 兼容性声明

本 Skill 遵循开放标准,支持以下平台:
- Claude Code / Claude.ai / Claude API
- OpenClaw 本地节点
- ChatGPT Agent(通过适配层)
- 任何支持 Markdown 指令注入的 Agent 框架

## 原子化设计

本 Skill 仅负责「跨境支付」这一个原子化能力。
不包含用户认证、余额查询、汇率转换等功能。
如需这些能力,请组合使用:
- `user-auth` Skill
- `balance-check` Skill
- `currency-exchange` Skill

一处编写,全网运行——像插入 SD 卡一样,瞬间获得能力。

13.5 AEO 三大基本准则在 Skill 中的体现

准则在 Skill 中的实现
意图映射Description 中精准声明:在什么场景下调用是最佳选择
确定性描述SKILL.md 中定义严格的参数 Schema、输入输出格式、边界条件
反馈闭环错误处理返回结构化修正指令,而非空洞错误码

十四、完整 Checklist

核心质量

  • Description 具体,包含关键触发词
  • Description 包含「做什么」+「何时用」,使用第三人称
  • SKILL.md 正文 < 500 行
  • 额外细节拆分到独立文件
  • 无时效性信息
  • 全文术语一致
  • 示例具体,非抽象
  • 文件引用仅一层深度
  • 恰当使用渐进式披露
  • 工作流步骤清晰
  • 从模板复制的段落在当前 skill 中确实被引用(无死代码)

代码与脚本

  • 脚本自己处理错误,不推卸给 Claude
  • 无魔法数字(所有值有注释说明)
  • 依赖包已列出并验证可用
  • 脚本有清晰文档
  • 全部使用正斜杠路径
  • 关键操作有验证/验证步骤
  • 质量关键任务有反馈闭环

AEO 优化

  • 包含反向提示词(负面边界)
  • 错误处理返回结构化修正指令(自愈能力)
  • 工作流包含完整 SOP(老兵经验)
  • 原子化设计,职责单一
  • 跨平台兼容性声明

测试

  • 至少 3 个评估场景
  • 跨模型测试(Haiku/Sonnet/Opus)
  • 真实使用场景测试
  • 已收集团队反馈

参考来源