当前位置: 首页 > news >正文

claude skill 官方评测方式解读

基于此文档解读:https://github.com/anthropics/skills/blob/main/skills/skill-creator/SKILL.md

以「SQL 解读器」为例,看 Claude 如何全自动构建、测试与优化智能体技能

你描述需求,AI 完成从编码、测试、评估到部署的一切。本文将完整揭示 Claude 如何像一个高效的“技能产品经理+开发工程师”,将一句模糊的想法变成可直接部署的可靠技能。


引言:从想法到成品的“一键”之路

你是否想过,让一个 AI 智能体获得一项新能力(比如“解释 SQL”),不再需要手动编写冗长的提示词、设计复杂的测试用例、反复调试和验证?

本文将以创建一个「SQL 解读器」技能​ 为例,完整展示一种由Claude 主导的全自动化技能开发流程。你只需扮演“产品负责人”,提出想法并回答几个关键问题,剩下的编码、测试、评估、迭代优化,乃至最终的打包,全部交由 Claude 自动调度完成。

核心前提:你全程只需要和 Claude 对话,以及在浏览器里审查结果。所有子智能体、脚本、文件的创建和运行,都是 Claude 自动调度的“后台任务”。


第 1 步:需求沟通 - 从模糊意图到清晰定义

一切始于一句自然语言的需求。

  • 你提出需求

    “帮我做一个技能,我贴 SQL 的时候自动解释含义,顺便指出性能问题”

  • Claude 追问细节(扮演产品经理角色):

    “SQL 主要是 MySQL 还是?性能建议需要具体到列名吗?要不要建测试用例?”

  • 你明确要求

    “MySQL 为主,建议要具体到列名,要测试”

至此,一个清晰的、可执行的“产品需求文档”(PRD)已在 Claude 的“脑中”成型。


第 2 步:蓝图绘制 - 编写技能定义文件 (SKILL.md)

基于清晰的意图,Claude 开始编写技能的“蓝图”和“行为规范”——SKILL.md文件。

文件路径sql-explainer/SKILL.md

--- name: sql-explainer description: | 解释SQL查询语句的含义并分析性能问题。当用户粘贴SQL代码、 询问SQL含义、请求SQL优化建议、或讨论慢查询时使用此技能。 --- ## 你的任务 ### 1. 逐句解释 用“先做什么,再做什么”的叙事方式拆解SQL。 ### 2. 性能分析 检查:SELECT *、全表扫描、JOIN缺索引、子查询可改JOIN、LIKE前缀%索引失效等。 **建议要具体到列名**,比如“建议在 `orders.user_id` 上创建索引”。 ### 3. 输出格式 > **SQL 解释:**(逐句) > **性能建议:**(编号列表)

这个文件定义了技能的触发场景、核心任务和输出标准,是后续所有自动化工作的“宪法”。


第 3 步:质量标尺 - 设计自动化测试用例

没有测试的技能是不可靠的。Claude 随即创建了评估集,用于后续自动化验证技能效果。

文件路径sql-explainer/evals/evals.json

[ { "id": "eval-001", "prompt": "帮我看看这段SQL:\nSELECT * FROM orders o\nLEFT JOIN users u ON o.user_id = u.id\nWHERE o.created_at > '2024-01-01'\nORDER BY o.created_at DESC\nLIMIT 100", "expected_output": "应解释JOIN、WHERE、排序分页;应指出SELECT *问题" }, { "id": "eval-002", "prompt": "这个慢查询怎么优化?\nSELECT u.name, COUNT(o.id) as order_count\nFROM users u\nLEFT JOIN orders o ON u.id = o.user_id\nWHERE o.status IN (\n SELECT status FROM order_status WHERE is_active = 1\n)\nGROUP BY u.name\nHAVING order_count > 5", "expected_output": "应指出子查询可改JOIN、HAVING性能、GROUP BY开销" }, { "id": "eval-003", "prompt": "SELECT name FROM users WHERE name LIKE '%张%' AND age > 0", "expected_output": "应指出LIKE前缀%索引失效、age>0冗余" } ]

