Development
技能创建器
创建新技能、修改和改进现有技能,并衡量技能表现。当用户想从零创建技能、编辑或优化现有技能、运行评测来测试技能时使用。
一个用于创建新技能并迭代改进它们的技能。
流程
- 确定你希望这个技能做什么,以及它大致应当如何实现
- 写出技能的初稿
- 创建几个测试提示词,并用“可访问该技能的 Claude”运行它们
- 协助用户从定性和定量两个角度评估结果
- 根据反馈重写技能
- 重复直至满意
- 扩充测试集,并在更大规模上再次尝试
创建技能
捕捉意图
先从理解用户的意图开始:
- 这个技能应当让 Claude 能够做什么?
- 这个技能应当在何时触发?
- 期望的输出格式是什么?
- 我们是否需要设置测试用例?
编写 SKILL.md
技能的结构剖析
skill-name/
├── SKILL.md (required)
│ ├── YAML frontmatter (name, description required)
│ └── Markdown instructions
└── Bundled Resources (optional)
├── scripts/ - Executable code
├── references/ - Docs loaded into context
└── assets/ - Files used in output
渐进式披露
技能采用三级加载机制:
- 元数据(name + description)——始终在上下文中(约 100 词)
- SKILL.md 正文——在技能触发时进入上下文(理想 <500 行)
- 捆绑资源——按需加载(无上限)
测试用例
在写完技能初稿后,构想 2-3 个贴近真实的测试提示词。将测试用例保存到 evals/evals.json。
{
"skill_name": "example-skill",
"evals": [
{
"id": 1,
"prompt": "User's task prompt",
"expected_output": "Description of expected result",
"files": []
}
]
}
运行与评估测试用例
第 1 步:启动所有运行(带技能 AND 基线)
对于每个测试用例,启动两个子代理:
- 一个带有该技能
- 一个不带(基线)
第 2 步:在运行进行期间,起草断言
为每个测试用例起草定量断言。
第 3 步:在运行完成时,记录计时数据
{
"total_tokens": 84852,
"duration_ms": 23332,
"total_duration_seconds": 23.3
}
第 4 步:评分、汇总并启动查看器
- 为每次运行评分
- 汇总成基准结果
- 进行一次分析师审阅
- 启动查看器
第 5 步:阅读反馈
将改进重点放在有具体抱怨的测试用例上。
改进技能
- 从反馈中归纳概括
- 保持提示词精简
- 解释“为什么”
- 寻找跨测试用例的重复工作
描述优化
description 字段决定了 Claude 是否会调用某个技能。在创建或改进技能之后,优化描述以提升触发的准确性。
第 1 步:生成触发评测查询
创建 20 条评测查询(混合应触发与不应触发两类)。
第 2 步:与用户一起审阅
第 3 步:运行优化循环
python -m scripts.run_loop \
--eval-set <path-to-trigger-eval.json> \
--skill-path <path-to-skill> \
--model <model-id> \
--max-iterations 5
第 4 步:应用结果
从 JSON 输出中取出 best_description,并更新该技能 SKILL.md 的 frontmatter。