你已经在用 AI 了。

每天打开 Claude,问问题,改改文案,让它帮你整理一些东西。感觉有在用,但隐隐觉得哪里不对——怎么别人说 AI 能帮他们节省好几个小时,你这边就是快了一点点?

不是 AI 不行。是用法有问题。

大多数人用 Claude 的方式,本质上和用搜索引擎没什么区别。问一句,得一句。用完就关。下次再开一个新对话,重新解释一遍背景,重新等它理解你。每次都在从零开始。

这不叫用 AI。这叫在消耗 AI。

真正让 AI 给你带来质变提效的方式,叫做 Skill。但 90% 在琢磨 AI 的人,根本不知道这个东西的存在。知道的人里,有 90% 搭出来的 Skill 是烂的——我早期就是其中之一。

摸索了好几周,反复踩坑,做出来的 Skill 效果一般,产出质量差,还要不停返工。后来系统学了 prompt 优化的底层逻辑才明白:Skill 搭得烂,不是因为不够聪明,是因为根本没有一套科学的流程。

下面这六步,是我花了很长时间才拼出来的东西。

---

#先说清楚:Skill 到底是什么

Skill 是你给 Claude 预装的一套行为规范

你可以把它理解成:一个提前写好的、针对某类任务的完整操作手册。Claude 读完这个手册,就知道碰到这类任务该怎么做、用什么工具、按什么步骤、输出什么格式。

没有 Skill 的 Claude,每次都要重新猜你要什么。

有了 Skill 的 Claude,一看到触发词,直接进入专家模式。

这不是玄学,这是工程问题。

---

#为什么你之前搭的 Skill 效果差

先做个自测。你之前是怎么搭 Skill 的?

大概率是这样:打开对话框,输入"帮我创建一个 XX Skill",等 Claude 吐出一大段文字,复制粘贴,用一次,发现效果不行,然后放弃。

问题出在哪?

你没有给 Skill 写清楚三件事:做什么、什么时候触发、输出是什么。

Claude 不是读心术。你给它一个模糊的需求,它就还你一个模糊的结果。垃圾进,垃圾出——这个规律对人类成立,对 AI 同样成立。

哈佛商学院有研究:用 AI 完成任务的人,比不用 AI 的人快 25%,质量高 40% 以上。但这个数据的前提是——他们知道怎么用。

频繁的 AI 超级用户每周能节省 20 小时以上。

你上周用 AI 节省了几小时?

如果答案让你不舒服,那正是这篇文章要解决的问题。

---

#搭一个真正好用的 Skill,分六步走

第一步:想清楚再动手

在碰键盘之前,先在脑子里回答三个问题:

这个 Skill 能做什么? 不要说"帮我处理工作"。要具体到:把用户上传的销售数据整理成可视化的周报,输出 Word 文件。

什么时候触发它? 用户说什么话、上传什么文件时,Claude 应该自动调用这个 Skill?把所有可能的说法都列出来——"写周报"、"整理数据"、"生成报告",越全越好。

输出是什么? 一个文件?一段分析?一个可交互的界面?

这三个问题想不清楚,后面所有步骤都是在浪费时间。

---

第二步:建文件夹

Skill 的物理形态,就是一个文件夹。结构非常简单:

my-skill/
├── SKILL.md        ← 必须有,核心说明文件
├── scripts/        ← 可选,放可执行脚本
├── references/     ← 可选,放参考文档
└── assets/         ← 可选,放模板文件

在终端里两行命令搞定:

mkdir -p my-skill/{scripts,references,assets}
touch my-skill/SKILL.md

文件夹名字就是 Skill 的名字。用小写加连字符,比如 weekly-reportdata-to-docx

---

第三步:写 SKILL.md(最核心的一步)

这个文件分两部分:顶部 YAML正文说明

顶部 YAML 决定 Claude 会不会用这个 Skill。正文说明决定 Claude 用得好不好。

格式如下:

---
name: weekly-report
description: |
  把工作内容整理成 Word 格式周报。
  当用户说「写周报」「生成周报」「weekly report」
  「整理本周」时必须使用本 Skill。
  哪怕用户没有明确说"周报",只要在整理
  本周工作总结,也要触发。
---