Claude 会将此测试集展示给你确认。你只需回复:“OK”,自动化流水线便正式启动。


第 4 步:自动化测试与评估 - Claude 的“独舞”

这是整个流程最核心、最自动化的一步。你无需任何操作,只需等待。Claude 将像一个交响乐指挥,同时调度多个“乐手”(子智能体)协同工作。

4.1 并发执行:启动 6 个子智能体

Claude 利用其Agent工具,在一条指令中一次性并发启动 6 个子智能体,分别针对每个测试用例,运行“携带技能”和“不携带技能”(作为基线)的版本。

Agent(prompt="带着 sql-explainer 技能,回答用户: 'SELECT * FROM orders o LEFT JOIN...'", 输出存到 workspace/iteration-1/eval-001/with_skill/outputs/") Agent(prompt="不带任何技能,回答用户: 'SELECT * FROM orders o LEFT JOIN...'", 输出存到 workspace/iteration-1/eval-001/without_skill/outputs/") Agent(prompt="带着 sql-explainer 技能,回答用户: '这个慢查询怎么优化?SELECT u.name...'", 输出存到 workspace/iteration-1/eval-002/with_skill/outputs/") Agent(prompt="不带任何技能,回答用户: '这个慢查询怎么优化?SELECT u.name...'", 输出存到 workspace/iteration-1/eval-002/without_skill/outputs/") Agent(prompt="带着 sql-explainer 技能,回答用户: 'SELECT name FROM users WHERE name LIKE...'", 输出存到 workspace/iteration-1/eval-003/with_skill/outputs/") Agent(prompt="不带任何技能,回答用户: 'SELECT name FROM users WHERE name LIKE...'", 输出存到 workspace/iteration-1/eval-003/without_skill/outputs/")

4.2 同步工作:为每个测试编写评估标准

在子智能体运行的同时,Claude 也没闲着。它为每个测试用例编写详细的评估断言文件 (eval_metadata.json),明确标出“好答案”应满足哪些具体要点。

示例文件workspace/iteration-1/eval-001/eval_metadata.json

{ "eval_id": "eval-001", "eval_name": "简单JOIN查询解释", "prompt": "帮我看看这段SQL:SELECT * FROM orders o LEFT JOIN...", "assertions": [ {"text": "解释了 LEFT JOIN 的作用"}, {"text": "解释了 WHERE created_at 的过滤逻辑"}, {"text": "解释了 ORDER BY + LIMIT 的分页效果"}, {"text": "指出了 SELECT * 的性能问题"}, {"text": "索引建议具体到了列名"} ] }

4.3 记录性能:抓取执行耗时与资源消耗

每个子智能体运行完毕,Claude 会立即收到系统通知(如耗时、token 使用量),并自动将其记录到对应的timing.json文件中,为后续性能分析提供数据。

示例文件workspace/iteration-1/eval-001/with_skill/timing.json

{"total_tokens": 1523, "duration_ms": 12000}

4.4 综合评估:从评分、聚合到洞察

