如何用 skill-creator 创建、测试和优化 skill

核心问题

Skill 的测试长期依赖"凭感觉"------用一个 prompt 测试一次,输出看起来合理就算通过。随着 skill 变得复杂、团队开始依赖它们,问题逐渐暴露:模型更新后 skill 可能失效,修改一行指令可能破坏其他功能。

Skill-Creator plugin 是 Anthropic 对此问题的解决方案,它将软件工程的测试纪律引入 skill 开发------包括 evals、benchmarks、A/B 对比和 description 优化。


什么是 Skill

Skill 是一个 markdown 文件(SKILL.md),为 Claude 提供特定任务的专用指令。文件顶部有 YAML frontmatter(包含 name 和 description),正文是 Claude 执行任务时读取的指令。

Description 决定 Claude 何时触发该 skill------Claude 扫描所有可用 skill 的 description,根据用户输入匹配加载。

目录结构:

perl 复制代码
my-skill/
├── SKILL.md          # 核心指令 + frontmatter
├── scripts/          # 可选:Python scripts
├── templates/        # 可选:参考模板
└── assets/           # 可选:支持文件

YAML frontmatter 格式:

yaml 复制代码
---
name: my-skill-name
description: A clear description of what the skill does and when to trigger it.
---

核心难点:如何验证指令是否真正产出预期输出------这正是 Skill-Creator 要解决的。


安装方式

方式一:Plugin Marketplace(推荐用于 Claude Code)

bash 复制代码
/plugin marketplace add anthropic/skills

安装后选择 skill-creator ,选择 User Scope 使其跨项目可用。重启 Claude Code 后运行 /skill 确认。

方式二:克隆仓库

bash 复制代码
git clone https://github.com/anthropics/skills.git
cd skills/skills/skill-creator

目录结构:

perl 复制代码
skill-creator/
├── SKILL.md          # 主指令
├── agents/           # Grader, comparator, analyzer subagents
├── assets/           # eval 结果的 HTML 模板
├── eval-viewer/      # 生成 HTML review 界面的 scripts
├── references/       # Schema 文档
└── scripts/          # 核心测试和 benchmarking 逻辑

本地安装:

bash 复制代码
mkdir -p ~/.claude/skills/
cp -r skill-creator ~/.claude/skills/

方式三:Claude.ai 或 Cowork

无需安装,直接在对话中要求 Claude 使用 skill-creator 即可自动加载。


四种工作模式

模式 功能
Create 通过引导式问答从零构建新 skill,生成草稿和初始测试用例
Eval 对现有 skill 运行测试 prompts 和 expectations,生成 HTML 报告逐项展示结果
Improve 将失败的 evals 输入改进循环,Claude 迭代优化 skill 指令直到更多测试通过
Benchmark 多次运行 evals 并进行方差分析,对比有/无 skill 的表现,用数据证明 skill 是否有价值

调用方式:

bash 复制代码
/skill-creator
/skill-creator "run evals on my PDF skill"
/skill-creator "create a new skill for reviewing PRs"
/skill-creator "benchmark my skill across 10 runs"

实战流程:构建 PRD 写作 Skill

Step 1:Create Flow

bash 复制代码
/skill-creator "I want to create a skill for writing PRDs"

Skill-Creator 会问以下澄清问题:

  • PRD 遵循什么格式?
  • 用户通常提供什么输入?
  • 好的输出 vs 差的输出是什么样的?
  • Claude 绝对不应该做什么?

问答过程约 5-10 分钟,产出 SKILL.md 初稿。初稿不完美但提供了可靠的起点。

Step 2:编写 Evals

Eval 由两部分组成:

  • test prompt------用户可能实际输入的内容
  • expectations------输出应包含或满足的条件

关键原则:expectations 必须是可验证的。 "Output is high quality" 不是 expectation,"Output includes a Success Metrics section" 才是。要具体、要结构化。

Eval 示例:

json 复制代码
{
  "evals": [
    {
      "prompt": "Write a PRD for a user notification preferences feature",
      "expectations": [
        "Output includes a Problem Statement section",
        "Output includes at least 3 user stories",
        "Output includes a Success Metrics section",
        "Output does not include implementation details in the requirements section"
      ]
    },
    {
      "prompt": "Write a PRD for a mobile checkout flow redesign",
      "expectations": [
        "Output includes a Background section explaining current state",
        "Output includes out-of-scope items",
        "Success metrics are measurable and specific, not vague"
      ]
    }
  ]
}

Step 3:运行 Evals

bash 复制代码
/skill-creator "run evals on my PRD skill"

Skill-Creator 为每个 eval 启动独立的 grader agent(干净上下文,无交叉污染),运行 skill 后逐条检查 expectations。完成后自动生成 HTML eval viewer:

bash 复制代码
python eval-viewer/generate_review.py --static eval_results.html

浏览器打开后可逐项查看:prompt、expected outputs、通过/失败状态、实际输出。

实测首次运行 3/5 通过。两个失败原因:requirements section 包含了实现细节;success metrics 过于模糊(如"improve user satisfaction")。这些问题在单次手动测试中不会被发现。


改进循环

bash 复制代码
/skill-creator "improve my PRD skill based on failing evals"

改进循环的工作原理:

  1. 将 evals 按 60/40 分为 training set 和 held-out test set
  2. 在 training set 上评估当前 skill
  3. 调用 Claude(启用 extended thinking)基于失败项提出 SKILL.md 改进建议
  4. 用新版本重新评估两个集合
  5. 最多重复 5 次迭代,按 test set 分数选择最佳版本(避免过拟合训练集)