# 周报生成 Skill

## 步骤
1. 先读取 /mnt/skills/public/docx/SKILL.md
2. 询问用户本周的工作内容(如果没提供)
3. 按模板格式整理内容
4. 生成 .docx 文件
5. 用 present_files 工具呈现给用户

## 模板格式
- 本周完成事项
- 遇到的问题与解决方案
- 下周计划

description 是整个 Skill 的触发器,是最容易被忽视、也最容易搞砸的地方。

大多数人写 description 只写"这是什么"——"生成周报的工具"。这种写法触发率极低。

正确的写法是:把用户可能说的各种话都写进去,明确告诉 Claude 什么时候必须用这个 Skill。要稍微"强硬"一点——Claude 有一个天然倾向,就是能自己处理的事情就不调用 Skill。你必须在 description 里打破这个倾向。

---

第四步:按需加辅助资源

SKILL.md 建议控制在 500 行以内。说明太长,把细节拆出来放到 references/ 文件夹,在 SKILL.md 里写清楚"需要时去读 references/xxx.md"就好。

三类资源各司其职:

  • scripts/:放 Python 或 Shell 脚本,处理格式转换、数据处理这类机械性任务
  • references/:放参考文档,比如格式规范、行业术语表、品牌语气指南
  • assets/:放模板文件、字体、图标,供脚本直接调用

在 SKILL.md 里引用资源的写法:

## 格式规范
详见 references/style-guide.md,
处理格式时请先读取该文件。

---

第五步:用评估器打分,量化迭代

这一步是大多数人跳过的步骤,也是 Skill 质量差距真正拉开的地方。

靠感觉测试是没用的。你觉得"好像还行",不代表 Skill 真的在稳定工作。正确的做法是建一套评估体系,让数据说话。

第一步:写测试用例

在 Skill 文件夹里建一个 evals/evals.json,写 5 到 10 个真实的测试场景:

{
  "skill_name": "weekly-report",
  "evals": [
    {
      "id": 1,
      "prompt": "帮我写本周周报,这周完成了用户模块开发",
      "expected_output": "包含本周事项、问题、下周计划的 Word 文件"
    },
    {
      "id": 2,
      "prompt": "generate my weekly summary",
      "expected_output": "英文触发词也能正确调用 Skill"
    }
  ]
}

测试用例要覆盖边界情况:用户说话方式不标准、输入内容残缺、换一种语言触发——这些才是真正暴露问题的场景。

第二步:写断言(Assertions)

每个测试用例对应一组可量化的判断标准,叫做断言。比如:

  • 输出文件是否为 .docx 格式?
  • 文件里是否包含"下周计划"这个章节?
  • 触发词变换后,Skill 是否依然被调用?

断言的原则是:客观可验证,不依赖主观感受。 能用脚本检查的,就用脚本检查,比人眼看更快更准。

第三步:跑评估,生成 benchmark

有了测试用例和断言,跑两组对比:一组用 Skill,一组不用 Skill(或者用旧版 Skill)。然后聚合结果:

python -m scripts.aggregate_benchmark workspace/iteration-1 --skill-name weekly-report

生成 benchmark.json,里面有每个测试用例的通过率、耗时、token 消耗,以及有 Skill 和没有 Skill 之间的差值。

这个差值,就是你这个 Skill 的实际价值。

第四步:开评估查看器,人工复核

跑完评估之后,用可视化查看器逐条看输出:

python eval-viewer/generate_review.py workspace/iteration-1 \
  --skill-name "weekly-report" \
  --benchmark workspace/iteration-1/benchmark.json

浏览器会打开一个界面。左边是每个测试用例的输入和输出,右边是断言的通过/失败明细。你可以对每个结果留下文字反馈,最后点"Submit All Reviews"保存。

先看评估结果,再改 Skill。 不要凭感觉改,要根据数据改。哪条断言失败了,去 SKILL.md 里针对性地修那一段。

第五步:触发词优化循环

description 写得好不好,直接影响触发率。这也是最容易被忽视的一步——大多数人写完 description 就不管了,但这恰恰是 Skill 效果差的最大原因。

来看一个真实的对比。同一个周报 Skill,两版 description:

优化前:

生成周报的工具,帮助用户整理本周工作内容,输出 Word 文件。

优化后:

把工作内容整理成 Word 格式周报。
当用户说「写周报」「生成周报」「weekly report」
「整理本周」「本周总结」「工作汇报」时必须使用本 Skill。
哪怕用户没有明确说"周报",只要在整理
本周工作总结,也要触发。
不要因为任务简单就跳过本 Skill 自行处理。

跑触发率评估,结果如下:

|测试场景|优化前触发|优化后触发|
|---|---|---|
|"帮我写周报"|✅|✅|
|"generate my weekly summary"|❌|✅|
|"整理一下这周干了啥"|❌|✅|
|"本周工作汇报"|❌|✅|
|"weekly report 要交了"|❌|✅|

触发率:40% → 100%。

差距来自哪里?优化前的 description 只说了"这个 Skill 是什么",没有告诉 Claude "什么时候必须用它"。Claude 有一个天然倾向——能自己处理的任务就不调用 Skill。你必须在 description 里主动打破这个倾向。

跑优化循环是把这个过程自动化:

python -m scripts.run_loop \
  --eval-set evals/trigger-eval.json \
  --skill-path my-skill/ \
  --max-iterations 5

它自动把测试集拆成训练集和测试集,跑多轮评估,每轮根据失败案例提出 description 的改写方案,最终返回得分最高的版本。直接替换 SKILL.md 顶部的 YAML 就好。

description 优化完,再看一次 benchmark,前后对比的样子大概是这样:

iteration-1 benchmark(优化前)
─────────────────────────────────────────
断言通过率(with skill):   58%
断言通过率(without skill): 12%
提升差值:                   +46%

失败断言明细:
  ✅ 输出文件为 .docx 格式
  ✅ 包含"本周完成事项"章节
  ❌ 包含"下周计划"章节        ← 模板缺失
  ❌ 英文触发词能正确调用       ← description 覆盖不足
  ❌ 输入残缺时主动询问用户     ← 步骤说明未覆盖

iteration-2 benchmark(优化后)
─────────────────────────────────────────
断言通过率(with skill):   100%
断言通过率(without skill): 12%
提升差值:                   +88%

失败断言明细:
  ✅ 输出文件为 .docx 格式
  ✅ 包含"本周完成事项"章节
  ✅ 包含"下周计划"章节
  ✅ 英文触发词能正确调用
  ✅ 输入残缺时主动询问用户

这张表说明了一件事:没有 Skill 的 Claude,通过率永远是 12%。有了经过评估迭代的 Skill,通过率是 100%。这个差距,就是你搭 Skill 的价值所在。

---

整个评估流程加起来:写用例 → 写断言 → 跑 benchmark → 看 viewer → 改 Skill → 再跑。不需要每次都跑完整循环,第一次认真跑一遍,后续迭代只需要验证改动点就够了。

---

第六步:打包

测试满意之后,一行命令打包:

python -m scripts.package_skill my-skill/

生成 .skill 文件,可以直接分享,也可以自己存档备用。

---

#最后说一句

这六步写出来不复杂,但真正做一遍,你会在某个地方卡住。

可能是 description 写了半天触发率还是上不去。可能是 benchmark 跑出来数据难看,但不知道该改哪里。可能是第一步的三个问题想了很久,发现自己根本没想清楚要解决什么问题。

这很正常。

Skill 不是教程看完就会的东西。它是一个需要迭代的工程,第一次做会有很多地方不顺。重要的是把它做出来,跑起来,用真实的任务去测它。

哈佛商学院的研究说,真正用好 AI 的人完成任务比别人快 25%,质量高 40%。PwC 的数据说,掌握 AI 技能的人薪资溢价 56%。

这些数字背后的人,不是比你更聪明,是比你早一步把流程跑通了。

去试。卡住了再说。

---

🔗 Skill 工程系列
📝 认知基础:[[../../公众号/文章草稿/小白用好baoyu-skills深度教程|baoyu-skills深度教程]](从"聊天心态"到"工程思维")
🏗️ 工程哲学:[[../../已发布/20260405-Harness Engineering:真正拉开差距的,不是功能数量,而是工作秩序|Harness Engineering]](本文的工程化实践)