当所有 6 个子智能体都运行完毕后,Claude 启动评估阶段。

  1. 启动 Grader 智能体评分:调用专门的评分智能体,根据eval_metadata.json中的断言,为每个运行结果 (response.md) 进行打分,生成grading.json

    with_skill 评分示例​ (workspace/iteration-1/eval-001/with_skill/grading.json):

    { "expectations": [ {"text": "解释了 LEFT JOIN 的作用", "passed": true, "evidence": "提到'通过LEFT JOIN关联users表'"}, {"text": "指出了 SELECT * 的性能问题", "passed": true, "evidence": "建议改为具体列名"} ] }

    without_skill 评分示例​ (workspace/iteration-1/eval-001/without_skill/grading.json):

    { "expectations": [ {"text": "解释了 LEFT JOIN 的作用", "passed": true, "evidence": "提了一句'做了JOIN'但很笼统"}, {"text": "指出了 SELECT * 的性能问题", "passed": false, "evidence": "未提及"} ] }
  2. 聚合数据,生成 Benchmark 报告:Claude 运行聚合脚本,汇总所有打分和性能数据,生成一份全面的 benchmark 报告。

    执行命令

    python -m scripts.aggregate_benchmark workspace/iteration-1 --skill-name sql-explainer

    生成的结构化报告​ (workspace/iteration-1/benchmark.json):

    { "skill_name": "sql-explainer", "configurations": [ { "name": "with_skill", "pass_rate": {"mean": 0.917, "std": 0.083}, "duration_ms": {"mean": 11200, "std": 1500}, "total_tokens": {"mean": 1450, "std": 200} }, { "name": "without_skill", "pass_rate": {"mean": 0.417, "std": 0.167}, "duration_ms": {"mean": 7800, "std": 1200}, "total_tokens": {"mean": 920, "std": 150} } ], "per_eval": [ {"eval_id": "eval-001", "with_skill": "5/5", "without_skill": "2/5"}, {"eval_id": "eval-002", "with_skill": "4/4", "without_skill": "2/4"}, {"eval_id": "eval-003", "with_skill": "2/3", "without_skill": "1/3"} ] }

    生成的人类可读报告​ (workspace/iteration-1/benchmark.md):

    Configuration

    Pass Rate

    Avg Time

    Avg Tokens

    with_skill

    91.7%

    11.2s ±1.5s

    1450 ±200

    without_skill

    41.7%

    7.8s ±1.2s

    920 ±150

    Delta

    +50.0%

    +3.4s

    +530

  3. 分析师审查,定位问题:Claude 会自动分析报告,找出潜在问题。例如,从上面数据可以看出:

    • 技能效果显著(通过率提升 50%)。

    • eval-003的 with_skill 丢了1分(预期3分,实得2分)。

    • 耗时增加 3.4 秒是获得高质量输出的合理代价。

  4. 启动可视化浏览器:Claude 启动一个本地 Web 服务,在浏览器中打开一个交互式看板,让你能直观地审查每个测试用例的详细输出、打分和对比。

    执行命令

    nohup python eval-viewer/generate_review.py \ workspace/iteration-1 \ --skill-name "sql-explainer" \ --benchmark workspace/iteration-1/benchmark.json \ > /dev/null 2>&1 &

第 5 步:人工审查与反馈

现在,轮到你出场了。你在浏览器查看器中轻松浏览报告。

  • 你看到eval-001eval-002表现完美。

  • 但在eval-003的详情页,你发现with_skill 版本的分析结果漏掉了“指出age > 0是冗余条件”​ 这一条。

于是,你在查看器的反馈框中写下:

“应该指出age > 0是冗余条件”

点击Submit All Reviews,这条反馈被自动保存到workspace/iteration-1/feedback.json


第 6 步:自动迭代 - 根据反馈改进技能

Claude 读取feedback.json文件,发现针对eval-003的反馈。它不会只做简单的“打补丁”,而是进行泛化思考,更新技能的“宪法” (SKILL.md):

“性能分析”​ 部分增加一条通用规则:

  • 冗余条件:检查 WHERE 子句中逻辑上永远为真的条件(例如,正数列> 0、定义为 NOT NULL 的列IS NOT NULL)。应指出这类条件不影响查询结果,但可能导致不必要的计算,有时也暗示了逻辑错误。


第 7 步:自动重跑 - 验证改进效果

Claude 自动开启第二轮迭代,完全重复第 4 步的流程,但:

  1. 使用更新后的SKILL.md

  2. 所有结果保存到新目录workspace/iteration-2/

  3. 在启动浏览器查看器时,会带上参数--previous-workspace workspace/iteration-1,使新页面能展示与上一轮的对比(如通过率变化、耗时变化)。

这次运行后,eval-003的所有断言全部通过。你在查看器中没有留下任何新反馈——这意味着技能已达到预期标准,迭代自动终止。


第 8 步:打包交付

技能已通过所有测试并完成优化,Claude 执行最后的打包命令:

python -m scripts.package_skill sql-explainer/