实测经过 3 次迭代,training set 从 3/5 提升到 5/5,held-out test set 2/2 通过。Skill-Creator 做出的修改:添加明确指令将实现细节放入独立的"Technical Considerations"section(而非完全移除),并要求 success metrics 包含具体数字或百分比。


Benchmark:证明 Skill 的价值

核心问题:skill 是否真的让 Claude 表现更好,还是加载与否结果相同?

bash 复制代码
/skill-creator "benchmark my PRD skill across 10 runs and compare with/without"

Benchmark 追踪三项指标:

  • Pass rate------expectations 通过百分比
  • Token usage------消耗的 token 数
  • Elapsed time------执行耗时

PRD skill 的 benchmark 结果:

模式 Pass Rate Avg Tokens Avg Time
With skill 94% 4,210 18s
Without skill 61% 3,890 15s

Skill 增加约 320 tokens 开销和 3 秒耗时,但 pass rate 提升 33 个百分点。

对于较旧或较简单的 skill,可能发现基础模型无论是否加载 skill 都能 100% 通过------这意味着模型已原生吸收了这些能力,可以考虑退役该 skill 或将其进化为更具体的用途。


Description 优化

Skill 常见问题:构建得很好但触发不了,因为 description 与用户实际输入不匹配。

bash 复制代码
/skill-creator "optimize the description for my PRD skill"

优化器获取当前 description 和一组样本 prompts(应触发和不应触发的),迭代优化触发精度。

Claude 倾向于对 skill 触发偏保守(undertrigger)。优化器通常会使 description 稍微"主动"一些,明确列出 skill 应触发的上下文。

优化前:

"Helps write product requirement documents."

优化后:

"Helps write product requirement documents (PRDs). Use this skill whenever the user mentions writing a PRD, feature spec, requirements doc, or user stories --- even if they don't use the word 'PRD' specifically."

这一改动将触发准确率从 5/8 提升到 8/8。


底层架构:四个 Agent

Agent 职责
Executor 在干净上下文中对每个 eval prompt 运行 skill,追踪 token 用量和耗时
Grader 读取输出文件和对话 transcripts,逐条推理判断 expectation 是否满足(非简单关键词匹配)
Comparator A/B 测试用:盲评两个 skill 版本的输出,根据 rubric 选出胜者,防止评估偏差
Analyzer 分析哪些 expectations 持续失败,针对 skill 的具体部分提出改进建议,驱动改进循环

两类 Skill 及其测试策略

Capability Uplift Skills(能力提升型)

赋予 Claude 原本无法可靠完成的能力。例如文档生成 skill(PDF, DOCX, PPTX, XLSX)编码了生成格式正确文件的特定技术。

Benchmark 的两个用途:

  • 检测 skill 在模型更新后是否仍有效
  • 检测 skill 是否仍有必要(如果基础模型已原生掌握该能力,skill 可退役)

Encoded Preference Skills(偏好编码型)

为 Claude 已能完成的任务编码团队特定的工作流偏好------如特定的 PRD 格式、特定的 code review checklist、特定的公司语气。

这类 skill 更持久(偏好不会被模型吸收),但需要保真度测试------确认小改动没有意外跳过某个步骤。


常见错误

  1. Expectations 过于模糊:"Output should be good" 无法被 grader 验证。"Output should include a Problem Statement section before the user stories" 才可检查。Evals 越模糊,grader 越需要主观判断,结果越不可靠。

  2. 只测试 happy-path prompts:所有 eval 都是"write a PRD for X feature"类型当然会全部通过。有价值的失败来自边缘情况:不完整输入、模糊请求、与 skill 用途相邻但不完全匹配的 prompts。

  3. 改进循环运行过多次:超过 5 次迭代有过拟合风险。Skill-Creator 默认上限为 5 次。

  4. 忽略 held-out test set:Skill-Creator 使用 60/40 train/test split。Training set 100% 但 held-out set 只有 40% 意味着 skill 只是记住了示例而非学会了模式。务必检查 held-out score。


快速参考:关键命令

bash 复制代码
# 从 marketplace 安装
/plugin marketplace add anthropic/skills

# 查看可用 skills
/skill

# 运行 Skill-Creator
/skill-creator

# 具体模式
/skill-creator "create a new skill for [task]"
/skill-creator "run evals on my [skill name] skill"
/skill-creator "improve my [skill name] skill based on failing evals"
/skill-creator "benchmark my [skill name] skill across 10 runs"
/skill-creator "optimize the description for my [skill name] skill"

# 生成静态 eval viewer(在 Claude Code 中使用)
python eval-viewer/generate_review.py --static results.html

FIN

相关推荐
蓝戒札记1 小时前
效率神器 NotebookLM:构建高质量知识库的完整教程与落地最佳实践
人工智能
chaors1 小时前
Langchain入门到精通0x02:ICEL
人工智能·langchain·ai编程
吴佳浩2 小时前
什么是算力?
人工智能·pytorch·llm
charlex2 小时前
【陈同学】走进 AI Agent:从“对话框”到“自主智能体”
人工智能·agent
百度Geek说3 小时前
打造高效易用的Agent Skill
人工智能
豆芽包3 小时前
实战部署OpenClaw
人工智能
大厂码农老A3 小时前
3天实现"睡后收入"—— Cursor & Skills打造"全自动出海"Agent
人工智能·aigc·ai编程
攻城羊Weslie4 小时前
🐑 从手动到自动:Yi-Shepherd 如何驯服 150+ 个 AI 模型
人工智能·程序员·开源
肥晨4 小时前
OpenClaw 卸载不完全?手把手教你“连根拔起”
人工智能