产出一个名为sql-explainer.skill的技能包文件。你可以将其放入~/.claude/skills/目录,即可在你的 Claude 环境中使用这个全新的「SQL 解读器」技能了。


总结:人机协作的新范式

回顾整个流程,你(人类)和 Claude(AI)的分工如下:

你(人类)所做的

Claude(AI)所做的一切

1. 描述初始需求、回答关键追问

编写技能蓝图 (SKILL.md)、设计测试集 (evals.json)

2. 确认测试用例 (OK)

并发启动子智能体、编写评估标准、记录性能、启动评分、聚合报告、启动可视化看板

3. 在浏览器中审查结果、提供关键反馈

读取反馈、泛化改进技能 (SKILL.md)、自动重跑测试、生成对比报告、最终打包技能包

你只做了 3 件高价值的事:提出想法、确认方向、在关键点上给出反馈。而 Claude 承担了从设计、编码、测试、评估、迭代到部署的所有工程性工作。

这种模式将人类从繁琐的、重复的工程劳动中解放出来,专注于最擅长的定义问题、判断质量和把握方向。而 AI 则像一个不知疲倦、高度协同的“全能工程师”,将想法快速、可靠地转化为可交付的产品。

这或许就是人机协作开发 AI 智能体及其能力的未来图景。

http://www.cnnetsun.cn/news/1695350.html

相关文章:

  • 告别低效搜索:GitHub宕机时,用快马AI快速生成效率工具代码
  • Product Hunt 每日热榜 | 2026-04-04
  • 2026年6款AI驱动的人力系统测评:谁更适合科技企业
  • MouseClick:解放双手的跨平台鼠标自动化神器,告别重复点击的烦恼
  • 2025届最火的五大降重复率平台解析与推荐
  • 深度解析ComfyUI-Easy-Use中Flux采样器Guidance参数的技术实现与优化策略
  • ANSYS焊接与增材制造仿真专题:温度场、应力场及热应力分析实例详解(附APDL代码)
  • 2026全网首发:Claude Code 终端智能体系统底层架构拆解(附3万字PDF白皮书)
  • 中医诊疗智能化革命:仲景大语言模型如何重塑传统医学知识传承
  • 【工业互联网合集】300余份工业互联网大脑、工业互联网平台、工业互联网体系、工业互联网平台、工业互联网应用方案资料合集(PPT+WORD)
  • APK状态检测工具
  • Autodesk全系列产品许
  • Qwen3语义搜索快速上手:自定义知识库,实时查询结果
  • spring-ai 第一步集成入门
  • 如何快速安装AdGuard浏览器扩展:终极隐私保护与广告拦截指南
  • Transformer在单目标跟踪中的演进:从基础架构到前沿应用
  • 《三维空间智能体(3D Spatial Agent)体系
  • 设计露营简易餐具套装,轻量化一次性可降解,输出:户外爱好者低成本装备。
  • 从报错到解决:ipmitool lan与lanplus接口区别详解(避坑指南)
  • 从零搭建eNSP实验环境:手把手教你用Cloud桥接真机并开启SSH(避坑指南)
  • C#与倍福TwinCAT3的ADS通讯实战:从基础读写到高级通知机制
  • 3分钟搞定OLED图像转换:告别繁琐的嵌入式图像预处理
  • 避坑指南:CATIA通过Excel导入材料库时遇到的5个典型错误及解决方法
  • [卷积神经网络]YOLOv11实战:从零构建自定义数据集训练流程
  • 手把手教你离线部署Selenium:从下载到安装的完整指南
  • RT-DETR Decoder里的‘去噪’与‘软标签’:加速训练收敛的实战技巧
  • 为什么99%的AI都没有“存在”?——三维空间智能体,才是真正进入现实世界的AI
  • 新手福音:快马一键生成鸿蒙pc镜像下载与入门指导应用
  • 终极Luban内存泄漏解决方案:从Handler到Context的全面优化指南
  • NGINX Unit生产环境部署:10个高可用性与故障恢复策略终极指南